TestDrivenDevelopment
This wiki is in the process of being archived due to lack of usage and the resources necessary to serve it — predominately to bots, crawlers, and LLM companies. Edits are discouraged.
Pages are preserved as they were at the time of archival. For current information, please visit python.org.
If a change to this archive is absolutely needed, requests can be made via the infrastructure@python.org mailing list.
Overview
Test Driven Development (TDD) is a method of designing software.
It goes roughly as follows: write UnitTests for the code before you write the code itself.
Why do it the "non-natural" way, then? Well, there are some benefits and very few - if any - drawbacks:
Coding tests means you have to call your non-existing code with all the parameters thus forcing you to think how your library should work, thus it fixes the Signature of your code
- You realize many errors in the code before you even wrote it, especially design-related errors
- You will get better estimate how long coding will take
It is very important to emphasize TDD is not a testing methodology; it is a design methodology.