Programming Foundations: Test-Driven Development
1h 41mBeginner2019-06-17
Authors

Neelam Dwivedi
Assistant Teaching Professor at Heinz College
Course details
Programmers shouldn’t have to guess whether software is working correctly. They should be able to prove it, every step of the way. A formal test-driven development (TDD) process allows you to build testing into your daily routine. You can run tests many times a day, getting instant feedback on the quality of your code. This course explains how to adopt a TDD mindset and process—vital skills for all modern software developers. Find out what makes a good test, why you should be more interested in failure than success, and how to measure and repeatedly run tests. Then explore the jargon: test suites, test harnesses, mock and stub objects, and more. Finally, look at how TDD is used in the most common programming languages and environments and what tools and frameworks exist to help you succeed. Instructor Neelam Dwivedi tackles each topic from a programmer’s perspective, emphasizing the time and cost savings that a good TDD workflow can provide.
Learning objectives
What is test-driven development?
Writing test cases
TDD methodology
Refactoring
Test structure and syntax
TDD tools and frameworks
Mocking
Learning objectives
What is test-driven development?
Writing test cases
TDD methodology
Refactoring
Test structure and syntax
TDD tools and frameworks
Mocking
Skills covered
Software TestingJavaDevOps FoundationsOracleDevOpsFoundationsSoftware Development
Concepts
0. Introduction
- 01 - Small steps to great things
- 02 - What you should know
- 03 - What is test-driven development (TDD)
- 04 - xUnit and JUnit
- 05 - Writing test cases
1. TDD Methodology
- 06 - TDD and agile
- 07 - Where to start
- 08 - The iterative red-green-refactor cycle
- 09 - Refactor to improve the design
- 10 - ✓ Challenge - Functionality
- 11 - ✓ Solution - Functionality
2. TDD Structure and Syntax
- 12 - Test structure
- 13 - Assertions
- 14 - Testing exceptions
- 15 - ✓ Challenge - Performance
- 16 - ✓ Solution - Performance
3. Scaling TDD
- 17 - TDD tools and frameworks
- 18 - Assertion frameworks
- 19 - Test doubles
- 20 - Mocking
- 21 - ✓ Challenge - Database
- 22 - ✓ Solution - Database
Conclusion
- 23 - Next steps
Related courses
- Test-Driven Development in an AI World
- Beyond Vibe Coding with Google Gemini: Become a Deliberate Developer
- Cisco DevNet Associate (200-901) Cert Prep 1: Software Development and Design
- C# Test-Driven Development
- JavaScript: Test-Driven Development (ES6)
- Unit Testing and Test Driven Development in Python
- Practical Test-Driven Development for Java Programmers
- Test-Driven Development in C++
Related learn paths
- Become a Programmer: Foundations
- Getting Started with Software Testing
- Get Started with PHP
- Prepare for the MTA: Software Development Fundamentals Exam (98-361)
- Getting Started with Agile Software Development
- Develop Your Skills in Agile Software Development
- Develop Your Skills as a Software Project Manager
- Explore a Career in SQL Development