Testy negatywne w testowaniu oprogramowania to technika, która weryfikuje reakcję aplikacji na nieoczekiwane zachowania lub nieprawidłowe dane. Ten rodzaj testowania może pomóc zespołom ds. zapewnienia jakości poprawić solidność i stabilność ich oprogramowania poprzez wykrywanie wyjątków, które powodują zawieszanie się, awarie lub inne niepożądane skutki.
W tym artykule zbadamy, czym jest negatywne testowanie oprogramowania, dlaczego jest ono ważne oraz niektóre z różnych podejść, technik i narzędzi, których można użyć w tej technice.
Czym jest negatywne testowanie oprogramowania?
Testowanie negatywne to technika testowania oprogramowania polegająca na celowym wprowadzaniu do systemu nieprawidłowych danych wejściowych lub nieoczekiwanych danych w celu sprawdzenia, jak system radzi sobie z takimi scenariuszami. Podejście to, znane również jako testowanie awaryjne lub testowanie ścieżki błędów, symuluje różnorodny zakres rzeczywistych scenariuszy, które napotka Twoja aplikacja, takich jak użytkownicy wprowadzający nieprawidłowe daty lub znaki lub korzystający z niektórych funkcji w sposób, który nigdy nie był zamierzony.
Większość rodzajów testów wykorzystuje prawidłowe dane do testowania aplikacji. Testowanie negatywne przyjmuje jednak inne podejście, testując wokół krawędzi i poza typowymi danymi wejściowymi oraz sprawdzając, jak aplikacja radzi sobie z wyjątkami.
Testowanie, czy aplikacja działa zgodnie z przeznaczeniem, jest ważne. Z drugiej strony, zrozumienie tego, co dzieje się, gdy użytkownicy opuszczają rezerwację, jest również kluczowe, szczególnie jeśli te niezamierzone zastosowania powodują awarie, zawieszanie się lub inne usterki.
Różnica między testem pozytywnym a negatywnym
testowanie w testowaniu oprogramowania
Jak wspomnieliśmy powyżej, testy negatywne wykorzystują nieoczekiwane lub nieprawidłowe dane do weryfikacji zachowania systemu. Z kolei testowanie pozytywne wykorzystuje oczekiwane lub prawidłowe dane, aby zweryfikować, czy system działa zgodnie z oczekiwaniami.
Innymi słowy:
- Pozytywne testy pomagają zrozumieć, czy aplikacja działa zgodnie z planem
- Testy negatywne określają, czy aplikacja może obsłużyć nieoczekiwane zdarzenia
Zarówno testy pozytywne, jak i negatywne w testowaniu oprogramowania są wymagane, jeśli chcesz rygorystycznie przetestować swoją aplikację.
Dlaczego negatywne testowanie oprogramowania jest tak ważne?
Kiedy programiści tworzą oprogramowanie, mają jasne wyobrażenie o tym, w jaki sposób oczekują, że użytkownik będzie z niego korzystał. Jednak użytkownicy nie zawsze przestrzegają zasad. Dość często próbują klikać przyciski, które nie istnieją, wprowadzać litery w polach numerycznych lub próbować wprowadzać dane, których się nie spodziewasz.
Testowanie negatywne ma na celu uwzględnienie tych przypadków brzegowych, których nie można wykryć za pomocą pozytywnych technik testowania, takich jak
jednostka
,
systemowe
lub
testy integracyjne
. Wymaga to niekonwencjonalnego myślenia, aby wymyślić „podkręcone piłki” do rzucenia w system. Rezultatem netto jest jednak bardziej stabilna i solidna aplikacja.
Jaki jest cel testów negatywnych?
w testowaniu oprogramowania?
Testy negatywne mają podobne cele do innych rodzajów testowania oprogramowania. Mianowicie, aby odkryć błędy, wady i luki w zabezpieczeniach aplikacji. Odgrywa jednak szczególną rolę w znajdowaniu usterek, których nie można wykryć przy użyciu prawidłowych danych. Oto kilka powodów, dla których warto przyjąć negatywne podejście do testowania.
1. Ujawnianie wad
Głównym celem testów negatywnych w testowaniu oprogramowania jest wykrycie defektów wynikających z nieprawidłowych danych lub nieoczekiwanych danych wejściowych. Pozwala to testerom przyjąć bardziej proaktywne podejście do wykrywania błędów i upewnić się, że oprogramowanie spełnia oczekiwania.
2. Bezpieczeństwo
Nieoczekiwane dane wejściowe lub nieprawidłowe dane mogą ujawnić luki w zabezpieczeniach. Testowanie i rozwiązywanie tych przypadków brzegowych prowadzi do bezpieczniejszej i solidniejszej aplikacji poprzez zmniejszenie możliwości złośliwych ataków, błędów wtrysku lub prób nieautoryzowanego dostępu.
3. Obsługa błędów
Testy negatywne są przydatne do sprawdzania poprawności obsługi błędów. Nie chodzi tylko o zapewnienie, że system pozostanie stabilny po napotkaniu nieoczekiwanych danych wejściowych lub danych, ale także o to, jak reaguje na te zdarzenia, takie jak generowanie komunikatów o błędach, aby upewnić się, że użytkownik końcowy wie, że dane są nieprawidłowe.
4. Poprawa pokrycia testami
Testy pozytywne i negatywne w testowaniu oprogramowania wzajemnie się uzupełniają. Oba obejmują różne elementy wprowadzania danych, co oznacza, że testy są bardziej kompleksowe.
5. Lepsze doświadczenie użytkownika
Testy negatywne pomagają odkryć źródło komunikatów o błędach, awarii i innych nieoczekiwanych zachowań, które mogą negatywnie wpływać na wrażenia użytkownika.
Różnica między wartością dodatnią i ujemną
testowanie w inżynierii oprogramowania
Jak wspomnieliśmy powyżej, testy negatywne wysyłają nieoczekiwane lub nieprawidłowe dane w celu zweryfikowania zachowania systemu. Z drugiej strony testy pozytywne wysyłają oczekiwane lub prawidłowe dane w celu sprawdzenia, czy system działa zgodnie z oczekiwaniami.
Różnica między testami pozytywnymi i negatywnymi obejmuje:
1. Cele:
Testy pozytywne weryfikują, czy oprogramowanie działa zgodnie z przeznaczeniem; testy negatywne mają na celu zrozumienie, co dzieje się w niezamierzonych scenariuszach.
2. Dane:
Testy pozytywne wykorzystują prawidłowe dane, a testy negatywne wykorzystują nieprawidłowe dane wejściowe, skrajne wartości i nieoczekiwane formaty.
3. Koncentracja:
Testy pozytywne koncentrują się na scenariuszach sukcesu, podczas gdy testy negatywne są bardziej związane ze scenariuszami niepowodzenia.
Różne rodzaje testów negatywnych
Testowanie negatywne to koncepcja, która obejmuje kilka różnych podejść do walidacji jakości i integralności aplikacji. Oto siedem rodzajów negatywnych testów, które musisz znać.
#1. Testowanie wartości granicznych
Testowanie wartości granicznych ma na celu przetestowanie oprogramowania z wejściami, które znajdują się na granicach lub krawędziach zakresu wejściowego. Testuje zarówno maksymalne, jak i minimalne oczekiwane wartości, ale także testy wykraczające poza te dane wejściowe.
Przykład: Pole wejściowe akceptuje liczby od 1 do 9. Test wartości granicznej wprowadzi zarówno 1, jak i 9, ale także przetestuje 0 i 10.
#2. Testowanie wartości wejściowych
Testowanie wartości wejściowych określa, w jaki sposób system zareaguje na nieoczekiwane lub nieprawidłowe dane wejściowe. Niektóre z danych wejściowych, które będą testowane obejmują:
- Nieprawidłowe typy danych
- Wartości poza zakresem
- Znaki specjalne
- Puste pola.
Przykład: Pole wprowadzania wymaga tylko liczby, więc test będzie polegał na wprowadzeniu litery i sprawdzeniu, jak zareaguje system.
#3. Testy obciążeniowe
Testowanie obciążenia
Pomagają testerom ocenić, jak system będzie reagował na duże obciążenia, takie jak duże zbiory danych lub duże natężenie ruchu.
Narzędzia do automatyzacji testów
mogą symulować te ekstremalne warunki, aby zrozumieć, jak system reaguje pod presją.
Przykład: Tester będzie symulował tysiące jednoczesnych użytkowników uzyskujących dostęp do strony internetowej.
#4. Testowanie wyjątków
Ten rodzaj testów bada, w jaki sposób system zareaguje na wyjątkowe zdarzenia lub błędy. Niektóre z testów obejmują
- Symulowanie awarii systemu
- Awarie sieci
- Błędy bazy danych
- Problemy z miejscem na dysku
- Brakujące pliki.
Przykład: Test może badać, co się dzieje, gdy użytkownik pobiera plik z aplikacji, a Internet zostaje odcięty.
#5. Testy bezpieczeństwa
Testy bezpieczeństwa wykorzystują negatywne podejście do testowania, aby podkreślić i zrozumieć luki w oprogramowaniu, które mogą zostać ujawnione przez nieprawidłowe lub nieoczekiwane dane wejściowe. To podejście testuje typowe ataki, takie jak
- Wstrzyknięcie kodu SQL
- Cross-site scripting (XSS)
- Przepełnienia bufora.
Przykład: Test bezpieczeństwa może próbować wstrzyknąć złośliwy kod do pola wejściowego użytkownika.
#6. Testowanie interfejsu użytkownika
Ten rodzaj testów koncentruje się na błędach występujących podczas interakcji użytkownika z oprogramowaniem. Niektóre z rzeczy, które będzie próbował określić, obejmują:
- Nieoczekiwane reakcje na interakcje użytkownika
- Nieprawidłowe komunikaty o błędach
- Problemy z nawigacją
Przykład: Test zbada, co się stanie, gdy określone działania zostaną wykonane poza kolejnością.
#7. Testowanie integralności danych
Testowanie integralności danych zapewnia, że dane pozostają dokładne i spójne w różnych operacjach w aplikacji. Niektóre z testowanych rzeczy obejmują:
- Potencjalne uszkodzenia danych
- Scenariusze utraty danych
- Niezamierzone modyfikacje danych
Przykład: Test sprawdza, czy dane pozostają niezmienione po transmisji.
Jak widać, istnieje wiele różnych podejść do testów negatywnych. Ich wspólną cechą jest wykorzystanie nieoczekiwanych danych wejściowych lub nieprawidłowych danych w celu sprawdzenia, jak aplikacja działa w nietypowych warunkach.
Zalety testów negatywnych
Testy negatywne polegają na zrozumieniu sposobu działania aplikacji w nieoczekiwanych sytuacjach. Oto niektóre z głównych korzyści płynących z zastosowania tego podejścia.
- Pomaga zrozumieć wpływ nieoczekiwanych danych wejściowych lub nieprawidłowych danych na aplikację. Czy ulegnie awarii? Wypluwa niedokładny komunikat o błędzie?
- Testy negatywne są częścią odpowiedzialnego podejścia do zapewniania jakości, ponieważ mają na celu identyfikację słabych punktów systemu
- Testy negatywne wystawiają oprogramowanie na próbę, testując jego reakcję na nieprzewidziane scenariusze, które napotka w środowisku naturalnym
- Ponownie, testy negatywne są istotnym elementem kompleksowego podejścia do bezpieczeństwa, ponieważ wskazują potencjalne wektory ataku, które cyberprzestępcy mogą wykorzystać.
Wady testów negatywnych
Testy negatywne oferują wiele korzyści, ale mają też pewne wady, które należy przezwyciężyć.
- Dokładne testy negatywne mogą wymagać dodatkowego sprzętu i oprogramowania, co może zwiększyć koszty testów. Dla zespołów z ograniczonym budżetem może to być niekorzystne.
- Testowanie negatywne może być dość czasochłonne, ponieważ wymaga utworzenia wielu przypadków testowych w celu uwzględnienia różnych permutacji danych wejściowych, z którymi oprogramowanie będzie miało do czynienia w produkcji
- Istnieją ograniczenia co do ilości nieprzewidywalnych sytuacji, które można objąć testami negatywnymi. Niektóre sytuacje mogą być tak nieoczekiwane, że testerzy nie są w stanie ich uwzględnić.
- Automatyzacja negatywnych przypadków testowych stanowi wyzwanie. Jednak dzięki odpowiedniemu oprogramowaniu, takiemu jak ZAPTEST, proces ten jest znacznie łatwiejszy w zarządzaniu.
Wyzwania związane z negatywnymi wynikami testów
Testy negatywne mają kluczowe znaczenie, jeśli chcesz zbudować solidne i niezawodne oprogramowanie zdolne do wytrzymania naprężeń i obciążeń związanych z interakcją z użytkownikiem. Wdrożenie tego podejścia wiąże się jednak z pewnymi wyzwaniami, których należy być świadomym.
Przeanalizujmy niektóre z bardziej uporczywych wyzwań.
1. Identyfikacja negatywnych scenariuszy w testowaniu oprogramowania
Wystarczający zasięg:
Jednym z największych wyzwań w testach negatywnych jest zapewnienie, że obejmują one wystarczająco dużo nieoczekiwanych scenariuszy. Istnieje wiele negatywnych scenariuszy i permutacji, więc rozważenie ich wszystkich wymaga kreatywnego podejścia do wyobrażenia sobie, w jaki sposób użytkownicy będą wchodzić w interakcję z oprogramowaniem.
Priorytetyzacja:
Przy tak wielu potencjalnych negatywnych scenariuszach, które należy wziąć pod lupę, testerzy nie zawsze są pewni, od czego powinni zacząć. Niektóre solidne kryteria oceny priorytetów obejmują prognozowanie:
- Sytuacje z wysokim prawdopodobieństwem wystąpienia usterek
- Nasilenie skutków usterek.
2. Projektowanie odpowiednich negatywnych przypadków testowych
Sprawdzanie poprawności danych wejściowych:
Projektowanie solidnych negatywnych przypadków testowych wymaga dość wszechstronnego zrozumienia zachowania, architektury i ograniczeń systemu. Testowanie oprogramowania wymaga użycia starannie przemyślanych danych wejściowych i danych. Chociaż podejście losowe może pomóc w ujawnieniu niektórych usterek, blednie ono w porównaniu z bardziej precyzyjnym i systematycznym podejściem do testów negatywnych.
Różnorodność danych:
W zależności od specyfiki systemu, konieczne może być przetestowanie dość zróżnicowanego zestawu danych. W rzeczywistości istnieje wiele różnych formatów danych, takich jak liczby, tekst, daty i tak dalej, z których każdy może być akceptowany przez aplikację. Wyzwaniem jest tutaj zaprojektowanie przypadków testowych, które mogą uwzględniać każdy format, a w szczególności każdą odmianę nieprawidłowych danych. Taka sytuacja może być dość czasochłonna dla zespołów testujących.
3. Wydajność i automatyzacja testów
Czasochłonne:
Pozytywne testy mają na celu sprawdzenie oprogramowania pod kątem oczekiwanych wyników. Z drugiej strony testy negatywne muszą zagłębiać się w nieoczekiwane i badać potencjalne scenariusze. Przemierzanie niezbadanego terytorium zajmuje więcej czasu. W rezultacie, jeśli chcesz uzyskać kompleksowe wyniki, które pochodzą z testów negatywnych, musisz być przygotowany na zainwestowanie kilku dodatkowych godzin.
Złożoność automatyzacji:
Testy negatywne mogą być czasochłonne i zasobochłonne. W związku z tym jest to idealne miejsce do automatyzacji testów oprogramowania. Istnieją jednak pewne trudności, które należy przezwyciężyć. Na przykład projektowanie przypadków testowych, które definiują oczekiwane wyniki dla nieoczekiwanych danych wejściowych, wymaga pewnego doświadczenia i wiedzy. Ponadto istniejący framework do testów automatycznych może nie obsługiwać nieprawidłowych danych, które chcesz przekazać do aplikacji, dodając kolejną warstwę złożoności.
4. Ocena wyników
Fałszywe alarmy:
Kalibracja testów w celu zapewnienia zadowalającej równowagi między dokładnością a kompleksowością jest znanym zagadnieniem dla testerów negatywnych. W niektórych sytuacjach nadwrażliwa obsługa błędów będzie fałszywie mylić prawidłowe dane wejściowe z negatywnymi, prowadząc do marnowania czasu na problemy, które nie są istotne.
Niejednoznaczne wyniki:
Gdy system otrzymuje nieprawidłowe dane wejściowe, może to powodować awarie, błędy lub zawieszanie się. W wielu przypadkach jest to pewna oznaka błędu. Jednak w innych przypadkach jest to dowód na nieobsługiwany przypadek brzegowy, którego programiści nie wzięli pod uwagę. Rozróżnienie tych dyskretnych sytuacji jest ważne, ale zbadanie prawdziwej przyczyny jest czasochłonne.
Zarządzanie danymi:
Testy negatywne wymagają znacznej ilości danych. Te informacje testowe muszą być zarówno generowane, jak i przechowywane. W scenariuszach rozwoju z napiętymi ramami czasowymi jest to dodatkowa praca, którą należy wziąć pod uwagę.
5. Kwestie organizacyjne
Brak wiedzy specjalistycznej w zakresie testów negatywnych:
Podczas gdy testy negatywne są popularne, wielu testerom brakuje umiejętności i wiedzy specjalistycznej, aby wdrożyć ten rodzaj testów w kompleksowy sposób. Projektowanie niektórych negatywnych przypadków testowych jest mniej intuicyjne niż ich pozytywnych odpowiedników. Co więcej, wdrożenie automatyzacji testów może również stanowić wyzwanie bez odpowiedniej wiedzy specjalistycznej.
Presja biznesowa:
Interesariusze, testerzy i kierownictwo muszą zrozumieć kluczową rolę, jaką testy negatywne odgrywają w tworzeniu solidnych aplikacji. Niedocenianie jego znaczenia może prowadzić do presji na skupienie się na testach pozytywnych kosztem testów negatywnych.
Oczywiste jest, że przed zespołami, które chcą odblokować korzyści płynące z testów negatywnych, stoi kilka wyzwań. Jednak dzięki właściwemu podejściu i odpowiednim narzędziom do testowania oprogramowania można przezwyciężyć te problemy i stworzyć oprogramowanie, które wykracza poza oczekiwania użytkowników.
Jak pisać negatywne przypadki testowe do testowania oprogramowania
Pisanie negatywnych przypadków testowych wymaga pewnego doświadczenia i kreatywnego myślenia. Oto przewodnik krok po kroku, który pomoże ci stworzyć te krytyczne przypadki testowe.
#1. Ustal swoje cele
Zanim napiszesz negatywne przypadki testowe, musisz zrozumieć, dlaczego chcesz przeprowadzić testy negatywne. Nie wszystkie aplikacje korzystają z testów negatywnych.
Zrozum więc, co chcesz osiągnąć. Testy negatywne mają na celu wykrycie błędów i awarii wynikających z nieoczekiwanych scenariuszy lub warunków interakcji użytkownika.
#2. Nakreślenie potencjalnych negatywnych scenariuszy
Następnie należy uwzględnić negatywne scenariusze, które mogą wystąpić podczas interakcji użytkowników z oprogramowaniem. Badania na tym etapie mają kluczowe znaczenie. Niektóre obszary, które powinieneś zbadać, to
- Wymagania systemowe
- Typowe przypadki użycia
- Cechy i funkcje aplikacji
Przeanalizuj te sytuacje i sporządź listę scenariuszy, w których aplikacja może nie działać zgodnie z zamierzeniami.
Następnie należy rozważyć krytyczne scenariusze walidacji danych wejściowych. Zazwyczaj obejmuje to formularze wprowadzania danych, pola logowania itp.
Wreszcie, należy wziąć pod uwagę niezliczone niekonwencjonalne sposoby interakcji użytkowników z oprogramowaniem i nieoczekiwane zdarzenia, które mogą powodować niekorzystne skutki, takie jak rozłączenia sieci, nagłe zamknięcia systemu, masowe transfery danych itp.
Po udokumentowaniu jak największej liczby scenariuszy nadszedł czas, aby określić oczekiwane wyniki tych nieoczekiwanych scenariuszy.
#3. Nakreślenie oczekiwanych wyników
Każdy przypadek testowy musi mieć oczekiwany wynik, a negatywny przypadek testowy nie jest inny. Najlepszą praktyką jest rozpisanie każdego negatywnego scenariusza i określenie, jaki powinien być jego rezultat.
Niektóre z potencjalnych wyników mogą obejmować:
- Dokładne i bogate w informacje komunikaty o błędach
- Odpowiednie przekierowania
- Łaskawa obsługa systemu, na przykład zapobieganie zawieszaniu się lub zawieszaniu systemu.
#4. Wybór wejść do testowania
Teraz nadszedł czas, aby sprawdzić, które dane wejściowe należy przetestować. Te dane wejściowe powinny być tymi, które najprawdopodobniej spowodują błąd lub inne negatywne zachowania.
Niektóre dane wejściowe, które należy uwzględnić, to:
- Wartości poza zakresem (wartości ujemne w polu wieku itp.)
- Nieprawidłowe dane (litery w polu numerycznym itp.)
- Nieoczekiwane znaki lub symbole
- Znaki specjalne
- Brakujące dane
#5. Napisz przypadki testowe
Po zebraniu wszystkich scenariuszy nadszedł czas na napisanie przypadków testowych. Teraz, w przypadku testów negatywnych, istnieje niemal nieograniczona liczba przypadków testowych, które można napisać. W końcu ten rodzaj testów polega na sprawdzeniu, co się dzieje, gdy ludzie używają oprogramowania w sposób, który nie był zamierzony. Terminy nakazują jednak ograniczyć listę potencjalnych przypadków do sytuacji, które z największym prawdopodobieństwem mogą powodować problemy.
Jak zawsze, przypadki testowe należy pisać w sposób jasny, zwięzły i obiektywny. Nie ma tu miejsca na dwuznaczności.
Oto dobry format dla negatywnych przypadków testowych.
- Użyj identyfikatora przypadku testowego
- Dokładnie opisz, co jest testowane
- Zwróć uwagę na wszelkie warunki wstępne testu negatywnego
- Nakreślenie zestawu odpowiednich kroków
- Ustalenie jasnych i obiektywnych wyników
- Zanotuj rzeczywisty wynik testu
#6. Zaplanuj test
Teraz należy zaplanować testy. Ponownie, ważne jest, aby nadać priorytet scenariuszom, które mają najpoważniejsze negatywne skutki, takie jak wypadki, lub w których najprawdopodobniej zostaną wykryte problemy.
Przykład negatywnego przypadku testowego
Oto przykład negatywnego przypadku testowego.
Identyfikator przypadku testowego: TC001
Opis: Weryfikacja wyświetlania komunikatu o błędzie, jeśli użytkownik wprowadzi nieprawidłowy adres e-mail.
Warunki wstępne: Użytkownik musi znajdować się na stronie logowania do aplikacji
Kroki: 1. Wprowadzono nieprawidłowy adres e-mail. 2. Naciśnij „Login”
Oczekiwany wynik: Gdy użytkownik naciśnie przycisk „Zaloguj się”, pojawi się komunikat o błędzie z informacją „wprowadzono nieprawidłowy adres e-mail”.
Wynik: Zapisz, co się stało po wybraniu opcji „Zaloguj się”.
Przykłady negatywnych scenariuszy w testowaniu oprogramowania
Oto kilka typowych scenariuszy, które można zweryfikować za pomocą negatywnych metod testowania.
1. Typy danych i pól
Jeśli wypełniałeś formularz online, wiesz, że te pola są ustawione na akceptowanie określonych typów danych. Niektóre z nich zawierają tylko liczby, podczas gdy inne akceptują daty, tekst lub inne typy danych.
Testy negatywne dla tych pól obejmują wysyłanie nieprawidłowych danych, na przykład wprowadzanie liter do pola numerycznego.
2. Wymagane pola
Ponownie, wymagane pola są powszechną cechą formularzy i aplikacji. Są one przydatnym narzędziem zapewniającym zebranie wszystkich krytycznych informacji, zanim użytkownik przejdzie do następnego etapu.
Dobrym przypadkiem testowym dla tych scenariuszy jest sprawdzenie, co się stanie, gdy te pola pozostaną puste. W idealnym scenariuszu powinien zostać uruchomiony komunikat o błędzie, wzywający użytkownika do wypełnienia wymaganego pola.
3. Odpowiednia liczba znaków
Jeśli testowana jest aplikacja stron internetowych, może istnieć pole danych, które wymaga ograniczonej liczby znaków. Może to dotyczyć nazw użytkowników, numerów telefonów, numerów rejestracyjnych itp.
Możesz utworzyć negatywne przypadki testowe dla tych pól, pisząc testy, które wprowadzają więcej niż maksymalne dozwolone znaki, aby zobaczyć, jak zareaguje aplikacja.
4. Granice i limity danych
Niektóre formularze będą miały pola ze stałymi limitami. Na przykład, jeśli chcesz, aby ktoś ocenił coś na 100, granice danych będą wynosić 1-100.
Utwórz negatywny przypadek testowy, w którym spróbujesz wprowadzić 0, 101 lub inne ujemne lub dodatnie wartości z zakresu 1-100.
Najlepsze praktyki dla testów negatywnych
Istnieje kilka najlepszych praktyk związanych z zapewnieniem wysokiej jakości testów negatywnych. Oto kilka wskazówek, które pomogą Ci to osiągnąć.
1. Zdefiniuj nieprawidłowe dane wejściowe:
Przeanalizuj dokumentację programistyczną, przypadki użycia i UI/UX, aby zrozumieć i zidentyfikować potencjalne nieprawidłowe dane wejściowe. Zwróć uwagę na nieprawidłowe typy danych, skrajne wartości, brakujące dane, puste pola, nieoczekiwane formaty i inne.
2. Wykorzystanie analizy wartości brzegowych:
Jak wspomniano powyżej, nakreśl wartości graniczne, aby znaleźć przypadki brzegowe, które mogą powodować nieoczekiwane reakcje.
3. Podział równoważności pracowników:
Przyjrzyj się swoim domenom wejściowym i podziel je na partycje równoważności zarówno prawidłowych, jak i nieprawidłowych wartości. Proces ten pomaga zmniejszyć liczbę przypadków testowych, które trzeba napisać, ponieważ jeśli równoważny fragment nieprawidłowych danych powoduje problemy dla jednego wejścia, prawdopodobnie będzie on reprezentowany w całej klasie.
4. Naśladowanie złych użytkowników:
Pozytywne testy weryfikują oczekiwane zachowanie użytkownika. Testy negatywne badają, co się dzieje, gdy użytkownicy niewłaściwie korzystają z aplikacji. Zastanów się więc nad różnymi scenariuszami, w których może się to zdarzyć i odtwórz je w swoich przypadkach testowych.
5. Niech ryzyko i wpływ kierują testami:
Żaden tester nie ma nieograniczonego czasu. W pewnym momencie będziesz musiał dokonać trudnych wyborów, ponieważ nie możesz przetestować (ani nawet poznać) każdego nieoczekiwanego wyniku. Kiedy musisz zdecydować, które rodzaje testów negatywnych należy przeprowadzić, nadaj priorytet obszarom, które przyniosą największe ryzyko lub negatywny wpływ na Twój produkt.
6. Weryfikacja obsługi błędów:
Upewnij się, że obsługa błędów jest częścią testów, sprawdzając, czy komunikaty o błędach są przydatne i dokładne.
7. Jak największa automatyzacja:
Automatyzacja doskonale radzi sobie z przyziemnymi i powtarzalnymi zadaniami. Testowanie negatywne nadal wymaga jednak ręcznego podejścia do testowania eksploracyjnego i znajdowania przypadków brzegowych.
Najlepsze narzędzia do testów negatywnych w 2024 roku
Podczas gdy negatywne testowanie oprogramowania jest powszechne w całej branży, brakuje odrębnych narzędzi do tego zadania. Głównym tego powodem jest wszechstronny charakter testów negatywnych. Co więcej, wiele z tych samych narzędzi, które są używane do testów pozytywnych, działa w przypadku testów negatywnych po dostosowaniu danych wejściowych.
ZAPTEST jest najlepszym narzędziem do testów negatywnych ze względu na jego wszechstronny i modułowy charakter. Jest łatwy w użyciu i konfigurowalny, a dzięki możliwościom międzyplatformowym i międzyaplikacyjnym oferuje elastyczność, którą trudno przebić.
Testowanie oparte na danych i
testowanie mutacji
Funkcjonalność sprawia, że ZAPTEST jest idealny do testów negatywnych. Co więcej, dzięki RPA można symulować rzeczywistych użytkowników, ponownie wykorzystywać testy oraz z łatwością tworzyć raporty i dokumentację. Krótko mówiąc, zdolność ZAPTEST do uruchamiania najnowocześniejszego oprogramowania do automatyzacji oprogramowania i oprogramowania do automatyzacji procesów zrobotyzowanych sprawia, że jest to kompleksowe rozwiązanie do każdego zadania automatyzacji, w tym testów negatywnych.
Końcowe przemyślenia
Testy negatywne w testowaniu oprogramowania pomagają zespołom zrozumieć, w jaki sposób ich aplikacja poradzi sobie z nieoczekiwanymi danymi wejściowymi i nieprawidłowymi danymi. Podczas gdy pozytywne testy sprawdzają, czy oprogramowanie działa zgodnie z przeznaczeniem, negatywne testy oprogramowania pomagają dowiedzieć się, co się dzieje, gdy użytkownicy nieprawidłowo wybierają dane wejściowe i dane. Oba podejścia są ważne, jeśli chcesz mieć solidną i wytrzymałą aplikację, która poradzi sobie ze stresem i naprężeniami związanymi z różnorodnymi interakcjami użytkowników.