Programowanie Sterowane Testami
O ile testowanie jest kojarzone tylko ze sposobem na zapewnienie jakości oprogramowania można też na nie spojrzeć jako narzędzie koncepcyjne wspomagające sam proces tworzenia oprogramowania.
Zakładamy, że każda funkcjonalność powinna być wcześniej zaprojektowana poprzez zautomatyzowane testy. Sądzę, że to jest jest efektywne podejście do testowania ponieważ w ten nigdy nie zapomnimy o testach.
Często programiści piszą kod i myślą, że "Kod działa, więc nie trzeba pisać testów". To założenie rodzi wiele problemów:
- Przy dodawaniu nowej funkcjonalności nie możesz być pewien, że niczego nie popsułeś
- Przy poprawianiu kodu nie można w prosty sposób sprawdzić czy nadal działa zadeklarowana funkcjonalność.
Kod jest testowany na wielu poziomach: zobacz Programmer Tests i Customer Tests.