Podręcznik

1. Podstawy testowania oprogramowania

1.5. Normy i standardy w testowaniu oprogramowania

Profesjonalne testowanie oprogramowania nie może obyć się bez odniesień do międzynarodowych norm i standardów, które określają dobre praktyki, terminologię, a także struktury dokumentacji i procesów testowych. Zapoznanie się z nimi jest kluczowe nie tylko dla testerów, ale również dla kierowników projektów i zespołów odpowiedzialnych za jakość oprogramowania.

Standard/NormaZakresZastosowanie
ISO/IEC/IEEE 29119Kompletny proces testowaniaStandaryzacja dokumentacji i procesów
ISTQBWiedza i certyfikacja testerówEdukacja, rekrutacja
ISO/IEC 25010Model jakości oprogramowaniaTesty niefunkcjonalne
OWASPBezpieczeństwo aplikacjiTesty bezpieczeństwa
ISO/IEC 12207Procesy cyklu życia oprogramowaniaOgólne zarządzanie jakością

1.5.1 ISO/IEC/IEEE 29119 – Międzynarodowy standard testowania oprogramowania

Standard ISO/IEC/IEEE 29119 to najbardziej uznany i kompleksowy zbiór norm międzynarodowych dotyczących testowania oprogramowania. Został opracowany przez organizacje ISO (Międzynarodowa Organizacja Normalizacyjna), IEC (Międzynarodowa Komisja Elektrotechniczna) oraz IEEE (Instytut Inżynierów Elektryków i Elektroników). Ma zastosowanie zarówno w dużych organizacjach, jak i w mniejszych zespołach oraz w projektach prowadzonych zgodnie z podejściem klasycznym (np. kaskadowym), jak i zwinnie (Agile).

Standard składa się z pięciu części, z których każda koncentruje się na innym aspekcie procesu testowania.

ISO/IEC/IEEE 29119-1 – Pojęcia i definicje

Ta część definiuje wspólne słownictwo używane w procesie testowania. Standaryzacja terminologii ułatwia komunikację między zespołami, firmami i interesariuszami.

Przykładowe zdefiniowane pojęcia:

  • Test case (przypadek testowy) – zestaw wejść, warunków wykonania i oczekiwanych wyników.

  • Defect (błąd) – niezgodność pomiędzy faktycznym a oczekiwanym zachowaniem oprogramowania.

  • Test coverage (pokrycie testowe) – miara pokazująca zakres testowanych elementów systemu.

Dzięki tej części można uniknąć nieporozumień i niejednoznaczności przy opisywaniu i raportowaniu testów.

ISO/IEC/IEEE 29119-2 – Procesy testowania

Określa standardowe procesy testowania, które mogą być stosowane w dowolnym cyklu życia oprogramowania. Proponuje strukturalne podejście, które można dostosować do różnych modeli SDLC (np. V-Model, Agile). Podstawowe procesy:

  • Test Planning – planowanie zakresu i harmonogramu testów.

  • Test Monitoring & Control – śledzenie postępu testowania i podejmowanie decyzji.

  • Test Design & Implementation – projektowanie przypadków testowych i przygotowanie środowiska testowego.

  • Test Execution – wykonywanie testów i rejestrowanie wyników.

  • Test Completion – przegląd rezultatów, raport końcowy, retrospektywa.

Wskazuje również role odpowiedzialne za poszczególne procesy i zasady ich dokumentowania.

ISO/IEC/IEEE 29119-3 – Dokumentacja testowa

Zawiera szczegółowe szablony i wymagania dla dokumentów testerskich. Umożliwia jednolite prowadzenie dokumentacji w różnych projektach i zespołach.

Typowe dokumenty:

  • Test Plan – plan testowania: zakres, strategia, harmonogram, zasoby, ryzyka.

  • Test Design Specification – opis projektowania testów.

  • Test Case Specification – szczegóły przypadków testowych (kroki, dane wejściowe, oczekiwane wyniki).

  • Test Execution Log – rejestr wykonanych testów.

  • Test Incident Report – zgłoszenia błędów i defektów.

  • Test Summary Report – raport podsumowujący cały proces testowania.

Dokumenty te ułatwiają audytowalność, zgodność z wymaganiami regulacyjnymi (np. RODO, FDA) i usprawniają zarządzanie wiedzą testerską.

ISO/IEC/IEEE 29119-4 – Techniki testowe 


Opisuje różne techniki testowania, które mogą być stosowane na różnych poziomach testów: jednostkowych, integracyjnych, systemowych i akceptacyjnych. Wyróżniane techniki to m.in.:

  • Podział na klasy równoważności (Equivalence Partitioning) – dzielenie danych wejściowych na grupy, które powinny być traktowane jednakowo.

  • Analiza wartości brzegowych (Boundary Value Analysis) – testowanie granicznych wartości danych wejściowych.

  • Tablica decyzyjna (Decision Table Testing) – testowanie logicznych kombinacji warunków.

  • Grafy przepływu sterowania (Control Flow Testing) – analiza przepływu sterowania w kodzie źródłowym.

  • State Transition Testing – testowanie zmian stanów systemu.


ISO/IEC/IEEE 29119-5 – Testowanie opartych na ryzyku

Koncentruje się na podejściu Risk-Based Testing (RBT), czyli testowaniu skoncentrowanym na ryzykach, które mogą najbardziej zaszkodzić systemowi lub firmie.

Główne kroki:

  • Identyfikacja ryzyk (np. przez analizę SWOT, oceny krytyczności funkcji).

  • Ocena ryzyka – analiza prawdopodobieństwa i wpływu potencjalnych błędów.

  • Priorytetyzacja testów – zasoby są kierowane na funkcje najbardziej podatne na awarie.

  • Monitorowanie i aktualizacja – zmieniające się ryzyka są ciągle oceniane.

RBT wspiera efektywne wykorzystanie czasu i zasobów testowych, minimalizując ryzyko wdrożenia wadliwego produktu.

1.5.2 ISTQB (International Software Testing Qualifications Board)

Choć nie jest normą ISO, ISTQB jest najpowszechniej stosowanym standardem wiedzy i certyfikacji w dziedzinie testowania.

  • Dostarcza słownika pojęć (glossary of terms), który standaryzuje terminologię w testowaniu.

  • Strukturyzuje wiedzę w ścieżkach certyfikacyjnych: Foundation Level, Advanced Level, Specialist i Expert.

  • Zawiera informacje na temat metod testowania, raportowania defektów, automatyzacji, testów niefunkcjonalnych i zarządzania testami.

Zastosowanie: Często wykorzystywany w rekrutacjach i szkoleniach w firmach IT; podstawowe odniesienie w materiałach edukacyjnych.

1.5.3 ISO/IEC 25010 – Model jakości oprogramowania

Norma ta definiuje model jakości oprogramowania, który wykorzystywany jest w testach niefunkcjonalnych.

Składa się z 8 głównych cech jakości:

  • Funkcjonalność

  • Wydajność

  • Kompatybilność

  • Użyteczność

  • Niezawodność

  • Bezpieczeństwo

  • Utrzymywalność

  • Przenaszalność

Zastosowanie: Pomaga w tworzeniu kryteriów testowych dla testów jakościowych, np. testów wydajnościowych lub bezpieczeństwa.

1.5.4 OWASP (Open Worldwide Application Security Project)

Organizacja non-profit tworząca standardy testów bezpieczeństwa:

  • OWASP Top 10 – lista najważniejszych zagrożeń bezpieczeństwa aplikacji webowych (np. XSS, SQL Injection).

  • OWASP Testing Guide – szczegółowy przewodnik po technikach testowania bezpieczeństwa.

Zastosowanie: Niezbędny punkt odniesienia przy projektowaniu testów bezpieczeństwa w aplikacjach webowych.

1.5.5 ISO/IEC 12207 – Procesy cyklu życia oprogramowania

Ta norma opisuje wszystkie procesy związane z tworzeniem i utrzymaniem oprogramowania – w tym testowanie jako jeden z procesów weryfikacji i walidacji.

Zastosowanie: Wspiera zarządzanie jakością w projektach informatycznych, zwłaszcza w sektorze publicznym lub podlegającym audytom.