Poziomy testowania

Podczas planowania testów, warto wyodrębnić odpowiednie poziomy testowe. Na dalszych etapach może to znacznie ułatwić podział zadań oraz samą organizację pracy.

Test Levels

Test Levels


Testy można dzielić na wiele sposobów. Jednym z nich jest podział na poziomy testowania. Jednak tutaj może się pojawić problem, jak to jest z tymi poziomami, ile ich jest i jak je odpowiednio sklasyfikować? Każdy, kto ma lub miał styczność z testowaniem, przynajmniej słyszał o poziomach testowania. Zatem przyjrzyjmy się im bliżej.

Poziomy testowania, a ISTQB?

Na początek przypomnijmy sobie opis poziomów testów z Syllabusa ISTQB (Poziom Podstawowy). Określa on poziomy testów jako „grupy czynności testowych, które organizuje się i którymi zarządza się wspólnie”. Wczytując się głębiej w Syllabusa, dowiemy się, że każdy poziom ma określone cele, podstawy testów, przedmioty testów, a także odpowiednie podejścia. Ponadto bazując również na ISTQB, możemy wyróżnić cztery poziomu testowania, czyli:

  • Modułowe
  • Integracyjne
  • Systemowe
  • Akceptacyjne

Przykład podziału na poziomy testowania

Patrząc na powyższy podział, możemy mieć wrażenie, że ta lista nie jest kompletna. Nic bardziej mylnego, wystarczy jedynie sobie zdać sprawę, że powyższe poziomy testowania są względne. Analizując poniższy obrazek, możemy zauważyć, że system (zaznaczony na czerwono), składa się z czterech komponentów, które współpracują ze sobą – ich interakcje zostały oznaczone strzałkami, natomiast każdy komponent składa się dodatkowo z kilku sub-komponentów.

Schemat testowanego systemu
Schemat testowanego systemu

Bazując na powyższym przykładzie, możemy wyróżnić następujące poziomy testów: 

  1. Testowanie modułowe sub-komponentu — testowanie poszczególnych sub-komponentów:
    • SUBCOMPONENT 1
    • SUBCOMPONENT 2
    • SUBCOMPONENT 3
  2. Testowanie integracji sub-komponentów — testowanie współdziałania poszczególnych sub-komponentów:
    • SUBCOMPONENT 1 + SUBCOMPONENT 2
    • SUBCOMPONENT 1 + SUBCOMPONENT 3
    • SUBCOMPONENT 2 + SUBCOMPONENT 3
  3. Testowanie modułowe komponentów (równoznaczne z testowanie systemowym sub-komponentów) — testowanie poszczególnych komponentów, jako całości, czyli osobno:
    • COMPONENT 1
    • COMPONENT 2
    • COMPONENT 3
    • COMPONENT 4
  4. Testowanie integracyjne komponentów — testowanie integracji komponentów, czyli w tym przypadku zależności między nimi oraz współpracy komponentów:
    • COMPONENT 1 z COMPONENT 2
    • COMPONENT 1 z COMPONENT 3
    • COMPONENT 2 z COMPONENT 3
    • COMPONENT 2 z COMPONENT 4
  5. Testowanie systemowe komponentów — testowanie współpracy wszystkich komponentów w systemie działających razem, czyli:
    • COMPONENT 1 + COMPONENT 2 + COMPONENT 3 + COMPONENT 4
  6. Testowanie akceptacyjne komponentów — testowanie współdziałania wszystkich komponentów razem.

Jak widzimy, określanie konkretnych poziomów testowania zależy w znacznej mierze od obranego punktu odniesienia oraz złożoności systemu. W powyższym przykładzie określiliśmy sześć poziomów testowania, którymi powinniśmy pokryć testowanie całego przedmiotu testów. Poniżej jeszcze trochę teorii, co dokładnie oznaczają konkretne poziomy:

Poziom testowania modułowego

Do tego poziomu zaliczamy na przykład unit testy. Celem tego poziomu jest zdobycie zaufania do konkretnego modułu, a także znalezienie w nim jak największej liczby defektów w celu ograniczenia możliwości przedostania się ich na wyższe poziomy. Skupiamy się tutaj zarówno na testach funkcjonalnych, jak i niefunkcjonalnych. Testowanie modułowe najczęściej odbywa się oddzielnie od całego systemu, przez co może być wymagane użycie różnych zaślepek czy sterowników w celu zapewnienia jego działania. Dobry materiał do wdrożenia testów automatycznych.

Poziom testowania integracyjnego

Testowanie współpracy konkretnych modułów. W tym przypadku również często działa się w odseparowaniu testowanych modułów od reszty systemu, co może wymagać wykorzystania zaślepek, czy sterowników. Testowanie integracyjne może badać integracje zarówno pojedynczych modułów, jak i całych grup modułów. Podczas tych testów skupiamy się w głównej mierze na testowaniu współpracy interfejsów modułów. Ten etap również warto wprowadzić do automatycznej regresji.

Poziom testowania systemowego

Skupiamy się tutaj na testach funkcjonalnych, jak i niefunkcjonalnych, a celem jest przetestowanie systemu jako całości, jego możliwościach oraz zachowaniach. Podobnie jak powyższe, tak i ten poziom jest dobrym kandydatem do automatyzacji, dzięki czemu cyklicznie można weryfikować, czy wprowadzone zmiany do elemntu testowanego nie mają negatywnego wpływu na system. Na tym etapie są również sprawdzane wymagania związane z zewnętrznymi regulacjami — na przykład prawnymi.

Poziom testowania akceptacyjnego

Etap podobny do testowania systemowego, z zastrzeżeniem, że na tym etapie określa się czy system nadaje się do wdrożenia lub udostępnienia klientowi. Znalezione defekty mogą zablokować wdrożenie systemu lub zostają wciągnięte do ewentualnego backlog’u kolejnej wersji, lub łatki. Często podczas na tym etapie jest obecny klient, który potwierdza gotowość oprogramowania. Jednymi z bardziej popularnych sposobów testowania na tym etapie są testy akceptacyjne alfa, które są wykonywane wewnątrz firmy, jak i testy akceptacyjne beta, wykonywane na zewnątrz firmy.

Podział na poziomy testów podczas planowania, znacznie ułatwia przygotowywanie testów oraz ich realizację. Dzięki temu, że każdy poziom ma ustalone cele, w łatwy sposób można dostosować wymagań podejście do testowania.

close

Newsletter