Techniki eksploracyjne w testowaniu oprogramowania – kiedy i jak je stosować?

Opublikowano w 14 maja 2025 17:30
Techniki eksploracyjne w testowaniu oprogramowania – kiedy i jak je stosować?

🔍 Techniki eksploracyjne w testowaniu - co w tym trudnego? 🔍

Testowanie eksploracyjne to technika, która w pierwszym kontakcie może wydawać się bardzo prosta. Bo w zasadzie w czym problem? Siadamy i testujemy. Jest w tym trochę prawdy, ale niestety tylko trochę. Testowanie eksploracyjne właściwie zastosowane i wkomponowane w regularne testy to potężne narzędzie w rękach testerów. Jednak aby zrobić z niego dobry użytek należy je właściwie poznać.


🤔 Czym jest testowanie eksploracyjne? 🤔

Testowanie eksploracyjne to podejście, w którym testy wykonujemy bez wcześniejszego formalnego ich projektowania czy też szczegółowego planowania. Można powiedzieć że równocześnie uczymy się aplikacji, projektujemy testy oraz je wykonujemy. Zamiast predefiniowanych scenariuszy, tester samodzielnie podejmuje decyzje o dalszych krokach, reagując na obserwowane zachowania systemu. Oczywiście w ramach wykonywanych czynności testera w pewien sposób mogą ograniczać zakres funkcjonalności, czas na wykonanie czy też inne założenia związane z wykonaniem testów.


❓ Kiedy stosować testowanie eksploracyjne? ❓

Jak każde narzędzie testy eksploracyjne sprawdzają się w jednych sytuacjach lepiej w innych gorzej. Zanim je zastosujemy zastanówmy się kiedy przynoszą one największą wartość.

Testowanie eksploracyjne jest szczególnie wartościowe:

  • Gdy chcemy uzupełnić tradycyjne, zaplanowane testy o dodatkowe, bardziej kreatywne scenariusze: Testy eksploracyjne są doskonałym uzupełnieniem formalnych procedur testowych. Pozwalają one na znalezienie defektów, które są trudne do uchwycenia za pomocą standardowych scenariuszy testowych, dzięki kreatywnemu i nieszablonowemu podejściu testera. W tym kontekście jes to jedno z narzędzi do walki z paradoksem pestycydów. Ten rodzaj motywacji do zastosowania testów eksploracyjnych uważam za najistotniejszy i przynoszący największą wartość.
  • Gdy wymagania są niejasne lub szybko się zmieniają: W takich sytuacjach tradycyjne metody testowania mogą być niewystarczające lub niepraktyczne ze względu na częste zmiany. Eksploracja umożliwia szybkie dostosowywanie testów do aktualnych warunków, pomagając na bieżąco identyfikować nowe ryzyka i zmieniające się potrzeby użytkowników. Jednak należy pamietać że nie może to być furtka do akceptacji niskiej jakości wymagań.
  • Podczas testowania nowego produktu lub funkcjonalności, gdy dokumentacja jest ograniczona: Przy braku szczegółowej dokumentacji tester często musi polegać na własnym doświadczeniu i intuicji. Eksploracja pozwala na szybkie zrozumienie nowej aplikacji lub funkcjonalności poprzez aktywne i intuicyjne badanie, odkrywając ukryte defekty, których nie przewidziano w początkowych założeniach.
  • Przy ograniczonym czasie na testowanie – szybko pozwala na identyfikację krytycznych błędów: Kiedy czas jest istotnym ograniczeniem, testowanie eksploracyjne pozwala skupić się na najważniejszych i najbardziej ryzykownych obszarach aplikacji. Tester może szybko wykryć poważne problemy, które potencjalnie mogą mieć największy wpływ na użytkowników końcowych, minimalizując jednocześnie czas poświęcony na formalne scenariusze.

Warto też wspomnieć że techniki eksploracyjne mogą być zastosowane jako element tworzenia dokumentacji przez analityków na zasadzie inżynierii wstecznej. Jest to jednak odrębne zagadnienie.


✔ Najczęściej stosowane techniki eksploracyjne. ✔

Testy eksploracyjne mają również swoje podtypy, których znajomość może nam pomóc we właściwym ich zastosowaniu. Może nam to pomóc w zmaksymalizowaniu wartości płynących z tej techniki.

Do technik wykonywania testów eksploracyjnych zaliczymy:

  • Sesje eksploracyjne (Session-Based Testing): Sesje eksploracyjne trwają zazwyczaj od 60 do 90 minut. Przed sesją tester ustala cel sesji, na przykład określony obszar aplikacji lub funkcjonalność. Podczas sesji tester szczegółowo dokumentuje swoje działania, obserwacje i problemy w tzw. raportach sesji (Session Notes). Po sesji raporty są analizowane w celu identyfikacji obszarów wymagających dalszych testów lub poprawy.
  • Toury testowe (Test Tours): Toury testowe polegają na eksploracji aplikacji według określonej strategii, która ukierunkowuje działania testera. Przykłady popularnych strategii obejmują:
      Tour interfejsu użytkownika: Skupienie na elementach UI, takich jak przyciski, formularze czy nawigacja.
      Tour przypadków brzegowych: Badanie zachowań aplikacji w sytuacjach ekstremalnych, na granicy dopuszczalnych wartości lub nietypowych scenariuszy.
      Tour bezpieczeństwa: Ukierunkowanie na potencjalne luki bezpieczeństwa i podatności aplikacji na ataki.
  • Testowanie ad-hoc: Testowanie ad-hoc polega na spontanicznym i intuicyjnym wykonywaniu testów bez wcześniej opracowanego planu. Tester, wykorzystując swoją wiedzę o produkcie oraz intuicję, podejmuje szybkie decyzje dotyczące obszarów testowania i scenariuszy, które warto sprawdzić. Choć jest to podejście mniej ustrukturyzowane, często umożliwia znalezienie nietypowych błędów, których nie przewidziały formalne scenariusze testowe.

Każda strategia pomaga skoncentrować się na specyficznych aspektach, zapewniając bardziej szczegółową analizę wybranych obszarów.


📃 Jak dobrze przygotować się do wykonywania testów eksploracyjnych? 📃

Mimo iż testów eksploracyjnych nie planujemy, to nie znaczy że nie musimy przygotowac sie do ich wykonania. Skuteczność testów eksploacyjnych zależy bardzo mocno od przygotowania testera.

Aby efektywnie przeprowadzić testy eksploracyjne, tester powinien:

  • Zapoznać się z produktem: Przed rozpoczęciem testów, tester powinien przynajmniej ogólnie poznać aplikację lub funkcjonalność, jej cel oraz podstawowe działanie.
  • Ustalić cel sesji: Zdefiniowanie obszaru testowania, ryzyk lub problemów, które mają zostać zbadane, zwiększa efektywność sesji.
  • Przygotować narzędzia: Warto przygotować narzędzia wspierające dokumentację, np. notatnik, aplikacje do tworzenia map myśli, oprogramowanie do nagrywania ekranu.
  • Utworzyć checklisty: Krótkie listy kontrolne pomagają zapewnić, że najważniejsze obszary nie zostaną pominięte.
  • Zaplanować dokumentację: Zdecydować, jak będą dokumentowane wyniki, obserwacje i defekty, aby późniejsza analiza była szybka i efektywna.

Oprócz dobrego przygotowania merytorycznego, warto również przygotować sie technicznie i narzędziowo. Oprócz oczywistych narzędzi takich jak notatnik, dev-tool, na rynku dostępnych jest kilka narzędzi, które wspierają proces testowania eksploracyjnego.

Narzędzia wspierające testowanie eksploracyjne to między innymi:

  • Xray Exploratory App: umożliwia tworzenie i dokumentowanie sesji eksploracyjnych oraz łatwe zarządzanie testami. Link: Xray Exploratory App
  • BugMagnet: to narzędzie jest przeznaczone dla przeglądarek Chrome i Firefox, pomagając testerom identyfikować i testować przypadki brzegowe oraz problematyczne wartości. Link: BugMagnet
  • MindMeister: narzędzia do tworzenia map myśli, które pomagają w planowaniu i dokumentowaniu przebiegu testów eksploracyjnych. Link: MindMeister

🗄 Jak dokumentować testy eksploracyjne? 🗄

Chociaż testowanie eksploracyjne nie jest oparte na szczegółowych scenariuszach, nie zawsze możemy sobie pozwolić aby nie zostawić po sobie ani jednego śladu. W zależności od projektu bardzo istotne może być aby właściwie je udokumentować.

Elementy które mogą pomóc nam we właściwym udokumentowaniu testów eksploracyjnych:

  • Raporty sesji: Krótkie opisy tego, co zostało przetestowane, jakie obszary aplikacji, znalezione defekty oraz ewentualne uwagi.
  • Listy kontrolne (Checklists): Pomagają testerowi upewnić się, że kluczowe obszary nie zostaną pominięte podczas eksploracji.
  • Mapy myśli (Mind Maps): Wizualna forma dokumentacji, szczególnie efektywna przy planowaniu kolejnych sesji eksploracyjnych.

🕵 Kto będzie najlepszy do tej roboty ? 🕵

To chyba jedno z najciekawszych zagadnień dotyczące testów eksploracyjnych, czyli mówiąc trywialnie kogo do tej roboty posadzić. I tu mamy kilka ciekawych możliwości w zależności od tego jaki efekt chcemy uzyskać. Możemy tu żąglować zarówno ilością testerów, ich zaangażowaniem w projekt jak i doświadczeniem testerskim i uzyskać różne efekty:

  • Doświadczony tester, duża wiedza biznesowa: W tym przypadku z jednej strony możemy mieć pewność że osoba taka profesjonalnie podejdzie do tematu, prawidłowo przygoptuje się do testów i wzorowo je wykona oraz zaraportuje wyniki i błędy. Jednak możemy nie uzyskać efektu tzw. "świeżego oka". Tak więc to podejście stosujemy gdy zależy nam na profesjonalnym przebieg całego procesu. W tym przypadku testy możemy wykonać sami, lub zlecić je doświadczonemu koledze z innego zespołu, który zna nasz projekt.
  • Niedoświadczony tester, duża wiedza biznesowa: Ta konfiguracja sprawia że funkcjonalność zweryfikowana zostanie przez osobę o dużej wiedzy na temat samego procesu z punktu widzenia biznesowego jednak same testy mogą być wykonane niestandardowo. W tym przypadku osoba wykonująca testy może potrzebować pewnego wsparcia w wykonaniu testów i raportowanie ich wyników czy też błędów. Niemniej jednak sprawdzenie naszego procesu przez biznesowego “Wyjadacza” może sprawić że znajdzie on różnego rodzaju błędy procesowe, regulacyjne, nieścisłości i rozbieżności z innymi procesami. Osobami takimi mogą być product ownerzy, area experci, managerowie.
  • Doświadczony tester, mała wiedza biznesowa: W tym przypadku możemy liczyć na profesjonalne podejście do procesu z połączeniem efektu świeżego oka. To podejście zapewnia bardzo dużo profitów. Pozwala nam uniknąć podstawowych błędów w sztuce wykonania testów a jednocześnie daje szansę na wykrycie błędów biznesowych których testerzy tworzący proces mogli nie odkryć. Pamiętajmy jednak że w tym przypadku konieczne bedzie początkowe wprowadzenie w projekt oraz produkt tak aby testowanie nie zamieniło sie w klikanie. Warto również zapewnić wsparcie osoby o dużej wiedzy biznesowej aby mogła odpowiadać na pytania i weryfikować zgłoszenia.
  • Niedoświadczony tester, mała wiedza biznesowa: Ta konfiguracja może się wydawać skazana na porażkę jednak w przypadku gdy zależy nam na totalnie świeżym spojrzeniu i niestandardowym podejściu to jest to właściwy wybór. Takie testy są wykonywane chociażby podczas tzw. novice user testing czy też first user testing choć nie są to podejścia szczególnie popularne.

Ponieważ testowanie eksploracyjne nie jest szczególnie planowane, kwestia doboru odpowiednich testerów może być kluczowa. W zasadzie można powiedzieć że w tego rodzaju testach zostawiasz testera z aplikacją sam na sam i mówisz mu: działaj… dlatego też odpowiedni dobór konfiguracji personalnej jest bardzo istotny.


💰 Wartość dodana testowania eksploracyjnego 💰

Przeszlismy wspólnie przez wiele aspektów związanych z testami eksploracyjnymi. Mam nadzieję że zawartymi w tym artykule informacjiami przekonałem cię że warto zastosowac je jako uzupełnienie strategi testowej. Aby dopiąć artykuł, zanim przjdziemy do podsumowania, przypomnijmy wartości jakie niesie ze sobą zastosowanie testów eksploracyjnych.

Testowanie eksploracyjne korzyści:

  • Odkrywanie nieoczywistych błędów: Pozwala na znalezienie defektów, które mogłyby pozostać niezauważone w standardowych scenariuszach testowych.
  • Elastyczność i adaptacja: Szybkie dostosowanie podejścia do zmieniających się warunków projektu.
  • Efektywność czasu: Skupienie się na najbardziej istotnych i krytycznych obszarach pozwala na szybkie uzyskanie wartościowych informacji zwrotnych.
  • Rozwój wiedzy i kompetencji: Poprzez aktywne poznawanie aplikacji, tester zdobywa cenną wiedzę, która pozwala na lepsze projektowanie przyszłych testów oraz skuteczniejsze wykrywanie ryzyk.

📭 Podsumowanie 📭

Techniki testowania eksploracyjnego to skuteczny sposób na odkrywanie błędów oprogramowania, szczególnie w środowiskach z ograniczoną dokumentacją czy rozwijających się projektach. Pozwalają one również uzupełnić zaplanowane regularne testy idealnie wpisująć sie w luki jakie powstają miedzy testami akceptacyjnymi oraz regresji. Umiejętne stosowanie tych technik oraz efektywna dokumentacja wyników sprawiają, że testowanie eksploracyjne jest istotnym elementem procesu zapewniania jakości oprogramowania.

Dodaj komentarz

Komentarze

Nie ma jeszcze żadnych komentarzy.