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/Norma | Zakres | Zastosowanie |
|---|---|---|
| ISO/IEC/IEEE 29119 | Kompletny proces testowania | Standaryzacja dokumentacji i procesów |
| ISTQB | Wiedza i certyfikacja testerów | Edukacja, rekrutacja |
| ISO/IEC 25010 | Model jakości oprogramowania | Testy niefunkcjonalne |
| OWASP | Bezpieczeństwo aplikacji | Testy bezpieczeństwa |
| ISO/IEC 12207 | Procesy cyklu życia oprogramowania | Ogó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 testowaniaOkreś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 testowaZawiera 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 testoweOpisuje 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.