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

To be a proficient developer you need to have a solid grasp of test writing before putting code into production. In this course, we will take a hands-on look at Test-Driven Development by writing and implementing tests as soon as week one. TDD starts with good unit tests, so we will start there. Topics will also cover translating user specs into unit tests, applying the Red-Green-Refactor mantra, and applying mocks in python with the unittest.mock module. Once finished, you will have covered all the steps of TDD before development

Enroll now

What's inside

Syllabus

Automated Unit Testing Basics
Test-Driven Development starts with testing, and good TDD starts with good unit tests.
Unit Testing best practices
Read more
In this module we will discover the best practices for writing unit tests.
Writing Tests for TDD
In this module, we'll be translating user specs into unit tests, including all the steps of TDD before development.
The Red-Green-Refactor cycle in practice
In this module we'll discover a hands on approach to applying the Red-Green-Refactor mantra of unit testing.
The power of mocks
In this module we'll learn how to use mocks in python with the unittest.mock module.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops a strong foundation in TDD, which is standard in software development
Examines automated unit testing and its applications, which are highly relevant to software testing
Taught by Doug Purcell, who is recognized in the field for their work in software testing
Offers hands-on labs for practical application of TDD techniques
Exclusively covers Python, which may limit its appeal to learners who utilize other programming languages
Focuses primarily on unit testing, which may not be sufficient for learners seeking a more comprehensive understanding of TDD

Save this course

Save A Practical Introduction to Test-Driven Development to your list so you can find it easily later:
Save

Reviews summary

Mixed tdd course

Learners say that this course on Test-Driven Development (TDD) has a higher success rate in later weeks than their first course. Most learners seem to recommend later weeks and the course as a whole, but find earlier lessons and quizes clumsy and uninspired, especially Week 3
Later weeks of the course are better in quality
"Still a bit dull and boring but much better then the first one in this specialization. I do recommend this one. "
"Great course by very well thought, add more examples in week 3, there are many items I only understand by looking at the documentation YOU provides!"
Labs could be made better for practice
"There is very few material and the labs could be organized way better."
Week 3 may need major improvement for a better learning experience
"Week 3 is clumsy and not well explained."
"unittest.mock part in week 3 doesn't provide any knowledge and to finish last quiz you have to read (and understand) a lot of documentation by yourself."
"In addition, tests go beyond the course material itself and ask details from documentation of specific python libraries."

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 A Practical Introduction to Test-Driven Development with these activities:
Refresh Your Python Skills
Refresh your Python skills by reviewing materials from previous courses or taking an online course.
Browse courses on Python
Show steps
  • Review Python syntax and data structures
  • Practice writing simple Python programs
Review Test-Driven Development Principles
Supplement your understanding of the course's foundations by reviewing online resources and following guided tutorials to gain a deeper understanding of TDD's underlying concepts.
Browse courses on Test-Driven Development
Show steps
  • Find and read articles on TDD best practices
  • Identify and follow online tutorials that demonstrate the fundamentals of TDD
Write Unit Tests for a Simple Program
Deepen your understanding by writing unit tests for a simple program.
Browse courses on Testing
Show steps
  • Write a simple program
  • Identify the different scenarios that need to be tested
  • Write unit tests to cover those scenarios
Eight other activities
Expand to see all activities and additional details
Show all 11 activities
Practice Writing Automated Test Cases
Reinforce your grasp of unit test writing by practicing the techniques taught in the course. Engage in coding exercises and drills to improve your proficiency in creating effective test cases.
Show steps
  • Set up a development environment with a suitable testing framework
  • Design and implement a series of mock objects for testing
  • Write comprehensive unit tests for a given software component
Write Unit Tests
Build a strong foundation by coding unit tests early on.
Browse courses on Unit Tests
Show steps
  • Read Unit Testing best practices
  • Write a unit test for a simple function
Find a Tutorial on Mocks
Supplement your learning by finding a tutorial on using mocks in Python.
Browse courses on Mocking
Show steps
  • Search for a tutorial on mocks in Python
  • Follow the tutorial to learn how to use mocks
Find a Tutorial on Test-Driven Development
Gain a comprehensive understanding by finding a tutorial on Test-Driven Development.
Browse courses on TDD
Show steps
  • Search for a tutorial on Test-Driven Development
  • Follow the tutorial to learn the principles of TDD
Translate User Specs to Unit Tests
Develop a deeper understanding by translating user specs into unit tests.
Browse courses on TDD
Show steps
  • Identify the requirements of a user story
  • Write a unit test that covers those requirements
Create a Mock Object
Gain hands-on experience by creating a mock object.
Browse courses on Mocking
Show steps
  • Identify a dependency that needs to be mocked
  • Create a mock object for that dependency
  • Write a unit test that uses the mock object
Implement the Red-Green-Refactor Cycle
Solidify your understanding by implementing the Red-Green-Refactor cycle in practice.
Browse courses on TDD
Show steps
  • Start with a failing test
  • Write code to make the test pass
  • Refactor the code to improve its design
Read 'xUnit Test Patterns'
Expand your knowledge by reading a book on xUnit test patterns.
Show steps
  • Read the book
  • Identify patterns that you can apply to your own testing

Career center

Learners who complete A Practical Introduction to Test-Driven Development will develop knowledge and skills that may be useful to these careers:
Software Test Engineer
A Software Test Engineer creates and executes test cases to evaluate the functionality and performance of software applications. They develop test plans, write test scripts, and analyze test results to identify and report defects. This course provides a comprehensive introduction to Test-Driven Development, which will be invaluable for Software Test Engineers who want to improve the quality and reliability of their testing efforts.
Software Engineer
A Software Engineer designs, develops and maintains computer systems and applications. They analyze user needs, develop and test software solutions, and ensure the software meets quality and performance standards. This course's focus on Test-Driven Development will help build a foundation for writing automated unit tests, ensuring the software meets user specifications and performs as expected.
QA Analyst
A QA Analyst plans and executes quality assurance tests to ensure that software and applications meet user requirements and standards. They develop test cases, write test scripts, and analyze test results to identify and report defects. This course's focus on Test-Driven Development will help QA Analysts write more effective test cases and improve the overall quality of their testing processes.
Developer
A Developer designs, develops and maintains computer systems and applications. They analyze user needs, develop and test software solutions, and ensure the software meets quality and performance standards. This course's practical approach to Test-Driven Development will help Developers write more reliable and maintainable code, and improve the overall quality of their software products.
Test Lead
A Test Lead manages and coordinates software testing activities within a project or organization. They develop and implement test plans, lead testing teams, and report on test results. This course's emphasis on Test-Driven Development will help Test Leads improve the efficiency and effectiveness of their testing teams, and ensure that the software meets user specifications and quality standards.
Software Architect
A Software Architect designs and develops the overall architecture of software systems and applications. They work with stakeholders to gather requirements, design and implement software solutions, and ensure the software meets quality and performance standards. This course's focus on Test-Driven Development will help Software Architects design and develop more reliable and maintainable software systems.
Product Manager
A Product Manager manages the development and launch of software products. They work with stakeholders to gather requirements, define product vision, and ensure the product meets user needs and market expectations. This course's practical approach to Test-Driven Development will help Product Managers improve the quality and reliability of their software products, and ensure that they meet the needs of their users.
Business Analyst
A Business Analyst gathers and analyzes business requirements to develop software solutions that meet the needs of an organization. They work with stakeholders to identify and document requirements, and ensure that the software meets the organization's business objectives. This course's focus on Test-Driven Development will help Business Analysts write more effective requirements, and ensure that the software meets the needs of the organization.
Project Manager
A Project Manager plans, executes, and controls software development projects. They work with stakeholders to gather requirements, define project scope, and ensure the project is completed on time and within budget. This course's practical approach to Test-Driven Development will help Project Managers improve the quality and reliability of their software projects, and ensure that they meet the needs of their stakeholders.
Data Scientist
A Data Scientist collects, analyzes, and interprets data to extract insights and develop data-driven solutions. They work with stakeholders to identify and solve business problems, and ensure that the data-driven solutions are effective and meet the needs of the organization. This course may be useful for Data Scientists who want to improve the quality and reliability of their data-driven solutions, and ensure that they meet the needs of their stakeholders.
Machine Learning Engineer
A Machine Learning Engineer designs and develops machine learning models to solve business problems. They work with stakeholders to identify and solve business problems, and ensure that the machine learning models are effective and meet the needs of the organization. This course may be useful for Machine Learning Engineers who want to improve the quality and reliability of their machine learning models, and ensure that they meet the needs of their stakeholders.
Data Analyst
A Data Analyst collects, analyzes, and interprets data to extract insights and develop data-driven solutions. They work with stakeholders to identify and solve business problems, and ensure that the data-driven solutions are effective and meet the needs of the organization. This course may be useful for Data Analysts who want to improve the quality and reliability of their data-driven solutions, and ensure that they meet the needs of their stakeholders.
Software Developer
A Software Developer designs, develops and maintains computer systems and applications. They analyze user needs, develop and test software solutions, and ensure the software meets quality and performance standards. This course may be useful for Software Developers who want to improve the quality and reliability of their software products, and ensure that they meet the needs of their users.
Systems Analyst
A Systems Analyst gathers and analyzes business requirements to develop software solutions that meet the needs of an organization. They work with stakeholders to identify and document requirements, and ensure that the software meets the organization's business objectives. This course may be useful for Systems Analysts who want to improve the quality and reliability of their software solutions, and ensure that they meet the needs of the organization.
Database Administrator
A Database Administrator designs, develops and maintains database systems. They work with stakeholders to gather requirements, design and implement database solutions, and ensure the database meets quality and performance standards. This course may be useful for Database Administrators who want to improve the quality and reliability of their database systems, and ensure that they meet the needs of their users.

Reading list

We've selected 14 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 A Practical Introduction to Test-Driven Development.
Provides a practical guide to test-driven development in object-oriented software. It covers the principles of TDD, as well as how to apply them to real-world projects. This book valuable resource for anyone who wants to learn more about TDD in an object-oriented context.
Provides a practical guide to domain-driven design. It covers the principles of domain-driven design, as well as how to apply them to real-world projects. This book valuable resource for anyone who wants to learn more about domain-driven design.
Provides a comprehensive overview of Test-Driven Development (TDD) with Python. It covers all the steps of TDD, from writing unit tests to refactoring code. This book is an excellent resource for anyone who wants to learn more about TDD.
Provides a set of guidelines for writing effective Java code. It covers topics such as object-oriented programming, generics, and concurrency. This book valuable resource for anyone who wants to improve their Java coding skills.
Provides a practical guide to design patterns. It covers the most common design patterns, as well as how to apply them to real-world projects. This book valuable resource for anyone who wants to learn more about design patterns.
Provides a practical guide to test-driven development for embedded C. It covers the principles of test-driven development, as well as how to apply them to real-world projects.
Provides a practical guide to agile testing. It covers the principles of agile testing, as well as how to apply them to real-world projects. This book valuable resource for anyone who wants to learn more about agile testing.
Provides a catalog of refactoring patterns for test code. It covers patterns for improving the readability, maintainability, and performance of test code. This book valuable resource for anyone who wants to improve their test code.
Provides a practical guide to agile development in C#. It covers the principles of agile development, as well as how to apply them to real-world projects.
Provides a practical guide to working with legacy code. It covers the principles of working with legacy code, as well as how to apply them to real-world projects.
Provides a practical guide to software architecture. It covers the principles of software architecture, as well as how to apply them to real-world projects. This book valuable resource for anyone who wants to learn more about software architecture.
Provides a set of principles for writing clean code. It covers topics such as unit testing, refactoring, and code documentation. This book valuable resource for anyone who wants to improve their coding skills.
Classic guide to unit testing. It covers the principles of unit testing, as well as how to write effective unit tests. This book valuable resource for anyone who wants to improve their unit testing skills.

Share

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

Similar courses

Here are nine courses similar to A Practical Introduction to Test-Driven Development.
Learn Unit Testing with NUnit and C#
Most relevant
Introduction to Test and Behavior Driven Development
Most relevant
Unit Testing and Test Driven Development in Python
Most relevant
Use Python Unit Test to Demonstrate TDD
Most relevant
TDD using Spring 6 and JUnit
Most relevant
Test-Driven Development Project: Random Person Generator
Most relevant
WPF and MVVM: Test Driven Development of ViewModels
Most relevant
Testing Spring Boot: Beginner to Guru
Most relevant
C# Unit Testing
Most relevant
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