Automatyczne testowanie (IT)Tester (inżynier QA)

Czym jest testowanie pozytywne i negatywne, jakie są między nimi różnice i dlaczego oba rodzaje są ważne?

Zdaj rozmowy kwalifikacyjne z asystentem AI Hintsage

Odpowiedź.

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:

  • Testowanie pozytywne — sprawdza, czy system działa zgodnie z wymaganiami przy poprawnych danych i działaniach użytkownika.
  • Testowanie negatywne — sprawdza system pod względem stabilności i odporności na błędne, nietypowe lub nieprawidłowe działania i dane.

Kluczowe cechy:

  • Nie można zapewnić jakości tylko jednym typem testowania.
  • Testowanie negatywne pomaga znajdować błędy, które rzadziej występują w normalnym użytkowaniu.
  • Scenariusze pozytywne opierają się na wymaganiach, negatywne — na ich naruszeniu.

Pytania z pułapką.

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ść.

Typowe błędy i antywzorce

  • Całkowite ignorowanie scenariuszy negatywnych.
  • Zbyt powierzchowne testowanie negatywne (np. sprawdzono tylko jeden niepoprawny input).
  • Brak zrozumienia różnicy między testowaniem pozytywnym a negatywnym.

Przykład z życia

Scenariusz negatywny

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:

  • Szybki rozwój i testowanie.

Wady:

  • Po uruchomieniu użytkownicy mogli wysyłać formularz z niewłaściwymi emailami, co prowadziło do awarii wysyłania i negatywnych opinii.

Scenariusz pozytywny

Tester dodał testy na wprowadzanie niedopuszczalnego emaila, zbyt krótkich i długich haseł oraz specjalnych znaków we wszystkie pola.

Zalety:

  • System jest odporny na błędy użytkowników, struktura danych zawsze jest ważna.

Wady:

  • Potrzebny był dodatkowy czas na opracowanie scenariuszy negatywnych, ale opłaciło się to zmniejszeniem liczby błędów w eksploatacji.