Sobes.tech
Junior

Jakie metody testowania istnieją i do jakich typów testów należą?

sobes.tech AI

Odpowiedź od AI

  • Testy funkcjonalne:

    • Testy jednostkowe: Testowanie najmniejszych izolowanych części kodu (funkcji, metod, klas). Wykonywane przez programistów.
    • Testy integracyjne: Testowanie interakcji między modułami i komponentami systemu.
    • Testy systemowe: Testowanie całego zintegrowanego systemu pod kątem zgodności z wymaganiami.
    • Testy akceptacyjne użytkownika (UAT - User Acceptance Testing): Testy przeprowadzane przez końcowych użytkowników lub klienta w celu potwierdzenia zgodności z wymaganiami biznesowymi.
    • Testy end-to-end: Testowanie pełnego przepływu użytkownika przez system, w tym integracji z systemami zewnętrznymi.
    • Testy regresji: Sprawdzanie, czy nowe zmiany lub poprawki nie zakłóciły istniejącej funkcjonalności.
    • Testy dymne (Smoke): Szybka weryfikacja krytycznych funkcji systemu w celu potwierdzenia gotowości do bardziej szczegółowych testów.
    • Testy sanity: Bardziej dogłębne, niż testy dymne, wyrywkowe sprawdzenie kluczowych funkcji po drobnych zmianach lub poprawkach.
  • Testy niefunkcjonalne:

    • Wydajność:
      • Testy obciążeniowe: Sprawdzanie zachowania systemu pod oczekiwanym obciążeniem.
      • Testy stresowe: Sprawdzanie zachowania systemu pod obciążeniem przekraczającym oczekiwane, aż do awarii.
      • Testy stabilności (Endurance/Soak Testing): Sprawdzanie wydajności i zachowania systemu przez dłuższy czas przy stałym obciążeniu.
    • Bezpieczeństwo:
      • Testy podatności: Wyszukiwanie znanych podatności.
      • Testy penetracyjne: Symulacja ataków na system.
      • Audyt bezpieczeństwa: Analiza architektury i konfiguracji pod kątem potencjalnych ryzyk.
    • Użyteczność: Ocena prostoty i intuicyjności interfejsu dla końcowych użytkowników.
    • Testy kompatybilności: Sprawdzanie działania w różnych środowiskach (przeglądarki, systemy operacyjne, urządzenia).
    • Testy lokalizacji: Sprawdzanie dostosowania aplikacji do konkretnego języka i regionu.
    • Testy internacjonalizacji: Sprawdzanie zdolności aplikacji do dostosowania się do różnych języków i regionów bez konieczności zmian w kodzie.
    • Testy dostępności: Sprawdzanie, czy aplikacja jest dostępna dla osób z ograniczeniami.
  • Powiązane obszary i metody:

    • Testy interfejsu użytkownika (UI): Sprawdzanie graficznego interfejsu pod kątem zgodności z projektem i wymaganiami.
    • Testy API: Testowanie interfejsów programowania aplikacji.
    • Testy eksploracyjne: Nieformalne, improwizowane testy skupiające się na wykrywaniu nieoczywistych defektów.
    • Testy oparte na ryzyku: Priorytetyzacja testów na podstawie oceny ryzyka.
    • Testy mutacyjne: Modyfikacja kodu źródłowego w celu sprawdzenia skuteczności scenariuszy testowych.

To główne kategorie. W zależności od metodologii rozwoju (zwinnej, wodospadowej itp.) i specyfiki projektu mogą być stosowane różne podejścia i kombinacje tych metod. Automatyzacja może być stosowana do wielu z tych typów, szczególnie do testów regresyjnych, dymnych, obciążeniowych, API i UI.