Programowanie oparte na testach polega na pisaniu testów w celu zdefiniowania specyfikacji programu
Nie piszesz testów w celu zdefiniowania specyfikacji, opisy testów, historie użytkowników i opisy funkcji są specyfikacjami w sensie „martwych drzew”.
Podsumowując, proces TDD w skrócie to:
- zdefiniuj projekt pod względem funkcji
- opisz interesariusza, zachowanie i cel każdej funkcji za pomocą historii użytkowników
- określić oczekiwane dane, wyzwalanie zdarzeń / warunków oraz zachowania / wyniki związane z historią użytkownika za pomocą opisów testów [i to uzupełnia „specyfikację”]
- wybierz zestaw funkcji dla każdej iteracji; iteracje powinny być krótkie [pomijam etapy planowania i szacowania dla zwięzłości]
- kod testu dla funkcji (zakończy się niepowodzeniem, ale musisz podjąć decyzję API, aby zakodować test)
- zaimplementuj wystarczającą ilość funkcji, aby test przeszedł pomyślnie
- w razie potrzeby prześlij kod ponownie
- powtarzaj z następnym testem, aż funkcja zostanie zakończona
- powtarzaj z następną funkcją, aż do zakończenia iteracji
- powtarzaj z następną iteracją, aż projekt zostanie zakończony
ile projektu, architektury, dokumentacji pomocniczej i innych, które wybierzesz, nie jest częścią TDD. Istnieje kilka praktycznych „najlepszych praktyk”, o których możesz przeczytać, ale pamiętaj, że są to „najlepsze” praktyki w warsztatach innych osób , a nie twoje.
pamiętać, że punkt jest dla klienta i dewelopera, aby wymyślić i napisać funkcji historie i opisy badań razem , wzajemnego zrozumienia
dlatego przy pierwszym pytaniu było:
jaka jest rola architekta oprogramowania w TDD?
Krótka odpowiedź brzmi:
Tak jak zawsze było, tak jak zawsze było. - David Byrne
EDYCJA: Długa odpowiedź brzmi: architekt odgrywa zwykle role wizjonera / badacza / drażniącego / wsparcia / zabezpieczenia podczas całego procesu, w razie potrzeby.
EDYCJA 2: Przepraszam, że nie trafiłem w sedno pytań cząstkowych! Każdy jest odpowiedzialny za napisanie specyfikacji; wszystkich programistów, w tym architekta, jeśli jest to właściwe, oraz klienta . Programiści kodują również testy.