Lekcja 1.7: Testware (Produkty Pracy Testowej)

Podczas całego procesu testowego, który omówiliśmy w lekcji 1.5, tworzone są różnorodne dokumenty, skrypty, dane i inne artefakty.

Te wyniki pracy, specyficzne dla działań testowych, określane są zbiorczym terminem testware.

Zrozumienie, czym jest testware i jakie są jego główne kategorie, jest fundamentalne dla efektywnego zarządzania procesem testowym, komunikacji w zespole oraz zapewnienia powtarzalności i audytowalności testów.

W tej lekcji przyjrzymy się bliżej definicji testware oraz jego kluczowym elementom zgodnie z sylabusem ISTQB.

Testware to nie tylko przypadki testowe czy raporty o błędach.

To cały ekosystem produktów pracy, które powstają na różnych etapach procesu testowego – od planowania, przez analizę, projektowanie, implementację, aż po wykonanie i zakończenie testów.

Każdy z tych produktów ma swoje specyficzne przeznaczenie i przyczynia się do osiągnięcia celów testowania.

Zarządzanie tymi artefaktami, w tym ich wersjonowanie i utrzymanie spójności, jest kluczowym elementem dojrzałego procesu testowego, często wspieranym przez narzędzia do zarządzania konfiguracją.

Definicja Testware

Według definicji ISTQB, testware to produkty pracy (work products) wytworzone podczas procesu testowego, wykorzystywane do planowania, projektowania, wykonywania, oceny i raportowania testów.

Obejmuje to artefakty takie jak plany testów, przypadki testowe, skrypty testowe, dane testowe, wyniki testów, raporty testowe, a także środowiska testowe i narzędzia.

Ważne jest, aby odróżnić testware od podstawy testów (test basis).

Podstawa testów to dokumentacja lub artefakty, na podstawie których definiowane są wymagania i projektowane testy (np. specyfikacje wymagań, historyjki użytkownika, kod źródłowy).

Testware jest natomiast wynikiem pracy zespołu testowego, stworzonym w oparciu o podstawę testów w celu przeprowadzenia i udokumentowania procesu testowego.

Kategorie Produktów Pracy Testowej (Testware)

Sylabus ISTQB Foundation Level v4.0.1 grupuje testware według głównych czynności procesu testowego, podczas których te produkty pracy powstają lub są wykorzystywane.

Należy jednak pamiętać, że lista ta nie jest wyczerpująca, a konkretne artefakty i ich forma mogą się różnić w zależności od organizacji, projektu i stosowanych metodyk.

1. Produkty Pracy Związane z Planowaniem Testów (Test Planning Work Products)

Te artefakty powstają na etapie definiowania strategii i planowania działań testowych.

Służą jako mapa drogowa dla całego procesu testowego.

Główne przykłady to:

  • Plan Testów (Test Plan): Kluczowy dokument opisujący cele, zakres, podejście, harmonogram, zasoby, kryteria wejścia i wyjścia oraz ryzyka związane z testowaniem. (Szczegółowo omówiony w Rozdziale 5.1).
  • Harmonogram Testów (Test Schedule): Określa ramy czasowe dla poszczególnych działań testowych.
  • Rejestr Ryzyka (Risk Register): Lista zidentyfikowanych ryzyk związanych z produktem lub projektem, wraz z ich prawdopodobieństwem, wpływem i planami mitygacji. Często zawiera ryzyka, które mają być adresowane przez testowanie. (Szczegółowo omówiony w Rozdziale 5.2).
  • Kryteria Wejścia i Wyjścia (Entry and Exit Criteria): Zdefiniowane warunki, które muszą być spełnione, aby rozpocząć (wejścia) lub zakończyć (wyjścia) dany poziom lub etap testów. Często są częścią Planu Testów.
  • Informacje o Łagodzeniu Ryzyka (Information about Risk Mitigation): Dokumentacja opisująca, w jaki sposób testowanie przyczyni się do zmniejszenia zidentyfikowanych ryzyk.

Produkty pracy związane z planowaniem stanowią fundament dla wszystkich dalszych działań testowych, zapewniając ich spójność z celami projektu i zarządzanie ryzykiem.

2. Produkty Pracy Związane z Monitorowaniem i Sterowaniem Testami (Test Monitoring and Test Control Work Products)

Te artefakty służą do śledzenia postępów, oceny jakości i podejmowania decyzji dotyczących procesu testowego.

Powstają i są aktualizowane przez cały czas trwania testów.

Przykłady obejmują:

  • Raporty o Postępach Testów (Test Progress Reports): Regularne raporty informujące interesariuszy o statusie wykonania testów, pokryciu, znalezionych defektach i ewentualnych problemach lub opóźnieniach w stosunku do planu. (Szczegółowo omówione w Rozdziale 5.3).
  • Dokumentacja Dyrektyw Sterujących (Documentation of Control Directives): Zapis decyzji podjętych w ramach sterowania testami, np. zmiany priorytetów, alokacji zasobów, modyfikacji harmonogramu.
  • Informacje o Ryzykach (Information about Risks): Aktualizowane informacje na temat statusu ryzyk, w tym tych nowo zidentyfikowanych lub tych, których poziom się zmienił w wyniku działań testowych. (Szczegółowo omówione w Rozdziale 5.2).

Te produkty pracy są kluczowe dla zapewnienia przejrzystości procesu testowego i umożliwienia podejmowania świadomych decyzji zarządczych.

3. Produkty Pracy Związane z Analizą Testów (Test Analysis Work Products)

Powstają podczas analizy podstawy testów i definiowania "co" ma być testowane.

Główne przykłady to:

  • Warunki Testowe (Test Conditions): Zidentyfikowane elementy lub zdarzenia, które mają być zweryfikowane (np. "sprawdź logowanie z poprawnym hasłem"). Mogą być udokumentowane na różnym poziomie szczegółowości.
  • Informacje o Defektach w Podstawie Testów (Information about Defects in the Test Basis): Zgłoszenia błędów, niejasności lub niespójności znalezionych w dokumentacji stanowiącej podstawę testów (np. w wymaganiach).

Wyniki analizy stanowią wejście do etapu projektowania testów.

4. Produkty Pracy Związane z Projektowaniem Testów (Test Design Work Products)

Powstają podczas przekształcania warunków testowych w konkretne sposoby testowania ("jak" testować).

Przykłady obejmują:

  • Przypadki Testowe (Test Cases): Zestawy warunków wstępnych, danych wejściowych, kroków i oczekiwanych rezultatów, zaprojektowane do weryfikacji konkretnego warunku testowego.
  • Karty Testów (Test Charters): Stosowane w testowaniu eksploracyjnym, definiują misję lub cel sesji testowej, ale nie precyzują kroków.
  • Specyfikacje Danych Testowych (Test Data Specifications): Opis danych potrzebnych do wykonania przypadków testowych.
  • Specyfikacje Środowiska Testowego (Test Environment Specifications): Opis wymaganego sprzętu, oprogramowania, konfiguracji sieci itp.

Te artefakty definiują, w jaki sposób zostaną przeprowadzone testy.

5. Produkty Pracy Związane z Implementacją Testów (Test Implementation Work Products)

Powstają podczas przygotowywania wszystkiego, co jest potrzebne do faktycznego wykonania testów.

Przykłady obejmują:

  • Procedury Testowe / Skrypty Testowe (Test Procedures / Test Scripts): Szczegółowe instrukcje krok po kroku dotyczące wykonania jednego lub więcej przypadków testowych, w tym skrypty automatyzacji.
  • Zestawy Testów (Test Suites): Zgrupowane procedury lub skrypty testowe, często według określonego kryterium (np. testy regresji, testy danej funkcjonalności).
  • Harmonogram Wykonania Testów (Test Execution Schedule): Plan określający kolejność i czas wykonania zestawów testów.
  • Przygotowane Dane Testowe (Prepared Test Data): Konkretne dane gotowe do użycia w testach.
  • Skonfigurowane Środowisko Testowe (Configured Test Environment): Gotowe do użycia środowisko wraz z narzędziami.

Wynikiem implementacji jest gotowość do rozpoczęcia wykonywania testów.

6. Produkty Pracy Związane z Wykonaniem Testów (Test Execution Work Products)

Powstają podczas i w wyniku uruchamiania testów.

Przykłady obejmują:

  • Logi Testów (Test Logs): Zapis przebiegu wykonania testów, zawierający informacje o wykonanych krokach, rzeczywistych wynikach i statusie (zaliczony, niezaliczony, zablokowany).
  • Raporty o Defektach (Defect Reports): Szczegółowe opisy zaobserwowanych awarii, które zostały zidentyfikowane jako defekty w oprogramowaniu. (Szczegółowo omówione w Rozdziale 5.5).
  • Dokumentacja Wyników Testów (Documentation of Test Results): Podsumowanie wyników wykonania dla poszczególnych przypadków lub zestawów testów.

Te produkty dostarczają dowodów na wykonanie testów i informacje o jakości testowanego obiektu.

7. Produkty Pracy Związane z Zakończeniem Testów (Test Completion Work Products)

Powstają na etapie podsumowania i archiwizacji działań testowych.

Przykłady obejmują:

  • Raport Podsumowujący Testy (Test Summary Report): Dokument podsumowujący cały proces testowy, jego wyniki, ocenę jakości i wnioski dla interesariuszy. (Szczegółowo omówiony w Rozdziale 5.3).
  • Elementy Robocze Dotyczące Działań Doskonalących (Action Items for Improvement): Zidentyfikowane działania mające na celu usprawnienie procesu testowego w przyszłości.
  • Sfinalizowane Testware (Finalized Testware): Zarchiwizowane plany, przypadki, skrypty, dane, środowiska itp., gotowe do ewentualnego ponownego użycia (np. w testach regresji, w fazie utrzymania).

Zakończenie testów formalnie zamyka cykl testowy i dostarcza cennych informacji zwrotnych.

Znaczenie Testware

Produkty pracy testowej (testware) są niezbędne do:

  • Planowania i zarządzania: Umożliwiają określenie zakresu, harmonogramu i zasobów.
  • Komunikacji: Służą do informowania interesariuszy o postępach i wynikach.
  • Powtarzalności: Pozwalają na wielokrotne wykonywanie tych samych testów (np. regresji).
  • Audytowalności: Stanowią dowód przeprowadzenia testów i ich wyników.
  • Transferu wiedzy: Ułatwiają przekazywanie informacji o testach nowym członkom zespołu lub zespołom utrzymania.
  • Doskonalenia procesu: Analiza testware pozwala na identyfikację obszarów do usprawnienia.

Efektywne tworzenie, zarządzanie i wykorzystanie testware jest kluczowym elementem profesjonalnego podejścia do testowania oprogramowania.

Najczęściej Zadawane Pytania (FAQ)

Czy kod źródłowy to testware?
Nie, kod źródłowy jest zazwyczaj częścią podstawy testów (test basis), zwłaszcza dla testów jednostkowych lub białoskrzynkowych. Testware to produkty tworzone przez testerów na podstawie kodu lub innych elementów podstawy testów, np. skrypty testów jednostkowych.
Czy narzędzia do testowania to testware?
Sama definicja ISTQB wspomina o narzędziach jako części testware. Jednak częściej rozumie się testware jako artefakty stworzone *za pomocą* narzędzi (np. skrypty automatyczne) lub konfigurację tych narzędzi dla konkretnego projektu, a nie same narzędzia jako oprogramowanie.
Czy wszystkie wymienione produkty pracy są zawsze tworzone?
Niekoniecznie. Zgodnie z zasadą kontekstu, poziom formalności i zakres tworzonego testware zależą od projektu, organizacji, wymagań regulacyjnych i stosowanej metodyki. W projektach zwinnych dokumentacja może być lżejsza niż w projektach kaskadowych dla systemów krytycznych.
Jaka jest różnica między przypadkiem testowym a procedurą testową?
Przypadek testowy (wynik projektowania) opisuje *co* ma być przetestowane (warunki wstępne, wejścia, kroki, oczekiwane wyniki). Procedura testowa (wynik implementacji) opisuje *jak* dokładnie wykonać przypadek testowy, krok po kroku, często w formie skryptu (manualnego lub automatycznego).
Czy dane testowe to zawsze osobny dokument?
Nie zawsze. Dane testowe mogą być opisane w specyfikacji danych testowych, zdefiniowane bezpośrednio w przypadkach lub procedurach testowych, przechowywane w osobnych plikach (np. CSV, Excel) lub generowane dynamicznie przez skrypty. Forma zależy od potrzeb i kontekstu.
Kto jest właścicielem testware?
Zazwyczaj właścicielem testware jest organizacja lub zespół projektowy. Ważne jest, aby testware było zarządzane (np. wersjonowane, przechowywane w repozytorium) i dostępne dla odpowiednich osób, a także utrzymywane w miarę rozwoju oprogramowania.
Czy testware jest używane po zakończeniu projektu?
Tak, często. Zarchiwizowane testware, zwłaszcza przypadki i skrypty testów regresji, dane testowe i konfiguracja środowiska, mogą być bardzo cenne w fazie utrzymania oprogramowania lub podczas pracy nad kolejnymi wersjami produktu.
Jak zarządzać zmianami w testware?
Podobnie jak kod źródłowy, testware powinno podlegać zarządzaniu konfiguracją. Oznacza to wersjonowanie, kontrolę zmian, śledzenie powiązań (traceability) z podstawą testów i defektami. Narzędzia do zarządzania testami często wspierają te procesy.
Czy raport o defektach to zawsze część testware?
Tak, raporty o defektach są kluczowym produktem pracy powstającym podczas wykonania testów i są uznawane za część testware. Dokumentują one niezgodności znalezione podczas testowania.
Czy metryki testowe to testware?
Same metryki (np. liczba wykonanych testów, gęstość defektów) są danymi. Jednak raporty zawierające te metryki (np. Raport o Postępach Testów, Raport Podsumowujący Testy) są uznawane za testware, ponieważ są produktami pracy procesu testowego służącymi do oceny i raportowania.
Gdzie przechowuje się testware?
Testware powinno być przechowywane w sposób zorganizowany i bezpieczny. Często wykorzystuje się do tego systemy kontroli wersji (jak Git, SVN), narzędzia do zarządzania testami (np. Jira z pluginami, TestRail, Zephyr) lub dedykowane repozytoria dokumentacji.
Czy testware tworzą tylko testerzy?
Głównie tak, ale nie wyłącznie. W podejściach zwinnych lub DevOps, programiści mogą tworzyć testy jednostkowe lub komponentowe (które są formą testware). Analitycy biznesowi mogą współtworzyć kryteria akceptacji, które stają się podstawą dla przypadków testowych.
Czy dokumentacja użytkownika to testware?
Dokumentacja użytkownika jest zazwyczaj częścią produktu lub podstawą testów (np. do weryfikacji jej poprawności). Nie jest tworzona w ramach procesu testowego, więc nie klasyfikuje się jej jako testware.
Jak zapewnić jakość samego testware?
Jakość testware jest ważna. Można ją zapewnić poprzez przeglądy (np. przegląd planu testów, przypadków testowych), stosowanie standardów i szablonów, automatyzację (np. testowanie skryptów automatycznych) oraz dbanie o aktualność i spójność artefaktów.
Czy środowisko testowe to testware?
Tak, specyfikacja środowiska testowego oraz samo skonfigurowane środowisko (wraz ze skryptami do jego budowy/konfiguracji) są uznawane za część testware, ponieważ są niezbędne do wykonania testów i tworzone w ramach procesu testowego.

Przykładowe Pytania Egzaminacyjne

Pytanie 1 (K1): Który z poniższych elementów jest przykładem testware?

  • a) Specyfikacja wymagań biznesowych
  • b) Przypadek testowy
  • c) Kod źródłowy aplikacji
  • d) Historyjka użytkownika

Poprawna odpowiedź: b (Przypadek testowy jest produktem pracy stworzonym podczas procesu testowego. Pozostałe opcje to przykłady podstawy testów lub samego produktu.)

Pytanie 2 (K1): Jakim terminem określa się produkty pracy wytworzone podczas procesu testowego, wykorzystywane do planowania, projektowania, wykonywania, oceny i raportowania testów?

  • a) Podstawa testów (Test Basis)
  • b) Testware
  • c) Obiekt testowy (Test Object)
  • d) Środowisko testowe (Test Environment)

Poprawna odpowiedź: b (Testware to zbiorczy termin na produkty pracy procesu testowego.)

Pytanie 3 (K2): Który z poniższych produktów pracy jest typowo tworzony podczas etapu implementacji testów?

  • a) Plan Testów
  • b) Warunki Testowe
  • c) Procedura Testowa (Skrypt Testowy)
  • d) Raport Podsumowujący Testy

Poprawna odpowiedź: c (Procedury/skrypty testowe, zestawy testów, przygotowanie danych i środowiska to główne zadania implementacji testów.)