Live briefing
Everything about Test-driven development
Method of writing code
Test-driven development (TDD) is a way to write source code that involves writing an automated unit-level test case that fails, then writing just enough code to make the test pass, then refactoring both the test code and the production code, then repeating with another new test case. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Test-driven developmentA 5-minute orientation
- Skim a recent paper: Affective reactions and test-driven development: Results from three experiments and a surveyInfluential work since 2022
- Pick up a classic book: Pragmatic unit testingThe most-reprinted book on the subject
- Read the landmark paper: Test-driven development concepts, taxonomy, and future directionCited 172 times
- Go sideways: Unit testingA closely related topic
- Go sideways: Acceptance test-driven developmentA closely related topic
📖 Definitions
Noun A software development process that relies on the repetition of a minimal development cycle where the developer writes an (initially failing) automated test case that defines a desired function, then produces minimal code to pass that test, and finally refactors the new code to acceptable standards.
🏆 Landmark papers (most cited)
Test-driven development concepts, taxonomy, and future direction
A structured experiment of test-driven development
What Do We Know about Test-Driven Development?
A family of experiments on test-driven development
Results from introducing component-level test automation and Test-Driven Development
Test-Driven Modeling for Model-Driven Development
Test-Driven Development in Large Projects
Test-Driven Development in scientific software: a survey
🆕 Influential since 2022
Affective reactions and test-driven development: Results from three experiments and a survey
Regression test selection in test-driven development
A Literature Review on the Challenges of Applying Test-Driven Development in Software Engineering
Teaching C++ programming using automated unit testing and test‐driven development—Design and efficacy study
Development of stimulus-driven attention test for unilateral spatial neglect – Accuracy, reliability, and validity
📚 Books worth reading
Pragmatic unit testingAndy Hunt, Dave Thomas · 2004
Architecture Patterns with PythonHarry J.W. Percival, Bob Gregory · 2020
Done Is a Function You WriteRavi Vale · 2026
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Unit testing Unit testing, also known as component or module testing, is a form of software testing by which isolated source code is tested to validate expected behavior…
- Acceptance test-driven development Acceptance test–driven development (ATDD) is a development methodology based on communication between the business customers, the developers, and the testers…
- Extreme programming Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements…
- Extreme programming practices Extreme programming (XP) is an agile software development methodology used to implement software systems. This article details the practices used in this…
- Mock object In computer programming, a mock object is an object that imitates a production object in limited ways. A programmer might use a mock object as a test double…
- Kent Beck Kent Beck (born 1961) is an American software engineer, author, and consultant best known for creating test-driven development (TDD), founding extreme…
- Code refactoring In computer programming and software design, code refactoring is the process of restructuring existing source code—changing the factoring—without changing…
- XUnit xUnit is a label used for an automated testing software framework that shares significant structure and functionality that is traceable to a common progenitor…