W poprzednich lekcjach zdefiniowaliśmy podstawę testów (źródło wymagań) oraz testware (produkty pracy testowej).
Teraz zgłębimy niezwykle istotny koncept, który łączy te dwa światy: identyfikowalność (traceability).
Ustanowienie i utrzymanie powiązań między elementami podstawy testów a różnymi artefaktami testware jest kluczowe dla efektywnego monitorowania, sterowania i oceny procesu testowego.
W tej lekcji wyjaśnimy, czym jest identyfikowalność w kontekście ISTQB, dlaczego jest ważna i jakie korzyści przynosi.
Wyobraźmy sobie skomplikowany projekt z setkami wymagań, tysiącami przypadków testowych i dziesiątkami zgłoszonych defektów.
Bez mechanizmu śledzenia powiązań między tymi elementami, łatwo stracić kontrolę.
Skąd wiemy, które wymagania zostały już pokryte testami?
Jak ocenić wpływ zmiany w wymaganiu na istniejące przypadki testowe?
Które testy należy powtórzyć po naprawieniu konkretnego defektu?
Odpowiedzi na te pytania dostarcza właśnie identyfikowalność, tworząc swoistą mapę powiązań w całym procesie testowym.
Definicja Identyfikowalności (Traceability)
Według ISTQB, identyfikowalność to zdolność do zidentyfikowania powiązanych ze sobą elementów w dokumentacji i oprogramowaniu.
W kontekście testowania, oznacza to możliwość śledzenia powiązań w obu kierunkach (dwukierunkowa identyfikowalność) między różnymi artefaktami powstającymi w procesie tworzenia i testowania oprogramowania.
Kluczowe powiązania, które należy ustanowić i utrzymywać, obejmują relacje między:
- Elementami podstawy testów (np. wymaganiami, historyjkami użytkownika, kryteriami akceptacji, elementami ryzyka)
- Warunkami testowymi (zdefiniowanymi podczas analizy testów)
- Przypadkami testowymi (zaprojektowanymi do weryfikacji warunków testowych)
- Procedurami testowymi / Skryptami testowymi (implementacją przypadków testowych)
- Zestawami testów (grupami procedur/skryptów)
- Wynikami testów (logami wykonania, statusami zaliczony/niezaliczony)
- Defektami (zgłoszonymi na podstawie niezaliczonych testów)
Utrzymanie tych powiązań pozwala na pełne zrozumienie zależności i przepływu informacji w procesie testowym.
Dlaczego Identyfikowalność jest Ważna? Korzyści
Implementacja efektywnego monitorowania i sterowania testami wymaga ustanowienia i utrzymania identyfikowalności.
Dokładna identyfikowalność przynosi szereg korzyści, które znacząco podnoszą jakość i efektywność procesu testowego:
1. Wsparcie Oceny Pokrycia (Supporting Coverage Evaluation)
Identyfikowalność jest niezbędna do oceny stopnia, w jakim podstawa testów została pokryta przez zaprojektowane i wykonane testy.
Dzięki powiązaniom między wymaganiami a przypadkami testowymi możemy łatwo sprawdzić:
- Które wymagania mają już zaprojektowane testy?
- Które wymagania nie zostały jeszcze pokryte żadnym testem (luki w pokryciu)?
- Jaki procent wymagań został pomyślnie przetestowany?
Dokładne informacje o pokryciu są kluczowym wskaźnikiem postępu testów i gotowości produktu do wydania.
Pozwalają podejmować świadome decyzje dotyczące zakończenia testów (np. na podstawie osiągnięcia zdefiniowanych kryteriów pokrycia).
2. Umożliwienie Oceny Wpływu Zmian (Enabling Impact Analysis of Changes)
Wymagania i inne elementy podstawy testów często ulegają zmianom w trakcie projektu.
Identyfikowalność pozwala szybko i precyzyjnie ocenić, które elementy testware (warunki testowe, przypadki, skrypty) są powiązane ze zmienionym elementem podstawy testów.
Dzięki temu wiemy:
- Które testy należy zmodyfikować lub usunąć?
- Które nowe testy należy stworzyć?
- Jaki jest potencjalny wpływ zmiany na inne części systemu (analiza ryzyka regresji)?
Bez identyfikowalności analiza wpływu zmian jest czasochłonna, podatna na błędy i może prowadzić do pominięcia koniecznych aktualizacji w testware.
3. Ułatwienie Audytów (Facilitating Audits)
W wielu branżach (np. medycznej, finansowej, lotniczej) proces tworzenia i testowania oprogramowania podlega audytom wewnętrznym lub zewnętrznym.
Identyfikowalność dostarcza jasnych dowodów na to, że:
- Wszystkie wymagania zostały uwzględnione w procesie testowym.
- Testy zostały zaprojektowane i wykonane zgodnie z planem i standardami.
- Zidentyfikowane defekty zostały odpowiednio zaraportowane i obsłużone.
Dobra identyfikowalność znacząco ułatwia proces audytu i wykazanie zgodności z obowiązującymi normami i regulacjami.
4. Spełnienie Kryteriów Ładu Informatycznego (Meeting IT Governance Criteria)
Wiele organizacji wdraża ramy ładu korporacyjnego lub informatycznego (np. COBIT, ITIL), które często wymagają możliwości śledzenia procesów i wyników.
Identyfikowalność w testowaniu wpisuje się w te wymagania, zapewniając przejrzystość i kontrolę nad kluczowym aspektem zapewnienia jakości.
5. Poprawa Zrozumienia Statusu Testów (Improving Understanding of Test Status)
Dzięki identyfikowalności raporty o postępach testów stają się bardziej wartościowe.
Zamiast podawać tylko ogólną liczbę wykonanych testów, można precyzyjnie określić status testowania dla poszczególnych wymagań, funkcji czy obszarów ryzyka.
Pozwala to interesariuszom lepiej zrozumieć rzeczywisty stan jakości produktu.
6. Wsparcie dla Utrzymania Testware (Supporting Testware Maintenance)
Gdy testware (np. przypadki testowe, skrypty) wymaga aktualizacji z powodu zmian w systemie lub w podstawie testów, identyfikowalność pomaga zlokalizować wszystkie powiązane artefakty, które również mogą wymagać modyfikacji.
Ułatwia to utrzymanie spójności i aktualności całego zestawu testware.
Jak Osiągnąć Identyfikowalność?
Ustanowienie i utrzymanie identyfikowalności wymaga systematycznego podejścia i często wsparcia narzędziowego.
Kluczowe kroki obejmują:
- Unikalna identyfikacja: Wszystkie elementy podstawy testów i testware powinny mieć unikalne identyfikatory.
- Definiowanie relacji: Należy jasno zdefiniować, jakie typy powiązań mają być śledzone (np. "pokrywa", "weryfikuje", "jest zaimplementowany przez", "zgłasza defekt").
- Rejestrowanie powiązań: Powiązania muszą być systematycznie rejestrowane podczas tworzenia i modyfikowania artefaktów. Może to być realizowane za pomocą:
- Macierzy identyfikowalności (Traceability Matrix): Tabela pokazująca relacje między dwoma typami artefaktów (np. wymagania vs. przypadki testowe).
- Narzędzi do zarządzania wymaganiami (Requirements Management Tools): Często oferują funkcje śledzenia powiązań z innymi artefaktami.
- Narzędzi do zarządzania testami (Test Management Tools): Dedykowane narzędzia (np. Jira z pluginami, TestRail, Zephyr) zazwyczaj posiadają wbudowane mechanizmy do tworzenia i wizualizacji powiązań między wymaganiami, testami, wykonaniami i defektami.
- Systemów kontroli wersji: Komentarze w commitach lub specjalne tagi mogą być używane do wskazywania powiązań.
- Utrzymanie powiązań: Powiązania muszą być aktualizowane za każdym razem, gdy zmieniają się powiązane artefakty.
Wybór metody zależy od skali projektu, poziomu formalności i dostępnych narzędzi.
Nawet w prostszych projektach, utrzymanie choćby podstawowej identyfikowalności (np. powiązanie przypadków testowych z wymaganiami) przynosi znaczące korzyści.
Podsumowanie
Identyfikowalność to kluczowy element dojrzałego procesu testowego, polegający na śledzeniu powiązań między podstawą testów a produktami pracy testowej (testware).
Umożliwia ona efektywną ocenę pokrycia, analizę wpływu zmian, ułatwia audyty, wspiera ład informatyczny oraz poprawia zrozumienie statusu testów.
Osiągnięcie i utrzymanie identyfikowalności wymaga systematycznego podejścia i często wsparcia odpowiednich narzędzi.