Testowanie progresji nie stoi w kontrze do testowania regresji. Cechuje się inną optyką i patrzy w przód zamiast w tył. Przede wszystkim rzućmy okiem na obecny stan wiedzy o testowaniu regresji. Mówimy o podejściu do testowania, którego celem jest sprawdzenie, czy zmiany w istniejącym oprogramowaniu nie spowodowały lub też nie ujawniły awarii. Ze względu na powtarzalność testy te idealnie nadają się na automatyzację.
Testy te dotyczą więc funkcji już zaimplementowanych i niejednokrotnie już dostępnych użytkownikom. Możemy więc o nich mówić jako o testach patrzących wstecz, tak jak kierowca prowadzący auto zagląda w lusterko wsteczne, by zobaczyć czy na drodze, którą już pokonał nie dzieje się nic niepokojącego. Testowanie progresji patrzy w przód i dotyczy funkcji, których użytkownicy jeszcze nie używają. Z tego też względu testy te są awangardowe i uruchamiane jednorazowo i zazwyczaj manualnie przy pomocy przypadków testowych lub też przy pomocy testów eksploracyjnych.
Oczywiście ich pierwsze wykonanie oraz pokazanie ich wartości jest zachęto do dołączenia ich do testów automatycznych w ramach testów regresji.
Możemy powiedzieć, że testowanie regresji należy do szkoły błędów, gdzie celem testera jest przede wszystkim krytykowanie produktu i szukania w nim problemów, gdzie z kolei testowanie progresji należy do szkoły rozwoju nastawionej na pokazywanie, że oprogramowania działa tak jak chciał tego klient.
Testowanie regresji | Testowanie progresji |
---|---|
Cel: szukanie problemów | Cel: potwierdzanie, że działa |
Uruchamiane "wstecz" | Uruchamiane "do przodu" |
Powtarzalne | Jednorazowe (kopiowane do testów regresji) |
Podatne na automatyzację | Wykonywane ręcznie |
Testowanie progresji jest podejściem prorozwojowym i mogącym również być automatyzowanym jeśli naszą strategią weryfikacji jakości jest testowanie na produkcji. Testy progresu mogą być realizowane np. jako testy A/B, gdzie nieświadomy użytkownik "powie" nam czy jego zmiany działają i chce się nimi posługiwać.
Dodatkowo testy te będą promowały testerów kreatywnych zdolnych do wymyślania nowych testów i skutecznie weryfikujących jakość.
Pojęcie zaczerpnięte z książki Arnona Axelroda "Automatyzacja testów".