Co to jest test negatywny? Przypadki testowe z przykładem
Testowanie negatywne
Testowanie negatywne jest typem testowania oprogramowania używanym do sprawdzania aplikacji oprogramowania pod kątem nieoczekiwanych danych wejściowych i warunków. Nieoczekiwane dane lub warunki mogą być wszystkim, od złego typu danych po silny atak hakerski. Celem negatywnego testowania jest zapobieganie awarii aplikacji oprogramowania z powodu negatywnych danych wejściowych oraz poprawa jakości i stabilności.
Przeprowadzając pozytywne testy, możemy jedynie upewnić się, że nasz system działa w normalnych warunkach. Musimy mieć pewność, że nasz system poradzi sobie z nieoczekiwanymi warunkami, aby zapewnić jego 100% bezawaryjność.
Przykład testu negatywnego
Rozważmy przypadek windy, który jest powszechnie uważany za przykład negatywnego wyniku testu.
Funkcjonalność windy znamy wszyscy. Zostaną one uwzględnione jako wymagania windy, takie jak naciśnięcie numeru piętra, aby winda pojechała na to konkretne piętro.
Drzwi otwierają się automatycznie, gdy winda dotrze na określone piętro i tak dalej.
Rozważmy teraz kilka negatywnych scenariuszy wzrostu. Niektórzy z nich są,
Testowanie negatywne | Testowanie pozytywne |
---|---|
Co się stanie, jeśli liczba osób (waga) przekroczy określony limit? | Zakłada, że do windy wejdzie tylko określona liczba osób |
Co się stanie, jeśli ktoś zacznie palić lub spowodować pożar w windzie? | Wewnątrz windy nie będzie dymu ani ognia |
Co się stanie, jeżeli w trakcie pracy nastąpi przerwa w dostawie prądu? | Podczas pracy dźwigu nie wystąpią awarie prądu |
Wszystkie te przypadki zostaną poddane testom negatywnym. Ważne jest to, że nie możemy mieć pewności, że wszystkie powyższe zdarzenia nie wystąpią, dlatego musimy je ograniczyć.
Rozważmy przypadek, w którym sprawdzono stan nadwagi, a po wdrożeniu winda działa nieprawidłowo, gdy występuje nadwaga. Będzie to miało potencjalny wpływ na niezawodność systemu, a nawet może spowodować zagrożenie życia. Wyjaśnia to, czym są testy negatywne i ich znaczenie.
Ten sam przypadek jest stosowany również w oprogramowaniu. W przypadku testów negatywnych odstąpiliśmy od normalnej procedury operacyjnej. Przeanalizujmy kilka przykładów.
Rozważmy na przykład formularz rejestracyjny.
Testowanie negatywne | Testowanie pozytywne |
---|---|
Spróbuj wpisać nieprawidłowy adres e-mail w polu „e-mail” | W polu adresu e-mail będą wprowadzane tylko prawidłowe adresy e-mail |
Spróbuj wpisać nieprawidłowy numer telefonu w polu numeru telefonu (znaki) | W polu numeru zostanie wpisany jedyny numer |
Prześlij obraz o rozmiarze wykraczającym poza określoną granicę | Przesłane zostaną tylko obrazy o rozmiarze poniżej określonej granicy |
Prześlij nieprawidłowe pliki, np XML, SQL itp. w polu przesyłania obrazu | Przesyłaj tylko prawidłowe formaty obrazów, takie jak jpg.png itp. |
Jak powiedzieliśmy wcześniej, musimy mieć pewność, że we wszystkich tych negatywnych przypadkach nasz system będzie działał poprawnie. Rozważmy przypadek, gdy ktoś próbuje wprowadzić znak w polu liczbowym, a system nie może przetworzyć nieoczekiwanych danych, ponieważ oczekuje liczby, i ostatecznie następuje awaria systemu. A co jeśli ktoś spróbuje to zrobić SQL injection i usuń wszystkie nasze dane z bazy danych. Nie możemy znieść tak potencjalnych strat. Dlatego ważne są negatywne testy.
Dlaczego testy negatywne?
Ponieważ testowanie jest zadaniem czasochłonnym i kosztownym, decyzja „co”, „jak” i „ile” testować jest naprawdę ważna. Musimy mądrze wybrać, czy musimy przeprowadzać negatywne testy w naszym systemie, czy nie. Przyjrzyjmy się zatem znaczeniu negatywnych testów.
Perspektywa organizacji
Obowiązkiem organizacji jest dostarczenie klientowi produktu dobrej jakości. Aby to osiągnąć, należy wykonać testy negatywne.
W ramach potwierdzenia niepowodzenia organizacja musi przeprowadzić testy negatywne.
Być może nie jesteśmy w stanie zbudować systemu w 100% wolnego od błędów, ale musimy upewnić się, że zrobiliśmy wszystko, aby zapobiec awarii, aby to osiągnąć, powinniśmy przeprowadzić testy negatywne.
Wpływ jest jednym z czynników, który musimy wziąć pod uwagę. Weź pod uwagę, że przeprowadziliśmy pozytywne testy w witrynie e-commerce i upewnij się, że wszystko jest w porządku. Ale co, jeśli w naszym systemie jest luka, że ktoś może wykonać zastrzyk SQL i usunąć wszystkie nasze dane. Będzie to poważne naruszenie bezpieczeństwa. Aby uniknąć tego typu przypadków, należy również wykonać testy negatywne.
W przypadku aplikacji otwartych dla publiczności, głównie stron internetowych, musimy zawsze pamiętać, że nie mamy dużej kontroli nad procedurą korzystania z aplikacji, dlatego musimy przeprowadzić testy negatywne, aby upewnić się, że wszystkie takie przypadki są uwzględnione i zabezpieczone.
Inną rzeczą, na którą musimy uważać, jest to, że jest wielu czarnych hakerów, którzy szukają okazji, aby zniszczyć system. Hakerstwo to ważny przypadek objęty negatywnymi testami
Perspektywa klienta
Klienci zawsze oczekują produktów o zerowej podatności na zagrożenia, aby mieć pewność, że negatywne testy będą koniecznością
Jeśli jest to produkt wrażliwy, taki jak handel elektroniczny, zapasy online itp., konieczne są testy bezpieczeństwa i negatywne wyniki.
Jedyną obawą klienta związaną z negatywnymi testami jest koszt. Jednak po przeanalizowaniu wpływu decyzja o przeprowadzeniu testu negatywnego należy do klienta.
Jak wykonać test negatywny
Aby przeprowadzić test negatywny, musimy rozważyć wszystkie możliwe przypadki. To znaczy, jeśli to możliwe, musimy to rozważyć w Przypadek testowy niezależnie od tego, czy nie jest to właściwy sposób jego użycia. Na przykład, jeśli widzimy pole e-mail, pomyślmy o wszystkich możliwych danych wejściowych, które możemy tam umieścić, poza prawidłowym formatem e-maila. Tak samo, gdy widzimy opcję przesyłania obrazu, musimy przetestować ją ze wszystkimi możliwymi plikami.
Podczas tworzenia negatywnych przypadków testowych musimy nadać priorytet danym wejściowym, w przeciwnym razie będzie wiele możliwych przypadków. Na przykład w przypadku pola obrazu, do którego mają być wprowadzane tylko pliki „.png”, możemy mieć wiele opcji przesyłania, takich jak „jpeg”, „xml”, „xls” itd. Musimy więc nadać priorytet takim opcjom, jak XML i SQL może mieć większy wpływ niż JPEG i XLS, dlatego powinniśmy w pierwszej kolejności zająć się przypadkami SQL i XML. W związku z tym musimy ustalić priorytety spraw przed ich wykonaniem, aby zaoszczędzić czas i koszty testowania.
Plusy i minusy testów negatywnych
Podobnie jak w przypadku wszystkich innych technik testowania, testy negatywne mają swoje wady i zalety, głównie ze względu na to, „gdzie”, „kiedy” i „jak” zastosować. Przyjrzyjmy się temu.
Zalety testów negatywnych
- Jak wszyscy wiemy, negatywne testy są bardzo ważne dla zapewnienia jakości produktu. Produkt dobrej jakości to produkt o zerowej podatności na zagrożenia, co gwarantuje, że negatywne testy są bardzo ważne.
- Wykonanie testu negatywnego daje pewność, że uwzględnione zostaną wszystkie możliwe przypadki. Celowo lub nieumyślnie istnieje ryzyko wystąpienia negatywnych przypadków testowych. Aby mieć pewność, że wszystkie przypadki zostaną uwzględnione, musimy przeprowadzić testy negatywne wraz z testami pozytywnymi.
- Negatywne testy zwiększą zaufanie klienta przed uruchomieniem.
Wady testów negatywnych
- W inżynierii oprogramowania negatywne testy w niektórych przypadkach stają się stratą czasu i energii. W wielu przypadkach nie ma potrzeby przeprowadzania nadmiernych negatywnych testów. Przykładowo, jeśli aplikacja jest tworzona do użytku przez jedną osobę, to nie musimy brać pod uwagę przypadku, że z systemu korzysta jednocześnie 100 użytkowników. Dlatego decydowanie o warunkach w negatywnych przypadkach testowych jest bardzo ważne. Będą chwile, w których nie będziemy musieli przeprowadzać negatywnych testów w konkretnym systemie.
- Wymagaj wykwalifikowanych i doświadczonych ludzi do tworzenia negatywnych przypadków testowych.
- Dla klienta negatywne testy to kolejna rzecz, która powoduje niepotrzebne opóźnienie w wydaniu i zwiększa koszty.
- Szansa, że zespół poświęci więcej czasu i energii na negatywne testy. Istnieje ryzyko, że testerzy spędzają dużo czasu i energii na testach negatywnych, co skutkuje mniejszą koncentracją na testach pozytywnych.