We may earn an affiliate commission when you visit our partners.
Course image
Course image
Coursera logo

A Practical Introduction to Test-Driven Development

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

Coming soon We're preparing activities for A Practical Introduction to Test-Driven Development. These are activities you can do either before, during, or after a course.

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