Myślałem o rozwoju oprogramowania i pisaniu testów jednostkowych. Mam następujący pomysł:
Załóżmy, że mamy pary programistów. Każda para odpowiada za część kodu. Jeden z pary implementuje funkcję (pisanie kodu), a drugi pisze dla niej testy jednostkowe. Testy są pisane po kodzie. Według mnie pomagają sobie nawzajem, ale działają raczej osobno. Idealnie byłoby pracować na dwóch podobnych rozmiarach, a następnie wymienić na przygotowanie do testu.
Myślę, że ten pomysł ma kilka zalet:
- testy są pisane przez kogoś, kto może zobaczyć więcej o implementacji,
- praca powinna być wykonywana niewiele szybciej niż programowanie parami (dwie funkcje jednocześnie),
- zarówno testy, jak i kod ma za to osobę odpowiedzialną,
- kod jest testowany przez co najmniej dwie osoby, oraz
- być może wyszukiwanie błędów w kodzie napisanym przez osobę, która testuje kod, dałoby specjalną motywację do pisania lepszego kodu i unikania skracania narożników.
Być może dobrym pomysłem jest dodanie kolejnego programisty do przeglądu kodu między kodem a testowaniem.
Jakie są wady tego pomysłu? Czy jest już opisana jako nieznana mi metodologia i stosowana w rozwoju oprogramowania?
PS. Nie jestem zawodowym kierownikiem projektu, ale wiem coś o procesach rozwoju projektu i znam kilka najpopularniejszych metodologii - ale ten pomysł nie wydaje mi się znajomy.
assert true
jako testy i nazywają to dniem, ponieważ każdy test mijał. Brakowało jednego ważnego kroku: testy powinny zakończyć się niepowodzeniem jako pierwsze i należy je wykonać, zmieniając kod, a nie testy.