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.
Introduction to Test and Behavior Driven Development
This course is part of multiple programs.
Instructor: John Rofrano
Top Instructor
Sponsored by EdgePoint Software
22,798 already enrolled
(212 reviews)
Recommended experience
What you'll 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
Skills you'll gain
Details to know
Add to your LinkedIn profile
13 assignments
See how employees at top companies are mastering in-demand skills
Build your subject-matter expertise
- Learn new concepts from industry experts
- Gain a foundational understanding of a subject or tool
- Develop job-relevant skills with hands-on projects
- Earn a shareable career certificate from IBM
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV
Share it on social media and in your performance review
There are 6 modules in this course
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.
What's included
6 videos3 readings2 assignments1 plugin
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 and Red/Green/Refactor workflow. You will see why TDD is essential for DevOps and all automated testing. You will also discover popular testing tools for TDD and closely examine the features of several tools for Python. This module also covers essential methods for performing TDD. You will explore ways to run TDD tests such as, Python’s built-in test runner, Unittest, and the more feature-rich module, Nose. You will learn about assertions and how to use them to test code. You will discover why you must include happy and sad paths in your test module. You will also discover the test fixtures and how to use them to establish an appropriate initial state for each test.
What's included
9 videos2 readings3 assignments3 app items1 plugin
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.
What's included
10 videos1 reading2 assignments4 app items1 plugin
This module provides an overview of behavior driven development (BDD). You will explore BDD, including its benefits for higher-level automated testing and its typical workflow. You will discover the basics of Gherkin syntax, a standard syntax for writing BDD specifications. You will learn about popular BDD tools and how to select the best one for your project. This module also covers essential methods for performing BDD with Behave. You will examine how Behave uses the code in feature and steps files to test an application’s behavior from a user’s perspective. You will discover how to build a Behave environment and control test execution at various levels. Then you will explore in detail how to write feature and steps files. In addition, you will learn how to load test data from tables, automate web page interactions with Selenium, and write Python functions for testing application behaviors.
What's included
11 videos1 reading3 assignments3 app items1 plugin
This module provides an overview of how to use Behave to generate Python steps. Once you know how to generate the steps, you will learn the workflow for implementing them. The next lesson will explain the context variable and how to pass information between Python steps. In addition, you will discuss the benefits of variable substitution for working with Behave and its application in Python steps. Finally, you will practice behavior driven development.
What's included
4 videos1 reading2 assignments3 app items1 plugin
In this final module, you will work on a Final project. You will apply many of the technologies and concepts you've learned in the course and will create a microservice for a product catalog backend to an eCommerce application. The UI of the eCommerce application will be used by administrators to maintain the product catalog. This Final Project is divided into two parts. In the first part of this project, you will use good Test Driven Development practices to create a REST API that allows users to Create, Read, Update, Delete, and List products by various attributes. In the second part of this project, you will write Behavior Driven Development scenarios to test that the administrative user interface that has been provided for you behaves as expected. Finally, you will also attempt a final exam to test the concepts learned.
What's included
5 readings1 assignment1 peer review1 app item1 plugin
Instructor
Offered by
Why people choose Coursera for their career
Learner reviews
212 reviews
- 5 stars
84.65%
- 4 stars
11.16%
- 3 stars
1.39%
- 2 stars
1.86%
- 1 star
0.93%
Showing 3 of 212
Reviewed on Apr 20, 2024
Very good. Try to complete the final project without copying the solution for a better understanding of what is a test-first approach.
Reviewed on Sep 19, 2024
Excellent!!! Even if I am a PHP developer, I understood every thing and learnt just a little Python too ;-) Great job!
Reviewed on Aug 4, 2024
Omg this course is great! Thanks a lot for all the effort you put into this, it's greatly appreciated, I learned a lot! :D
Recommended if you're interested in Computer Science
Board Infinity
University of Leeds
University of Minnesota
Open new doors with Coursera Plus
Unlimited access to 10,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription
Advance your career with an online degree
Earn a degree from world-class universities - 100% online
Join over 3,400 global companies that choose Coursera for Business
Upskill your employees to excel in the digital economy