Przegląd kodu jest opóźniony w stosunku do cyklu dostarczania / testowania


14

W naszym procesie Agile mamy 2-tygodniowe Sprinty. Zadania są dostarczane codziennie (codzienne wersje), a zespół testowy kończy testy natychmiast następnego dnia lub nawet tego samego dnia.

Mamy również recenzje kodu deweloperskiego, które wymagają trochę czasu (1-2 godziny), więc są zaplanowane 3 razy w tygodniu: od poniedziałku do piątku do piątku. Deweloperzy spotykają się i sugerują, jak ulepszyć / zmodyfikować kod.

Nasz problem polega na tym, że do czasu pojawienia się elementów akcji po przejrzeniu kodu większość zadań została już przetestowana. Testerzy nie chcą ponownie testować tego, co już przeszło testy. Nie dbają o wewnętrzne zmiany deweloperów.

Czy nie rozumiemy procesu zwinnego? Czy recenzje kodu są niezgodne z codziennym cyklem wydania / testu? Nie możemy przeprowadzać recenzji kodu każdego dnia, ponieważ zajmują one czas każdego.


Znalazłem kilka sugestii, które mogą być pomocne - Przegląd kodu w Agile Teams - część II (znaleziona w wyniku bardzo szybkiego wyszukiwania w Google - możesz znaleźć więcej).
Dukeling,

1
Czy twoi testerzy pracują nad „zwolnionymi” zadaniami? Czy definicja „wydanego” przez zespół obejmuje weryfikację kodu i rozstrzyganie elementów akcji? A może weryfikacja kodu odbywa się poza definicją ukończenia przez zespół?
Kent A.

1
Czy Twój zespół testowy nie ma pakietu automatycznej regresji?
Telastyn

5
Jak robisz „recenzje kodu”? Czy jest to długi formalny proces, w którym recenzenci muszą przejść całą listę kontrolną wskaźników jakości (nakład pracy: wiele osobogodzin)? A może po prostu inny członek zespołu przegląda kod i zadaje pytania, czy coś wydaje się nie tak (wysiłek: 10–30 minut dla programisty i recenzenta)? Dlaczego robisz recenzje kodu? Aby zapewnić jakość kodu? Łapać błędy? Czy chcesz rozpowszechniać wiedzę o systemie wśród wielu osób? Czy Twój mechanizm sprawdzania kodu pomaga osiągnąć te cele, czy jest to po prostu biurokracja, której nikt nie chce robić?
amon

Lubię wszystkie odpowiedzi, ale dodam punkt, który uważam za ważny. Pytasz, czy źle interpretujesz Agile, ale nie mówisz, która metodologia. Czy śledzisz Scrum? Najważniejsze: czy masz definicję „Gotowe”? Pytam, ponieważ uważam to za bardzo ... dziwne, że rozważasz coś „dostarczonego” przed zakończeniem faktycznej pracy nad tym. Wygląda na to, że przegląd kodu jest czymś „dodatkowym”, co robisz tylko dlatego.
Lorenzo Dematté,

Odpowiedzi:


8

Testerzy nie chcą ponownie testować, to tak jakby powiedzieć „koderzy nie chcą refaktoryzować”. To część pracy. Proces można przekształcić w następujący sposób: Zadania są tworzone. Kod jest generowany. Kod jest testowany. Kod jest sprawdzany. Niedoskonałości znajdują się w kodzie. Nowe zadania są tworzone w celu usunięcia tych niedoskonałości (np. Kod jest refaktoryzowany). Te nowe zadania wymagają nowych testów.


2
+1 W codziennej wersji metodyki zwinnej nie otwieraj ponownie zadań. Utwórz nowe zadanie, aby rozwiązać wykryte problemy i zaplanuj je zgodnie z priorytetami zespołu. Nowe zadania = nowe działanie kontroli jakości (co prawdopodobnie oznacza ponowne uruchomienie tych samych testów). Jeśli QA to nie lubi, istnieje wiele innych karier.
Kent A.

To oczywiście działa, ale wydaje się nieefektywne.
usr

7

Jeśli masz zamiar przejrzeć kod w pewnym momencie, sprawdzenie go wcześniej nie jest droższe. I wygląda na to, że masz kosztowny proces testowania, więc nie chcesz testować dwa razy. Dlatego tańsze jest przejrzenie kodu przed testowaniem. Przeglądanie kodu po testowaniu nie przyspiesza pracy. Sprawia, że ​​działa wolniej i kusi cię do dostarczenia źle napisanego, ale pomyślnie przetestowanego kodu. Z czasem cały ten niezbadany kod sprawi, że praca będzie wolniejsza. Następnie bardziej wydajny konkurent dostarcza lepszy produkt przy niższych kosztach i gra się kończy.

Ponadto zautomatyzuj testowanie. Testy ręczne są już 1970 rokiem.


5

Jeśli masz trudności z otrzymaniem recenzji kodu w czasie, który masz przed QA, powinieneś rozważyć uczynienie recenzji kodu bardziej lekkimi, ponieważ Code Review w Agile Teams, część II, o której pisze @Dukeling.

Przekonałem się, że nawet najprostsza rzecz, którą można nazwać przeglądem kodu, przynosiła korzyści: przed zatwierdzeniem kodu (lub przekazaniem DVCS) zadzwoń do innego programisty i pomóż mu wprowadzić zmiany. Może to potrwać pięć lub dziesięć minut. Celem tego przeglądu kodu jest „Czy ma to sens dla drugiego programisty?” Nie chodziło o to, by nie dopracowywać się przy wdrażaniu projektów lub by całkowicie dostosować się do osobistych pomysłów recenzenta dotyczących tego, jak powinien być napisany. Dało to następujące korzyści:

  • Poprawiona wspólna wiedza na temat działania kodu
  • Złapano mylący lub potencjalnie błędny kod, ponieważ czynność wyjaśnienia kodu wystarczył, aby autor przemyślał różne rzeczy
  • Pomagał stopniowo ewoluować idiomy i styl zespołu, ponieważ ułatwiało to wytłumaczenie
  • Bardzo mało narzekania zespołu

Głębsze recenzje kodu absolutnie działają lepiej, aby znaleźć problemy. Ale musisz być w stanie je wykonać i działać na nich, aby uzyskać wartość. Lekki proces, który możesz wykonywać cały czas, może być bardziej pomocny niż proces wagi ciężkiej, który się odkłada lub tylko dodaje rzeczy do zaległości.


1

Jednym z rozwiązań tego problemu jest szybkie przejrzenie kodu przez innego uczestnika po zakończeniu historii użytkownika, aby nie było żadnych podstawowych / oczywistych błędów w kodzie.

Ale to musi się zdarzyć przed cyklem testowym. Wtedy po teście byłoby mniej zmian kodu, gdy robisz większe recenzje ze wszystkimi zespołami razem.


1

Z brzmienia tego wynika, że ​​testerzy nie chcą ponownie testować, ponieważ testowanie jest procesem bolesnym / kosztownym.

Automatyzacja testów zarówno przez programistów, jak i testerów jest ogromną korzyścią dla zespołów próbujących pracować w zwinny sposób. Im tańsze, łatwiejsze i bardziej reprodukowalne są twoje testy, tym więcej możesz je wykonać - i tym mniejszy opór będziesz musiał coś zmienić.

Czy wykonałeś szybki refaktor w oparciu o opinie twórców? Naciśnij duży czerwony przycisk, który uruchamia twój zestaw regresji / zadymienia i wykonaj krótką ręczną procedurę, aby sprawdzić, czy nie pojawiły się problemy wizualne. Łatwo!

Gdy znajdziesz się w takim miejscu, ponowne testowanie nie będzie uciążliwe - będzie to druga natura.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.