Testy eksploracyjne to podejście, w którym tester jednocześnie projektuje, wykonuje i ocenia testy, ucząc się przy tym testowanego produktu. Nie zastępują testów skryptowych ani automatyzacji, tylko uzupełniają je tam, gdzie specyfikacja jest niepełna, czas jest krótki albo trzeba znaleźć błędy, których nikt wcześniej nie przewidział w scenariuszu.
Na skróty
Czego dowiesz się z artykułu:
- Jak sylabus ISTQB definiuje testy eksploracyjne
- Jak uporządkować je sesjami, kartami testów i debriefingiem
- Kiedy skrypt testowy nie wystarcza, a kiedy lepszy jest test zautomatyzowany
- Kto w zespole odpowiada za planowanie i wykonanie testów eksploracyjnych
Dla kogo jest ten artykuł:
- Testerzy i inżynierowie QA
- Kierownicy testów i liderzy zespołów wytwórczych
- Właściciele produktu, którzy odbierają wyniki testów
Czas czytania: 7 minut
Czym są testy eksploracyjne według ISTQB
Sylabus ISTQB Certified Tester Foundation Level, dostępny na www.istqb.org w wersji v4.0.1 (errata do wersji v4.0), zalicza testy eksploracyjne do technik opartych na doświadczeniu, obok zgadywania błędów (error guessing) i testowania w oparciu o listy kontrolne. Definicja jest krótka: testy są równocześnie projektowane, wykonywane i oceniane, a tester w tym czasie poznaje obiekt testów. Celem jest lepsze zrozumienie produktu, głębsze sprawdzenie wybranych obszarów i przygotowanie testów dla miejsc, których nikt jeszcze nie przetestował.
Testy eksploracyjne nie są więc „klikaniem bez planu”. Tester ma cel i decyduje na bieżąco, co sprawdzić dalej, na podstawie tego, co właśnie zobaczył. Sylabus zaznacza też, że w trakcie eksploracji można korzystać z technik formalnych, na przykład podziału na klasy równoważności.
Kiedy skrypt testowy nie wystarczy
Skrypt testowy sprawdza to, co ktoś przewidział w chwili jego pisania. Sylabus ISTQB wskazuje trzy sytuacje, w których eksploracja daje więcej:
- Niepełna albo słaba specyfikacja — nie ma z czego wyprowadzić kompletnych przypadków testowych.
- Silna presja czasu — przygotowanie pełnego zestawu skryptów zajęłoby więcej czasu, niż zostało do wydania.
- Uzupełnienie bardziej formalnych technik testowania — eksploracja dokłada to, czego techniki formalne nie obejmują.
Poza sylabusem, w praktyce skrypty pokrywają wymagania, a eksploracja szuka błędów między nimi.
Sylabus dodaje, że w projektach zwinnych większość testów manualnych prowadzi się technikami opartymi na doświadczeniu, a regresję zabezpiecza się rozbudowaną automatyzacją. To dobry podział pracy: test zautomatyzowany pilnuje, żeby nie zepsuć tego, co już działało, a tester eksplorujący szuka tego, czego nikt nie przewidział.
Ten sam podział widać w kwadrantach testowania Briana Maricka, opisanych w sylabusie na www.istqb.org. Kwadrant Q3 (testy zorientowane na biznes, oceniające produkt) obejmuje testy eksploracyjne, testy użyteczności i testy akceptacyjne użytkownika, często manualne. Kwadrant Q1, z testami modułowymi i testami integracji modułów, powinien być zautomatyzowany i włączony do procesu CI.
Jak uporządkować eksplorację: testy sesyjne
Żeby testy eksploracyjne dało się planować i rozliczać, sylabus opisuje podejście sesyjne (session-based testing):
- Ramy czasowe (time box) — eksploracja odbywa się w z góry określonym czasie.
- Karta testu (test charter) — krótki dokument z celami testów, który prowadzi testera. Cele traktuje się jak warunki testowe wysokiego poziomu.
- Arkusz sesji (test session sheet) — tester zapisuje kroki i odkrycia.
- Debriefing — po sesji tester omawia wyniki z osobami zainteresowanymi wynikami testów.
Z doświadczenia autora: dobra karta testu mówi, co zbadać, z jakimi danymi i jakiego ryzyka szukać, ale nie dyktuje kroków. Przykład: „Zbadaj import pliku z zamówieniami z nietypowym kodowaniem znaków i bardzo długimi nazwami produktów, szukając utraty danych”. Taka karta zostawia testerowi swobodę, a po debriefingu wiadomo, co sprawdzono i co zostało do zrobienia.
Kto odpowiada za testy eksploracyjne
Sylabus ISTQB (www.istqb.org) wyróżnia dwie główne role w testowaniu. Rola zarządzania testami (test management role) odpowiada za planowanie, monitorowanie, nadzór i zakończenie testów — w testach eksploracyjnych to wybór obszarów i ryzyk, przydział kart i czasu oraz zbieranie wniosków z debriefingów. Rola testowania (testing role) odpowiada za analizę, projektowanie, implementację i wykonanie testów, czyli za samą sesję. W zespole zwinnym część zadań zarządczych przejmuje zespół, a w praktyce autora w debriefingu przydaje się właściciel produktu albo analityk, bo to oni decydują, co zrobić z odkryciami.
Sylabus podkreśla, że skuteczność testów eksploracyjnych zależy od testera: jego doświadczenia, wiedzy dziedzinowej i umiejętności, takich jak myślenie analityczne, ciekawość i kreatywność. Warto więc łączyć w parach testerów doświadczonych z nowymi i dawać im czas na poznanie domeny biznesowej.
Czytaj także
- Strategia testowania w projekcie zwinnym — miejsce testów w iteracjach
- Testowanie API — narzędzia i dobre praktyki — co automatyzować na poziomie interfejsów
- Testy kontraktowe w architekturze mikroserwisów — kontrola zgodności usług
Rozwijaj kompetencje
Temat rozwijają szkolenia Skuteczne projektowanie przypadków testowych oraz Przegląd zwinnego testowania oprogramowania. Pierwsze obejmuje techniki projektowania testów razem z testami eksploracyjnymi, drugie testowanie w projektach zwinnych, w tym techniki testów eksploracyjnych. Skontaktuj się z nami, żeby dopasować zakres do swojego zespołu.
Najczęściej zadawane pytania (FAQ)
Jakie są rodzaje testów oprogramowania?
Sylabus ISTQB dzieli techniki testowania na czarnoskrzynkowe (oparte na specyfikacji), białoskrzynkowe (oparte na strukturze kodu) i oparte na doświadczeniu. Do tych ostatnich należą zgadywanie błędów, testy eksploracyjne i testy w oparciu o listy kontrolne. Niezależnie od tego testy dzieli się na poziomy, od testów modułowych po akceptacyjne, oraz na typy, na przykład funkcjonalne i niefunkcjonalne.
Czym jest ISTQB i co mówi o testach eksploracyjnych?
ISTQB to międzynarodowa organizacja, która publikuje sylabusy i certyfikację testerów. Jej sylabus Foundation Level opisuje testy eksploracyjne jako technikę opartą na doświadczeniu, prowadzoną czasem w formie sesji z kartą testu i debriefingiem, przydatną przy słabej specyfikacji i presji czasu.
Czy automatyzacja testów zastępuje testy eksploracyjne?
Nie. Automatyzacja dobrze sprawdza to, co da się opisać z góry, zwłaszcza regresję. Testy eksploracyjne szukają błędów, których nikt nie przewidział, i oceniają produkt z perspektywy użytkownika. W modelu kwadrantów testowania obie grupy mają osobne miejsce i się uzupełniają.
Czym są testy manualne i czy testy eksploracyjne się do nich zaliczają?
Testy manualne wykonuje człowiek, a nie narzędzie. Mogą być skryptowe, gdy tester przechodzi przygotowane kroki, albo eksploracyjne, gdy sam decyduje o kolejnych krokach na podstawie tego, co obserwuje. Testy eksploracyjne są więc jedną z form testów manualnych, a narzędzia mogą je wspierać, na przykład przy nagrywaniu sesji i zgłaszaniu błędów.