Testowanie pozytywne i negatywne z przykładami

⚡ Inteligentne podsumowanie

Testowanie pozytywne i negatywne razem decydują o tym, czy oprogramowanie akceptuje to, co powinno, i odrzuca to, czego nie powinno. W tym artykule wyjaśniono oba podejścia, techniki, na których się opierają, praktyczne przykłady oraz praktyki ograniczające wycieki defektów.

  • Pozytywny wynik testu: Wprowadzaj wyłącznie prawidłowe dane i upewnij się, że aplikacja wykonuje zamierzony przepływ dokładnie tak, jak opisano w specyfikacji.
  • Negatywny wynik testu: Podaj nieprawidłowe lub ekstremalne dane i sprawdź, czy aplikacja je odrzuci, wyświetli wyraźny błąd i pozostanie stabilna.
  • 📏 Analiza wartości brzegowych: Przetestuj krawędź każdego akceptowanego zakresu, a następnie jeden krok poza nim, aby szybko wychwycić defekty wykraczające poza jeden zakres.
  • 🧩 Podział równoważności: Podziel dane wejściowe na grupy prawidłowe i nieprawidłowe, a następnie zamiast testować wszystko, próbkuj jedną wartość z każdej grupy.
  • ⚖️. Zasada pokrycia: Zapisz co najmniej dwa przypadki na każde wymaganie, jeden pozytywny i jeden negatywny, tak aby żadne kryterium akceptacji nie zostało przekazane bez sprawdzenia.
  • 🛡️ Korzyści z bezpieczeństwa: Negatywne przypadki ujawniają błędy wstrzyknięć, wygasłe tokeny i nieobsłużone wyjątki, których pozytywne przebiegi nigdy nie uwzględniają.
  • 🤖 Dopasowanie automatyki: Zautomatyzuj stabilne przepływy dodatnie dla wartości regresji i zautomatyzuj negatywne kontrole poprawności w celu uzyskania informacji zwrotnej na temat odporności.

Testowanie oprogramowania to proces weryfikacji i walidacji aplikacji w celu sprawdzenia, czy działa ona zgodnie z oczekiwaniami. Celem jest wykrycie defektów i poprawa jakości produktu. Istnieją dwa sposoby testowania oprogramowania: testowanie pozytywne i testowanie negatywne.

Te dwa podejścia odpowiadają na przeciwstawne pytania: czy aplikacja działa, gdy wszystko idzie dobrze, i czy pozostaje stabilna, gdy coś pójdzie nie tak?

Czym jest pozytywny wynik testu?

Testowanie pozytywne Testowanie to rodzaj testowania przeprowadzanego na aplikacji programowej poprzez podanie prawidłowych zestawów danych wejściowych. Sprawdza ono, czy aplikacja programowa zachowuje się zgodnie z oczekiwaniami przy pozytywnych danych wejściowych, czy też nie.

Testowanie pozytywne przeprowadza się w celu sprawdzenia, czy aplikacja działa dokładnie tak, jak się od niej oczekuje. Dlatego nazywa się je również testowaniem ścieżki szczęścia.

Rozważmy na przykład pole tekstowe z wartościami liczbowymi pokazane poniżej.

Testowanie pozytywne

W aplikacji znajduje się pole tekstowe, które akceptuje tylko liczby. Wprowadzanie wartości do 99999 będzie akceptowane przez system, a wszelkie inne wartości poza tym nie powinny być akceptowane. Aby przeprowadzić pozytywny test, ustaw prawidłowe wartości wejściowe od 0 do 99999 i sprawdź, czy system akceptuje te wartości.

Czym jest wynik negatywny testu?

Testowanie negatywne Metoda testowania aplikacji polegająca na podaniu nieprawidłowych lub niepoprawnych zestawów danych wejściowych. Sprawdza ona, czy aplikacja zachowuje się zgodnie z oczekiwaniami w przypadku negatywnych lub niepożądanych danych wejściowych użytkownika.

Celem testowania negatywnego jest zapewnienie, że aplikacja nie ulegnie awarii i pozostanie stabilna w przypadku nieprawidłowych danych wejściowych. Dlatego też nazywa się je również testowaniem ścieżki błędów lub testowaniem awarii.

Rozważmy na przykład to samo pole, w którym zamiast cyfr wprowadzane są znaki.

Testowanie negatywne

Test negatywny można wykonać wprowadzając znaki od A do Z lub od a do z. Albo system oprogramowania nie powinien akceptować wartości, albo powinien zgłosić komunikat o błędzie w przypadku nieprawidłowych danych wejściowych.

W przypadku obu typów testów należy wziąć pod uwagę następujące kwestie:

  • Dane wejściowe
  • Czynność, którą należy wykonać
  • Wynik wyjściowy

Pozytywny a negatywny wynik testu: kluczowe różnice

Oba podejścia mają to samo walizka testowa struktura. Różnica tkwi w danych wejściowych, które dostarczasz, i w tym, co udowadnia wynik pozytywny.

Parametr Testowanie pozytywne Testowanie negatywne
Znany także jako Testowanie ścieżki szczęścia Testowanie ścieżki błędu lub awarii
Użyte dane wejściowe Prawidłowe, oczekiwane dane Nieprawidłowe, ekstremalne lub nieoczekiwane dane
Cel Potwierdź, że funkcja działa tak, jak powinna Potwierdź, że funkcja odrzuca to, czego nie powinna
Oczekiwany wynik Przepływ zakończył się pomyślnie Pojawia się wyraźny błąd, a system pozostaje stabilny
Obsługa błędów Nie w centrum uwagi Całe skupienie
Pokrycie Wąski, zgodny ze specyfikacją Szeroki, bada wszystko poza specyfikacją
Typowe ryzyko w przypadku pominięcia Główne funkcje są uszkodzone Awarie i luki w zabezpieczeniach docierają do produkcji

Niepowodzenie testu pozytywnego sygnalizuje wadliwą funkcjonalność. Niepowodzenie testu negatywnego sygnalizuje brak osłony, której naprawa jest znacznie bardziej kosztowna, gdy użytkownik ją znajdzie.

Techniki testowania stosowane do testów pozytywnych i negatywnych

W praktyce dwie klasyczne techniki projektowania nakładów generują zarówno przypadki pozytywne, jak i negatywne w odniesieniu do tego samego wymagania:

  • Analiza wartości granicznej
  • Partycjonowanie równoważności

Analiza wartości granicznej

Jest to jedna z technik testowania oprogramowania, w której przypadki testowe są zaprojektowane tak, aby uwzględniały wartości na granicy. Jeżeli dane wejściowe są wykorzystywane w granicach wartości granicznych, wówczas mówi się, że jest to test pozytywny. Jeśli dane wejściowe zostaną wybrane poza granicami wartości granicznych, mówimy o teście negatywnym.

Na przykład, spójrz na zakres akceptowany przedstawiony poniżej.

Testowanie pozytywne kontra negatywne

System może akceptować wartości liczbowe od 0 do 10. Wszystkie inne liczby są wartościami nieprawidłowymi. W ramach tej techniki testowane będą wartości graniczne -1,0,1 i 9,10,11.

Partycjonowanie równoważności

To jest Testowanie oprogramowania technika, która dzieli dane wejściowe na wiele partycji. Wartości z każdej partycji muszą zostać przetestowane co najmniej raz. Partycje z prawidłowymi wartościami są używane do testów pozytywnych. Podczas gdy partycje z nieprawidłowymi wartościami są używane do testów negatywnych.

Na przykład przyjrzyjmy się dwóm partycjom pokazanym poniżej.

Partycjonowanie równoważności

Wartości liczbowe od zera do dziesięciu można podzielić na dwie (lub trzy) partycje. W naszym przypadku mamy dwie partycje od -10 do -1 i od 0 do 10. Z każdej części można pobrać wartości przykładowe (5 i -5), aby przetestować scenariusze. Zobacz partycjonowanie równoważnościowe i analiza wartości brzegowych lekcja zawierająca więcej przykładów.

Jak wykonać testy pozytywne i negatywne

Poniższa sekwencja przekształca jedno wymaganie w zrównoważony zestaw przypadków pozytywnych i negatywnych.

  1. Przeczytaj wymagania dotyczące limitów. Zwróć uwagę na każdy akceptowany format, zakres i pole obowiązkowe. Wszystko, co dopuszcza specyfikacja, staje się przypadkiem pozytywnym, a wszystko, co wyklucza, staje się przypadkiem negatywnym.
  2. Najpierw napisz przypadek pozytywny. Dostarcz prawidłowe dane, wykonaj czynność i zapisz oczekiwany wynik powodzenia jako wartość bazową.
  3. Wyprowadź przypadki negatywne z tych samych granic. Za pomocą analizy wartości brzegowych i partycjonowania równoważności można uzyskać puste pola, nieprawidłowe typy danych i liczby spoza zakresu.
  4. Dodaj wrogie dane wejściowe. Zawierać SQL injection ciągi znaków, wygasłe tokeny i nieprawidłowo sformatowane ładunki API, testy bezpieczeństwa luki ujawniają się wcześnie.
  5. Rozszerz na kontrole niefunkcjonalne. A test obciążenia liczba obsługiwanych użytkowników jest dodatnia, podczas gdy stress test poza tą granicą znajduje się odpowiadający przypadek negatywny.
  6. Wybierz miejsce, w którym będzie prowadzona każda sprawa. Trzymaj przypadki negatywne z dala testy dymne i trzeźwości, które są szybkimi bramkami dodatnimi i uruchamiają je w trybie funkcjonalnym i testy regresji cykle.

Wypłata z bankomatu pokazuje parowanie. W przypadku pozytywnego wpisu wprowadzany jest poprawny PIN i prawidłowa kwota, co skutkuje otrzymaniem gotówki i paragonu. W przypadku negatywnego wpisywany jest błędny PIN i oczekiwany jest komunikat o odmowie, a następnie blokada karty.

Najlepsze praktyki pozwalające zachować równowagę

  • Przed rozpoczęciem opracowywania napisz co najmniej dwa przypadki na każde wymaganie, jeden pozytywny i jeden negatywny.
  • Nadaj priorytet przypadkom negatywnym według wpływu, tak aby błędy wstrzyknięć i płatności występowały przed kosmetycznymi błędami wprowadzania danych.
  • Podaj sam komunikat o błędzie, a nie tylko informację, że akcja się nie powiodła, ponieważ niejasne komunikaty również są wadami.
  • Zostaw miejsce na testowanie eksploracyjnei rejestruj ustalenia za pomocą proces zarządzania defektami.

⚠️ Ostrzeżenie: Nigdy nie uruchamiaj przypadków negatywnych w rzeczywistym środowisku produkcyjnym. Ich celem jest wymuszenie awarii, a celowe awarie wpływają na prawdziwych użytkowników i prawdziwe dane.

FAQ

Negatywne testy Sprawdza, czy aplikacja poprawnie odrzuca nieprawidłowe dane wejściowe. Testowanie destrukcyjne idzie dalej i celowo doprowadza system do awarii, na przykład poprzez zerwanie połączenia z bazą danych w trakcie transakcji, aby zmierzyć zachowanie systemu i odporność na awarie w ekstremalnych warunkach.

Nie. Testy dymne i testy trzeźwości Używaj tylko pozytywnych kontroli, ponieważ działają one jak szybkie bramki jakości w nowej kompilacji. Negatywne przypadki celowo generują błędy, dlatego zespoły wykonują je w głębszych cyklach funkcjonalnych.

Tak. Generatory AI odczytują wymagania lub historie użytkowników i proponują prawidłowe i nieprawidłowe zestawy danych wejściowych, w tym wartości graniczne. Tester nadal je weryfikuje, ponieważ generowane przypadki negatywne często nie spełniają ograniczeń domeny, takich jak progi regulacyjne czy zasady zaokrąglania walut.

Tak. Funkcje AI wymagają przypadków negatywnych w przypadku szybkiego wstrzykiwania, błędnych odpowiedzi modelu, przekroczenia limitu czasu i pytań wykraczających poza zakres. Ponieważ wyniki różnią się między przebiegami, asercje powinny sprawdzać format odpowiedzi, filtry bezpieczeństwa i zachowanie awaryjne, a nie jeden stały oczekiwany ciąg znaków.

Selenium steruje walidacją pól przeglądarki, Postman obejmuje nieprawidłowe ładunki API i kody stanu oraz JMeter Przenosi obciążenie poza dopuszczalny limit dla scenariuszy naprężeń. Wybierz narzędzie odpowiadające warstwie, którą weryfikujesz.

Podsumuj ten post następująco: