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.
- Wydajność:
-
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.