Testerskie rozmowy: Testowanie eksploracyjne – kiedy jest ważne?

Karolina Tomaszyk on 28 września 2017

Testowanie eksploracyjne zwane także testowaniem ad-hoc pozwala na jednoczesne uczenie się aplikacji przez testera oraz weryfikację jej poprawnego działania. Ten rodzaj testów jest przeciwieństwem dla testów skryptowych. Warto skorzystać z tej metody testowania, gdy w danym projekcie brakuje kompletu informacji o aplikacji jak np. szczegółowa specyfikacja. Osobiście nie znam testera, który nawet nieświadomie nie skorzystałby z tej metody.

Możliwości przy eksploracyjnej metodzie testów:

  1. Łączenie wielu źródeł informacji takich jak dokumentacja, makiety etc.
  2. Checklisty i mapy myśli – alternatywa dla pisania przypadków testowych zajmująca o wiele mniej czasu w podejściu Agile. Warto, aby testerzy przygotowywali checklisty począwszy od najważniejszych funkcji z punktu widzenia użytkownika poddawali je weryfikacji. Checklisty pozwalają na uniknięcie pominięcia ważnych miejsc w aplikacji.

W starszych metodologiach do tworzenia oprogramowania proces testowy rozpoczyna się od zapoznania się w pełni z dokumentacją projektu, pierwszymi wizualizacjami produktu, a następnie zaplanowania procesu testowego.

Proces testowy rozpoczyna się od projektowania przypadków testowych.

W przypadku Agile praca nad produktem trwa podczas krótkich iteracji, gdzie w każdym sprincie zespół skupia się na dostarczeniu działającej funkcjonalności klientowi na koniec danej iteracji. Ustalenia, co do wytwarzanego oprogramowania często pojawiają się także w trakcie tworzenia produktu. Nie ma więc możliwości (ani czasu) na utworzenie całego pakietu przypadków testowych pozwalających na zweryfikowanie zgodności aplikacji z założeniami. Bardzo nieodpowiedzialnym rozwiązaniem byłoby weryfikowanie całości zaimplementowanego produktu dopiero na końcu projektu. Wspomniany pomysł wiązałby się z dostarczaniem klientowi niedziałającej w pełni partii produktu, Mogłoby nie starczyć czasu na poprawę błędów, co okazałoby się dopiero chwilę przed oddaniem finalnego produktu do klienta.

Podczas testów przy każdej iteracji tester zdobywa więcej informacji o aplikacji, przez co zwiększa się prawdopodobieństwo odnalezienia wszystkich “wąskich gardeł”, które mogą być zagrożeniem. Czasami podczas dłuższej sesji testowania eksploracyjnego problematyczne okazuje się przekazanie programistom kroków wywołania błędu. Dobrym rozwiązaniem w tej metodyce jest nagrywanie testów. Wtedy określenie kroków wywołania błędu nie stanowi najmniejszego problemu.

Umiejętność eksploracyjnego przeprowadzania testów jest niezbędną umiejętnością testerów w każdym zespole. Często podczas testowania eksploracyjnego rodzą się nowe scenariusze testowe, ze względu na pobudzanie procesu myślowego testera oraz kształtującą się kreatywność. Wyobraźnia testera rozwija się wraz z ilością wykonanych przypadków. Odkryte scenariusze w danej sesji testowej można spisywać i wykorzystać w kolejnych iteracjach testów. Jakość przeprowadzanych testów eksploracyjnych w dużej mierze zależy od doświadczenia testerów, którzy często wykonują przypadki intuicyjnie efektywnie odnajdując defekty. Dobrze przeprowadzone testy eksploracyjne pozwalają na odnalezienie błędów, które przy testowaniu innymi technikami nie zostałyby odnalezione.

, ,

Przeczytaj również