Ręczne testowanie regresyjne to proces ponownej weryfikacji już przetestowanych funkcji systemu po wprowadzeniu zmian w kodzie, aby upewnić się, że te zmiany nie spowodowały nowych defektów w stabilnych częściach produktu.
Historia pytania: Na początku cyklu życia oprogramowania testerzy zazwyczaj koncentrują się na weryfikacji nowych funkcji. Z czasem system nabiera zmian, co zwiększa ryzyko wystąpienia nieprzewidzianych regresji. Wiele błędów w historii oprogramowania powstało właśnie po poprawce, która "zepsuła" coś, co wcześniej działało, dlatego testowanie regresyjne stopniowo stało się obowiązkową praktyką.
Problem: Główna dylemat polega na tym, jak przy ciągłych zmianach efektywnie i w krótkim czasie przeglądać maksymalną liczbę funkcji. Jeśli podejść do zadania chaotycznie lub niespójnie — można przeoczyć krytyczne defekty, nie zmieścić się w terminach, przeciążyć zespół, a czasami kontrole stają się formalnością.
Rozwiązanie: Aby efektywnie zorganizować testowanie regresyjne, należy:
Kluczowe cechy:
Na jakim etapie najlepiej rozpocząć testowanie regresyjne — po wszystkich zmianach czy równolegle z ich wprowadzaniem?
Wielu błędnie uważa, że regresję przeprowadza się tylko po zakończeniu wszystkich zmian. W rzeczywistości lepiej jest zaplanować i częściowo wykonywać ją w miarę wprowadzania zmian, aby szybciej reagować na krytyczne awarie.
Czy wystarczy napisać przypadek testowy do regresji jeden raz i nigdy go nie aktualizować?
Nie, przypadki testowe dla regresji wymagają stałej aktualizacji: wraz ze zmianą logiki biznesowej lub interfejsu system testów powinien zmieniać się w ślad za produktem.
Czy testowanie smoke jest częścią regresji?
Nie, testowanie smoke to szybkie odcięcie oczywistych awarii po kompilacji, a regresyjne pokrywa szerszy funkcjonalność i szuka awarii "w głąb".
Zespół dokonuje wydania, tester formalnie sprawdza funkcje na podstawie przestarzałej listy przypadków testowych, nie wiedząc o ostatniej poprawce API. Stary błąd zostaje naprawiony, ale w innej części systemu pojawia się krytyczny defekt, którego nikt nie zauważył przed uruchomieniem.
Zalety:
Wady:
Przed wydaniem testerzy zaktualizowali checklisty regresyjne, omówili z analitykami aktualne obszary ryzyka, priorytetyzowali testy na podstawie rzeczywistych scenariuszy i przeprowadzili ręczną regresję na kluczowych procesach.
Zalety:
Wady: