Testowanie – rodzaje testów

Jakie są rodzaje testów? Czym się różnią testy dymne od testów jednostkowych? Myślę, że jest to wiedza, którą obowiązkowo trzeba mieć, jeśli myśli się o przystąpieniu do egzaminu ISTQB i pracy jako tester.

rodzaje testów w pajęczej sieci

Krzyżak ogrodowy. Foto: moje, 2017

Różne rodzaje testów

  • Testy funkcjonalne – black-box, bez spoglądania w kod, testowanie pod kątem wymagań funkcjonalnych.
    • Testy dymne (smoke test) – najbardziej podstawowe, ogólne testy – czy program się w ogóle instaluje, uruchamia, pokrywają sprawdzenie podstawowych funkcjonalności.
    • Testy regresji – sprawdzają, czy nowo dodane funkcjonalności lub poprawki błędów nie wprowadzają nowych defektów. Idealne pole do automatyzacji.
    • Testy jednostkowe (modułowe, unit tests) – testowanie najniższych jednostek (funkcji) w izolacji od reszty systemu.
    • Testy integracyjne – po złożeniu systemu w całość. Szukanie błędów głównie w interfejsach i interakcjach pomiędzy modułami.
    • Testy systemowe – black-box, testowanie pod kątem spełniania wymagań ze specyfikacji, testowanie systemu złożonego w całość.
    • Testy akceptacyjne – wykonuje klient (lub beta tester po stronie klienta), testowanie pod kątem z wymaganiami klienta.
  • Testy strukturalne – white-box, przejście przez każdą ścieżkę.
  • Testy niefunkcjonalne
    • Testy obciążeniowe (load tests)
    • Testy ergonomii
    • Testy bezpieczeństwa

Podział ze względu na sposób wykonywania testów:

  • Testy statyczne – bez uruchamiania kodu. Code review, analiza kodu.
  • Testy dynamiczne – testowanie uruchomionego programu.

Ciągle mało? Rodzajów testów naliczono ponad sto! Lista tutaj: https://www.guru99.com/types-of-software-testing.html

Inne testy

  • Negative testing scenarios – przykładowe:
    • testowanie błędnymi wartościami
    • niewypełnienie pól wymaganych
    • niepoprawny typ danych
    • więcej/mniej znaków niż wymagane
    • większy/mniejszy zakres danych, niż spodziewa się program
    • testy z manipulowaniem sesją w przeglądarce
    • zduplikowanie wartości, pól, brak pól (np. w webservisie)
  • Testowanie mutacyjne – sprawdzanie, na ile testy jednostkowe rzeczywiście sprawdzają kod. Automatyczne wprowadzanie losowych błędów w programie (posiewanie błędów) i uruchamianie testów jednostkowych, by sprawdzić, czy wykryły one wprowadzone błędy. Wymaga dużej mocy obliczeniowej.
  • Fuzz testing – wprowadzenie niepoprawnych, nieoczekiwanych, losowych danych, obserwacja i czekanie na awarię. Ma dwa rodzaje: fuzzing mutacyjny lub generacyjny. Tego typu testy mogą być wykonane na wielu poziomach, np. niskopoziomowe – na etapie np. mieszania w pamięci dzielonej lub nieco wyższe – na etapie danych wejściowych do komponentów programu.

Przydatny wpis? Postaw mi kawę :)

Dodaj komentarz

avatar
  Subscribe  
Powiadom o