Więc jestem nowy w zwinnym, ale nie testowym rozwoju . Moi profesorowie na studiach opowiadali o testach, potem o kodzie, a potem o testach. Nie jestem pewien, czy rozumiem dlaczego. Z mojego punktu widzenia jest to duży koszt początkowy, który najprawdopodobniej zostanie zmieniony w miarę ewolucji twojego kodu.
Tak wyobrażam sobie TDD i dlaczego mnie to myli. Gdybym miał zbudować dom jako wykonawca TDD.
Podaj mi wszystkie swoje specyfikacje (historie).
Uzyskaj zatwierdzenie specyfikacji.
Rozbij wszystkie specyfikacje do inspekcji, które moim zdaniem będą potrzebne (patrz w przyszłość).
Zadzwoń do inspektora, aby przejrzał te punkty i powiedz mi teraz, że nie udaje mi się inspekcja (rany, dzięki).
Zacznij budować dom.
Codziennie wzywaj inspektora (przekazując 2/100).
Och, strzel, był problem z moim zrozumieniem i teraz muszę dodać jeszcze 9 inspekcji i zmienić 27 z nich.
Zadzwoń do inspektora z wynikiem 1/109.
Cholera. Dlaczego inspektor nie lubi tego ... och zaktualizowałem nazwę tej metody ...
Zbuduj trochę więcej.
UGGGGHHHH WIĘCEJ ZMIAN Pozwól mi zaktualizować cholernego inspektora. Och, nie udaje mi się nie **
Czy już skończyłem?
Okej, to może być dziwaczne, ale po prostu nie widzę, jak powinienem znać wszystkie moje metody i jak będą działać, dopóki nie będzie mojego kodu. 99% czasu muszę wracać i aktualizować test jednostkowy w dowolny sposób i dodawać kolejne. Wydaje się po prostu wstecz.
Wydaje się, że bardziej odpowiednie są testy DDT lub testy rozwojowe, o których społeczność prawie zapomniała.
Z mojego zrozumienia DDT dla domu wyglądałby następująco:
Podaj mi wszystkie swoje specyfikacje (historie).
Uzyskaj specyfikację i przełam ją.
Uruchom jednostkę (fundament).
Rób notatki (komentarze) na temat podstępnej logiki.
Na koniec przed rozpoczęciem kolejna jednostka ma kontrolę (utwórz test).
Napraw wszelkie znalezione problemy i sprawdź ponownie.
Zatwierdzona ta jednostka przechodzi do następnej.
Jeśli wszyscy jesteśmy szczerzy, czy to nie brzmi bardziej ludzko i koncentruje się na deweloperze i biznesie? Wygląda na to, że zmiany można wprowadzać szybciej i bez nakładania się TDD.