Introduction to Test Driven Development (TDD) (Coursera)

Offered by IBM,
Introduction to Test Driven Development (TDD) (Coursera)

Successful developers need to not only build the right software but build it right. To know your software works correctly, you need to test each unit of code. One of the best methods for this unit-level testing is test driven development. This course provides a detailed overview of test driven development (TDD). First, you’ll learn what automated testing is and why it is essential for building robust applications resilient to failure. You’ll explore the basics of testing, including test cases, testing levels, and the traditional release cycle.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

You’ll learn about TDD and its complement, behavior driven development (BDD): TDD tests individual units of code while BDD tests how these units work together.
Then you’ll examine TDD in detail. You’ll explore TDD’s benefits, concepts, and popular tools, and you’ll hone your new testing skills through hands-on labs. You’ll create TDD test cases by writing test assertions and building test fixtures, and you’ll run these test cases by using the Nose testing package. You’ll then practice more advanced TDD methods such as increasing code coverage, generating and using fake data, and testing mock objects.
Course 10 of 13 in the IBM DevOps and Software Engineering Professional Certificate.

What You Will Learn

  • Explain the importance of testing
  • Describe test-driven development (TDD) and explain its benefits for DevOps
  • Develop unit tests with test assertions and test fixtures and then run the tests
  • Improve unit testing through advanced TDD methods including coverage reports, factories, fakes, and mock objects

Syllabus

WEEK 1
Introduction to Testing
This module provides an overview of software testing. You will learn about the importance of testing through an example: the development of the Apollo 11 Lunar Module’s guidance system. You will discover the numerous problems that occur when developers do not test their code. Then you will explore the four levels of testing and find out when each appears in the traditional release cycle. You will learn what test driven and behavior driven development are and why both are essential for effective testing. You will discover the purpose of test cases and witness their value through a demonstration.

WEEK 2
Introduction to Test Driven Development
This module provides an overview of test driven development (TDD). You will learn what TDD is and discover the three basic steps in the TDD workflow, also known as the Red/Green/Refactor workflow. You will find out why TDD is important for DevOps and all automated testing. You will also discover popular testing tools for TDD and closely examine the features of several such tools for Python. This module also covers essential methods for performing TDD. You will explore two ways to run TDD tests: Python’s built-in test runner called unittest and the more feature-rich module called Nose. You will learn what assertions are and how to use them to test code. You will discover why you need to include both happy and sad paths in your test module. You will also find out what test fixtures are and how to use them to establish an appropriate initial state for each test.

WEEK 3
Advanced Methods for Test Driven Development
This module covers advanced methods for TDD. You will learn about test coverage: why it’s important, how to increase it by using test coverage reports, and why you should keep testing even at full test coverage. You will discover the value of testing against fake data and how to use factories to generate this data. You will also explore mocking, a process for mimicking the behavior of real objects, and you will find out the testing situations for which mocking is useful. You will learn how to use two common methods for mocking: patching a function call and mocking entire objects.

WEEK 4
Final Exam and Course Wrap-Up

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

DevOps Capstone Project (Coursera) Coursera
IBM

DevOps Capstone Project (Coursera)

In this course you will apply your skills and knowledge acquired during previous courses in the PC to demonstrate your proficiency in DevOps practices by developing, testing, deploying, monitoring, and enhancing a secure microservices-based application on Cloud, over the course of several sprints, using a variety of Agile, Cloud Native, and CI/CD technologies and tools.

Oct 19th 2026
5-12 Weeks
Agile Innovation and Problem Solving Skills (edX) EdX
University of Maryland, College Park,University System of Maryland - USM,USMx,UMD

Agile Innovation and Problem Solving Skills (edX)

Learn how to deliver greater value through Agile solution targeting and theory of constraints that unleash your team's innovative potential. Innovative products and services change lives, and having the right innovative process creates an competitive advantage. Ultimately, innovation is about one thing: problem solving.

Self Paced
Self-Paced
Software Engineering: Implementation and Testing (Coursera) Coursera
The Hong Kong University of Science and Technology - HKUST

Software Engineering: Implementation and Testing (Coursera)

Software Development Life Cycle (SDLC) is the process of developing software through planning, requirement analysis, design, implementation, testing, and maintenance. This course focuses on the implementation and testing phases of SDLC, and you will examine different software development processes for large software systems development, and understand the strengths (pros) and weaknesses (cons) of different software development processes.

Oct 26th 2026
5-12 Weeks
Introduction to Automated Analysis (Coursera) Coursera
University of Minnesota

Introduction to Automated Analysis (Coursera)

This course introduces state-of-the-art techniques for automated analysis. Automated analysis encompasses both approaches to automatically generate a very large number of tests to check whether programs meet requirements, and also means by which it is possible to *prove* that software meets requirements and that it is free from certain commonly-occurring defects, such as divide-by-zero, overflow/underflow, deadlock, race-condition freedom, buffer/array overflow, uncaught exceptions, and several other commonly-occurring bugs that can lead to program failures or security problems.

Oct 19th 2026
4 Weeks
Introduction to Agile Development and Scrum (Coursera) Coursera
IBM

Introduction to Agile Development and Scrum (Coursera)

After successfully completing this course, you will be able to embrace the Agile concepts of adaptive planning, iterative development, and continuous improvement - resulting in early deliveries and value to customers. This course will benefit anyone who wants to get started with working the Agile way. It is particularly suitable for IT practitioners such as software developers, development managers, project managers, product managers, and executives.

Oct 19th 2026
4 Weeks
Continuous Integration and Continuous Delivery (CI/CD) (Coursera) Coursera
IBM

Continuous Integration and Continuous Delivery (CI/CD) (Coursera)

A principle of DevOps is to replace manual processes with automation to improve efficiency, reduce human error, and accelerate software delivery. This requires automation that continuously integrates code changes and continuously delivers those changes to a production environment. This course introduces you to Continuous Integration and Continuous Delivery (CI/CD), an automated approach to software development. You’ll discover the benefits of CI/CD for creating a DevOps pipeline and explore popular CI/CD tools.

Oct 26th 2026
4 Weeks
Test-Driven Development Overview (Coursera) Coursera
LearnQuest

Test-Driven Development Overview (Coursera)

In this introductory course you will get both a full overview of what TDD is, when it can and can't be applied, and what its benefits are for practitioners and organizations. You will also have the opportunity to get hands on with a few fun introductory projects where you can apply what you have learned and experience the benefits of this approach to problem solving yourself.

Oct 19th 2026
4 Weeks
Introdução ao Teste de Software (Coursera) Coursera
Universidade de São Paulo, Brasil

Introdução ao Teste de Software (Coursera)

A necessidade das empresas em produzir software com qualidade tem aumentado a demanda por profissionais com conhecimentos e habilidades em Teste de Software. Entretanto, existe uma escassez de mão-de-obra especializada nesta área. Considerando essa lacuna, o curso de Introdução ao Teste de Software foi planejado para servir como um guia para pessoas que necessitam de uma fonte de consulta e/ou aprendizado na área.

Nov 2nd 2026
5-12 Weeks