Historia pytania:
Ręczne testowanie pierwotnie opierało się na nawyku testowania tylko tych scenariuszy, które odpowiadały wymaganiom i oczekiwanemu zachowaniu systemu (tzw. "scenariusze pozytywne"). Z czasem stało się jasne, że oprogramowanie często zawodzi właśnie w nieprzewidywanych lub błędnych warunkach, na które nie liczono.
Problem:
Tylko scenariusze pozytywne nie gwarantują odporności i niezawodności aplikacji. Jeśli nie testować scenariuszy negatywnych (np. niepoprawny input, niedopuszczalne działania), można przeoczyć poważne wady, które ujawnią się u rzeczywistych użytkowników.
Rozwiązanie:
Należy przeprowadzać oba rodzaje testowania:
Kluczowe cechy:
Czy można zignorować testowanie negatywne, jeśli produkt przechodzi pełen zestaw scenariuszy pozytywnych?
Nie. Błędy występujące w scenariuszach negatywnych często mają krytyczny wpływ na bezpieczeństwo i niezawodność produktu.
Czy testy negatywne muszą koniecznie prowadzić do błędów w programie?
Nie, dobrze zrealizowany program w scenariuszach negatywnych powinien poprawnie obsługiwać błędne dane, nie "zawieszać się" i nie wydawać nieprawidłowego wyniku.
Czy ważne jest pisanie testów pozytywnych i negatywnych dla wszystkich części systemu?
Nie, czasami dla niekluczowych lub ustabilizowanych części systemu można skrócić liczbę scenariuszy negatywnych, ale dla wrażliwych i krytycznych miejsc — to konieczność.
W firmie podczas testowania formularza rejestracji na stronie sprawdzano tylko poprawne wartości (dozwolony email, hasła itp.), nie biorąc pod uwagę błędnych opcji.
Zalety:
Wady:
Tester dodał testy na wprowadzanie niedopuszczalnego emaila, zbyt krótkich i długich haseł oraz specjalnych znaków we wszystkie pola.
Zalety:
Wady: