Test-driven development
Test-driven development (TDD) – technika tworzenia oprogramowania, zaliczana do metodyk zwinnych. Pierwotnie była częścią programowania ekstremalnego (ang. extreme programming), obecnie zaś stanowi samodzielną technikę. Polega na iteracyjnym wykonywaniu kroków:
- Napisanie przez programistę automatycznego testu sprawdzającego poprawność działania dodawanej do systemu funkcji. Test wykonany na tym etapie nie powinien zostać zdany (pot. test czerwony).
- Dodawana funkcja systemu jest implementowana. Napisany wcześniej test, uruchomiony w tym momencie, powinien przejść (pot. test zielony).
- Napisany kod jest refaktoryzowany, w celu dostosowania go do oczekiwanych standardów. Dzięki wykonaniu automatycznego testu będziemy wiedzieć, czy zoptymalizowany kod realizuje dalej dodawaną do systemu funkcję we właściwy sposób.
Technika ta została stworzona przez Kenta Becka. Może być używana także do poprawiania istniejącego kodu.
Programowanie techniką test-driven development
Programowanie techniką test-driven development polega na rozpoczęciu realizacji projektu od napisania automatycznych testów do funkcji, które będą następnie implementowane. Początkowo testy mogą się nie kompilować, ponieważ użyte w testach elementy kodu (klasy i ich metody) mogą jeszcze nie istnieć. Programowanie rozpoczyna się od przypadku, dla którego test nie powinien zostać zdany – zapewnia to poprawność działania testu oraz świadczy o jego gotowości do wyłapywania ewentualnych błędów.