We may earn an affiliate commission when you visit our partners.
Course image
Doug Purcell

In this course we will discuss how to integrate best practices of test-driven development into your programming workflow. We will start out by discussing how to refactor legacy codebases with the help of agile methodologies. Then, we will explore continuous integration and how to write automated tests in Python. Finally, we will work everything we've learned together to write code that contains error handlers, automated tests, and refactored functions.

Enroll now

What's inside

Syllabus

Refactoring Legacy Code
Legacy code is code written by others that’s inherited by a team or programmer. The issue working with legacy code is that it can often be difficult and time consuming to update and maintain. Learn some proven techniques on how to refactor your legacy code with the help of agile methodologies such as unit tests and test driven development.
Read more
Continuous Integration in Action
Continuous integration (CI) is a pillar in modern software development. It’s the process in which a code base is rapidly developed during the course of the business day.
The Art of Continuous Delivery and Deployment
Continuous delivery is taking the steps to be able to have your software delivered at any time. It’s similar to continuous deployment with the distinction that it is manual as opposed to automated. In this section we’ll take a closer look at continuous delivery and how it intertwines with a related concept of continual deployment.
Exception Handling in Python
Exception handling is a way for coders to help make their code less vulnerable to errors. A proactive developer will consider invalid input that a user may enter into a program and process this error gracefully.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops test-driven development, automated testing, and error handling, which are core principles in modern software development
Emphasizes refactoring legacy code, which is a common challenge faced by developers
Covers continuous integration and delivery, which are essential practices for maintaining and updating software
Provides hands-on labs and interactive materials to enhance practical learning
Involves exception handling in Python, which is essential for handling errors and ensuring program stability
Taught by Doug Purcell, who is recognized for his expertise in software testing

Save this course

Save Integrating Test-Driven Development into Your Workflow to your list so you can find it easily later:
Save

Reviews summary

Practical test-driven development integration

Learners say this course on Test-Driven Development provides valuable practical applications to help beginners learn this strategy. However, the quizzes and labs in this course are considered underwhelming to some.
Includes real-world examples to make TDD concepts easier to understand.
"A good course, not easy to thought but well presented with practical examples to follow to grasp all the concepts explained!"
"Learned test-drive development from scratch with practical examples."
Some learners found the labs and quizzes to be lacking.
"In general, this module is nice to know, but quizes is really boring and labs are too simple, therefore overall value is not very high."
"These classes have very little content (you can do each week in under 20m) and the content is low quality. Almost all of the quizes have an initial failure rate >60%."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Integrating Test-Driven Development into Your Workflow with these activities:
Clean Architecture: A Craftsman's Guide to Software Structure and Design
Read and review industry-leading books to reinforce your understanding of best practices in software architecture and design, aligning with the course's focus on code quality and maintainability.
View Clean Architecture on Amazon
Show steps
  • Purchase or borrow the book
  • Read the book thoroughly, taking notes and highlighting key concepts
  • Summarize and present your learnings to your peers or a study group
  • Apply the principles to your own software development projects
Test-Driven Development Study Group
Join a study group that engages in pair programming and code review, fostering collaborative learning and solidifying your understanding of test-driven development principles.
Browse courses on Test-Driven Development
Show steps
  • Join an existing study group or create your own
  • Set regular meeting times and study materials
  • Engage in pair programming and code reviews
  • Discuss and troubleshoot test-driven development challenges
  • Share knowledge and learn from your peers
Refactor Legacy Code Kata
Engage in hands-on practice by refactoring legacy code using agile principles and unit testing, mastering the art of updating and maintaining inherited code.
Browse courses on Legacy Code Refactoring
Show steps
  • Obtain sample legacy code
  • Analyze and understand the existing code structure
  • Identify areas for refactoring using agile techniques
  • Implement unit tests to validate changes
  • Review and iterate on the refactored code
Four other activities
Expand to see all activities and additional details
Show all seven activities
Continuous Integration and Delivery Masterclass
Enhance your knowledge of continuous integration and delivery practices through guided tutorials, gaining proficiency in automating software development and deployment.
Browse courses on Continuous Integration
Show steps
  • Enroll in a reputable masterclass or online course
  • Follow the tutorials and complete the exercises
  • Set up a continuous integration pipeline using popular tools like Jenkins or CircleCI
  • Integrate continuous delivery mechanisms for automated testing and deployment
  • Apply your learnings to improve your software development workflow
Build a Test-Driven Development Tool from Scratch
Craft a personal framework that automates the test-driven development workflow, solidifying your understanding of the principles and processes.
Browse courses on Test-Driven Development
Show steps
  • Design the framework's architecture and components
  • Implement automated testing capabilities using Python and unit testing libraries
  • Incorporate continuous integration and delivery mechanisms
  • Write error handlers and exception handling mechanisms to manage errors gracefully
  • Integrate your framework into a real-world project for practical application
Python Automation and Testing Workshop
Attend a workshop led by experts in Python automation and testing, gaining hands-on experience in implementing testing methodologies and improving your proficiency with Python.
Browse courses on Python
Show steps
  • Identify and register for a reputable workshop
  • Attend the workshop and actively participate in the exercises
  • Practice and apply the techniques learned in your own projects
  • Network with other workshop participants and industry professionals
Develop an Automated Testing Framework
Build a comprehensive automated testing framework that meets specific project requirements, demonstrating your mastery of test-driven development principles and your ability to apply them to real-world scenarios.
Browse courses on Automated Testing
Show steps
  • Gather requirements and define the scope of the testing framework
  • Design and implement the framework using suitable testing libraries
  • Write and execute comprehensive automated tests
  • Integrate the framework into a continuous integration and delivery pipeline
  • Document and present your framework to peers or stakeholders

Career center

Learners who complete Integrating Test-Driven Development into Your Workflow will develop knowledge and skills that may be useful to these careers:
Software Engineer
Software Engineers write, design, and test computer applications and software. They work with computer systems to find ways to improve the efficiency or functionality. Since this course involves learning how to write automated tests for their Python-based programs, those who want to work as Software Engineers should take this course. Furthermore, Software Engineers should learn how to work with legacy code and how to refactor it with the help of agile methodologies, which are covered in this course.
Software Developer
Software Developers design, build, and test computer applications and software. This course would be of great use to Software Developers because it covers how to integrate best practices of test-driven development, how to refactor legacy code with the help of agile methodologies, and how to write automated tests in Python.
Computer Programmer
Computer Programmers write, design, test, deploy, and maintain applications and software systems. One of the key ways that Computer Programmers verify their work is by writing automated tests in Python. This makes this course very relevant to one who wants to work as a Computer Programmer. Furthermore, this course covers the art of Continuous Delivery and Deployment, which are concepts that directly relate to Computer Programming.
Software Tester
Software Testers are responsible for testing and evaluating software applications and systems to find bugs, fix errors, and improve efficiency. Due to this course offering information about how to write automated tests in Python and how to refactor legacy code, it would be highly relevant to one who wants to work as a Software Tester. Furthermore, this course would provide information about exception handling in Python, something that would complement how a Software Tester finds errors and fixes them.
Quality Assurance Analyst
Quality Assurance Analysts conduct tests on software and other systems to identify bugs, errors, and other issues. This course would be very helpful to those working in this role. To perform their job, Quality Assurance Analysts would have to write code that contains error handlers. This course gives information on how this can be done in Python.
Test Engineer
Test Engineers ensure that applications and software meet the requirements and specifications of end users. To do this effectively, it is important to be able to write, design, and test automated tests for Python-based programs. This course would be helpful for those who work as Test Engineers.
Software Development Manager
Software Development Managers oversee the design, development, and deployment of software systems. They work with developers and other members of the team to ensure the successful delivery of software. Since this course covers how to work with legacy code and refactor it with the help of agile methodologies, it would be helpful for those working in this role.
Senior Software Engineer
Senior Software Engineers are responsible for leading and mentoring junior engineers. They are experts in their field and have a deep understanding of software development. They are able to solve the most complex problems and to design and implement elegant and efficient solutions. They may also be responsible for managing projects and overseeing the work of other engineers. This course can help Senior Software Engineers by teaching them how to write automated tests in Python. Additionally, by learning how to work with legacy code and how to refactor it with the help of agile methodologies, Senior Software Engineers can enhance both their current work as well as the work of others.
Systems Analyst
Systems Analysts study and improve computer systems and procedures. This course would be helpful because it would teach Systems Analysts how to write automated tests in Python. Furthermore, this course discusses the art of Continuous Delivery and Deployment, which can help Systems Analysts improve computer systems and procedures.
Data Analyst
Data Analysts collect, analyze, interpret, and present data. This course may be useful in helping a Data Analyst understand how to write automated tests in Python. Furthermore, the information on Continuous Integration and Continuous Delivery could be helpful for Data Analysts in a similar vein.
Database Administrator
Database Administrators maintain and manage databases. This course may be useful in helping a Database Administrator write automated tests in Python. Furthermore, the information on Continuous Integration and Continuous Delivery and how it intertwines with continual deployment could be helpful.
Information Security Analyst
Information Security Analysts plan and implement security measures to protect computer systems and networks. This course may be useful to Information Security Analysts in helping them write automated tests in Python.
Network Engineer
Network Engineers design, build, and maintain computer networks. This course may be useful to Network Engineers in helping them write automated tests in Python.
Web Developer
Web Developers design and develop websites. This course may be useful to Web Developers in helping them write automated tests in Python. Furthermore, the course covers the art of Continuous Delivery and Deployment, which could be helpful for Web Developers.
Computer Scientist
Computer Scientists conduct research into theory and applications of computers in various fields. This course would be useful to Computer Scientists in helping them develop a strong foundation in test-driven development.

Reading list

We've selected ten books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Integrating Test-Driven Development into Your Workflow.
Starts with the basics of TDD, exploring test case design and organization, debugging techniques, and mocking. It then covers more advanced topics like dependency injection and testing asynchronous code, while also providing practical examples and case studies.
Covers the basics of exception handling in Python, including how to raise, handle, and log exceptions, as well as how to write custom exception classes.
Offers a comprehensive overview of agile software development and provides guidance on how to implement agile practices in your organization.
Provides a step-by-step guide to writing and running tests, and covers topics such as test case design, test automation, and debugging.
Offers a set of 78 rules for writing effective Java code, covering topics such as object-oriented design, performance, and concurrency.
Introduces the concept of clean code and provides a set of guidelines for writing code that is easy to read, understand, and maintain.
Provides a comprehensive overview of the challenges involved in designing and building data-intensive applications, and offers practical guidance on how to overcome these challenges.
Provides a comprehensive guide to implementing domain-driven design (DDD) in your software projects, and covers topics such as domain modeling, bounded contexts, and event sourcing.

Share

Help others find this course page by sharing it with your friends and followers:
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser