Testy automatyczne NIE wykrywają błędów

Ale czy na pewno?

9/30/2024

Twierdzenie, że testy automatyczne nie wykrywają błędów jest dość popularne w testerskim świecie. Zwolennicy tej teorii mówią, że automaty odpowiadają za stabilność aplikacji i pomagają upewnić się, że modyfikacje kodu nie wpłynęły na działające wcześniej funkcjonalności. W 100% się z tym zgadzam, ale czy to jednocześnie sprawia, że testy automatyczne nie mogą wykryć błędów? Mamy tu nieco miejsca do dyskusji.

Czy błędy wykryte w czasie testów regresji sie nie liczą?

Rozważmy prosty przypadek stanu przycisku na stronie. Jeśli dany warunek został spełniony, to przycisk staje się aktywny - wtedy da się w niego kliknąć i wywołać przypisane działanie. W przeciwnym razie (warunek nie został spełniony), przycisk pozostaje nieaktywny, więc klik nie powoduje żadnej reakcji.

testy automatyczne nie wykrywają błędów
testy automatyczne nie wykrywają błędów

Taki scenariusz świetnie nadaje się do automatyzacji. Zamiast wielokrotnie powtarzać testy manualne, piszemy test automatyczny, który sprawdzi oba stany przycisku. No dobra, w kodzie pojawiły się zmiany, a machina automatów ruszyła. Test świeci na czerwono - okazuje się, że przy spełnionym warunku przycisk nie jest aktywny. I czy w takim przypadku możemy stwierdzić, że test automatyczny nie wykrył błędu? Myślę, że automat jednoznacznie wskazał, że funkcjonalność nie działa prawidłowo. Jasne, ścieżka została wcześniej przetestowana manualnie, a test automatyczny nie wykrył nowego buga, ale dalej jest to odnalezienie błędu.

A co z nowymi bugami?

I to właśnie do nowych lub starych błędów sprowadza się cała dyskusja. Rzadko zdarza się, by testy automatyczne wykryły nieznane wcześniej bugi. Działają one na przeklikanych ścieżkach, za każdym razem tak samo. Do znalezienia nowego błędu konieczne jest wyjście poza przypadek testowy - a tego automaty nie zrobią (zresztą, mówi o tym paradoks pestycydów). W większości sytuacji testy automatyczne tylko potwierdzają, czy możliwe jest wykonanie ściśle określonych kroków w oprogramowaniu.

Na polu odkrywania nowych bugów niezwyciężone są testy eksploracyjne. Tester pracujący bez wyznaczonych ścieżek jest w stanie wykryć nieprzewidziane zachowania aplikacji. To pokazuje, że testy manualne dalej mają się dobrze i nawet szybki rozwój narzędzi do automatyzacji nie oznacza bolesnego końca manuali.

przycisk z dwoma stanami
przycisk z dwoma stanami

Co o tym myślisz? Daj znać w komentarzu:

Chcesz być na bieżąco? Zapisz się do newslettera!

W każdy czwartek o 10:00 dam Ci znać o moich nowych wpisach.

Dorzucę też ciekawe artykuły, filmy czy inne materiały ze świata IT.

Po zapisie do newslettera, wyślę Ci darmowego ebooka z checklistami dla testerów.

ikona palca
ikona palca
ikona palca
ikona palca
ikona palca
ikona palca

Polecane wpisy:

Sprawdź też moje social media:

Dziękuję, że czytasz mojego bloga!

Masz jakieś pytania? Z chęcią odpowiem :)

Radosław Wasik
Radosław Wasik