Testowanie TDD
Testowanie TDD może prowadzić do tworzenia kodu odpornego na regresje i może przyspieszać iteracje rozwojowe. Krótka pętla informacji zwrotnej może usprawniać projektowanie interfejsów i może ułatwiać refaktoryzację.
Zasady i praktyki TDD
Testy automatyczne mogą pomóc przepisać mikroserwis bez utraty funkcjonalności, stanowiąc zabezpieczenie podczas refaktoryzacji 1. Aby wykonywać TDD, testy powinny wykonywać się w mniej niż sekundę, co może utrzymywać płynność cyklu red–green–refactor 1. Testy jednostkowe nie mogą używać I/O, co może wymuszać czystą separację logiki od infrastruktury i zwiększać szybkość uruchamiania 1. Usuwanie własnego kodu może pomóc dojść do właściwego rozwiązania, gdy testy wykazują nadmierną złożoność lub zduplikowaną odpowiedzialność 1.
BDD i dokumentowanie zachowań
Testy BDD mogą służyć jako dokumentacja działania aplikacji 1 i mogą służyć jako lista zmian w aplikacji ułatwiająca śledzenie ewolucji wymagań 1. Testy BDD mogą pomóc zweryfikować prawidłowość logiki biznesowej, skupiając się na kryteriach akceptacji i przypadkach brzegowych 1.
Architektura i minimalizacja regresji
Dodanie nowej funkcjonalności jako osobnego modułu może zmniejszyć ryzyko regresji dzięki wyraźnym granicom i testom izolującym kontrakty 1. Małe, hermetyczne moduły mogą ułatwiać wymianę implementacji i sprzyjać testom kontraktowym.
Organizacja pracy i przepływ
- Krótkie cykle implementacji mogą utrzymywać tempo i zmniejszać koszt błędów wykrywanych późno.
- Priorytetyzowanie testów krytycznych może kierować rozwojem wokół zachowań o najwyższej wartości.
- Utrzymywanie czystych warstw (domena, aplikacja, infrastruktura) może ułatwiać testowanie w izolacji.
Zakres i bezpieczeństwo
- Testy integracyjne mogą uzupełniać jednostkowe, sprawdzając współpracę modułów bez spowalniania pętli TDD.
- Mocki i stuby mogą ograniczać zależności zewnętrzne, ale ich nadmiar może utrudniać refaktoryzację kontraktów.
Filtrowanie niepowiązanych informacji
Formaldehyd w kosmetykach nie dotyczy TDD i zostaje pominięty 1.