Ocena testu, który daje niestabilne wyniki
Jak oszacować test podatny na błędy: dlaczego potrzebne są dwa oszacowania, a nie jedno, oraz dlaczego wyznaczenie ram czasowych jest lepszym rozwiązaniem niż spory o punkty, gdy odpowiedź zależy od tego, co się odkryje.
Test typu „flaky” to dwa oszacowania. Nie wiadomo jeszcze, które z nich jest prawidłowe.
W jednym przypadku wystarczyła poprawka w jednym wierszu: założenie dotyczące synchronizacji, zależność od kolejności testów, brakujący elementawait. W drugim przypadku test przypadkowo wykrył sytuację wyścigu w kodzie produkcyjnym, której rozwikłanie zajęło trzy dni. Gdy karty rozkładają się w przedziale od 2 do 13, zespół nie spiera się co do wielkości. Spiera się co do tego, jakiego rodzaju jest to błąd, co stanowi rzeczywistą niewiadomą.
Szacowanie wielkości zadania przed rozpoczęciem prac, a nie po ich zakończeniu, sprawia, że w tym przypadku w pierwszym tygodniu zadanie zajmuje 5, a w trzecim – 13. Rozwiązaniem nie jest podanie dokładniejszej liczby, lecz zmiana sposobu realizacji zadania. Należy wyznaczyć ramy czasowe analizy, a dopiero po ustaleniu zakresu prac oszacować rzeczywisty nakład pracy.
O czym się mówi w tym pomieszczeniu
Inżynier A: „Jeśli ta usterka wynika z przyczyny, o której myślę, to oceniam to na 2”.
Inżynier B: „Jeśli działa niestabilnie z powodu, o którym ja myślę, to ocena to 13.”
Wstęp: „Czy ktoś faktycznie uruchomił to lokalnie z ustalonym wartością początkową?”
Pytanie dotyczące kontroli jakości: „Błąd występuje wyłącznie w środowisku CI. Nigdy nie pojawia się na komputerze deweloperskim”.
Pytania, które warto zadać przed głosowaniem
- Czy problem ten występuje lokalnie, czy tylko w środowisku CI?
- Jak często dochodzi do awarii: 1 na 50, 1 na 5, co drugi przejazd?
- Kiedy zaczęły występować problemy? Który commit?
- Czy wynik testu jest błędny, czy też wykrywa on coś rzeczywistego?
- Czy ktoś w międzyczasie wyłącza tę funkcję i jakie są tego konsekwencje?
Różnica między inżynierem A a inżynierem B nie jest kwestią sporu dotyczącą punktów fabularnych, którą można zniwelować poprzez uśrednienie. Jest to nieznana zmienna, którą należy zbadać. Krótki, ograniczony czasowo projekt pilotażowy pozwala ją wyeliminować; głośniejsza kłótnia – nie.
Proszę traktować to jako ramy czasowe, a nie jako rozwiązanie. Pół dnia na zbadanie sprawy, a następnie przygotowanie rzetelnego artykułu na podstawie tego, co Państwo ustalą.
Zobacz szacowanie błędu bez możliwości odtworzenia w przypadku podobnego scenariusza oraz typowe błędy w planowaniu pokerowym dotyczące szacowania błędów z dokładnością na poziomie funkcji. Zapoznaj się z innymi przykładami szacowania lub rozpocznij bezpłatną sesję planowania pokerowego, gdy wyniki analizy będą już znane.