Testowanie regresyjne to rodzaj testowania oprogramowania, który weryfikuje, czy zmiany w istniejących programach lub funkcjach nie wpływają negatywnie na istniejącą funkcjonalność. Jest to integralna część każdego cyklu życia oprogramowania, ponieważ zapewnia, że zmiany wprowadzone przez programistów nie spowodują regresji istniejących funkcji lub wprowadzenia błędów do systemu. Celem testów regresyjnych jest zapewnienie, że baza kodu pozostaje stabilna, a jej zachowanie jest zgodne z oczekiwaniami.
Testy regresji są zwykle przeprowadzane jako seria testów porównawczych. Testy te mogą być ręczne lub zautomatyzowane, przy czym kontrole ręczne są zazwyczaj bardziej dokładne. Podczas procesu ręcznego programiści lub testerzy wykonują oryginalny zestaw testów, aby utworzyć pomiar bazowy. Następnie przeprowadzany jest drugi zestaw testów w celu potwierdzenia, że zmiany nie wpływają na oczekiwane zachowanie. W zautomatyzowanym procesie deweloperzy mogą użyć zestawu testów regresji, aby utworzyć zestaw testów do pomiaru wpływu zmian. Zestaw testów jest następnie wykorzystywany do sprawdzenia, czy zmiany w bazie kodu nie wprowadziły żadnych niezamierzonych zachowań.
Testy regresyjne mogą być wykorzystywane do sprawdzania wszelkich wprowadzonych poprawek błędów, zapewniając, że nie pojawią się żadne dalsze problemy. Mogą być również wykorzystywane do sprawdzania poprawności wszelkich nowych funkcji, które zostały dodane, takich jak nowe API, zapewniając, że nowa funkcjonalność zachowuje się zgodnie z oczekiwaniami.
Ogólnie rzecz biorąc, testowanie regresyjne powinno być jednym z ostatnich kroków w procesie rozwoju przed wydaniem głównych zmian. Ważne jest również, aby upewnić się, że testy regresji są aktualizowane w każdym cyklu wydawniczym, ponieważ ich skuteczność spada wraz z upływem czasu, gdy funkcje zmieniają się i ewoluują.