Podejście do eksploracji w ostatnich latach zmieniło się i coraz bardziej dostrzega się jej potencjał oraz korzyści zarówno dla testowanej aplikacji, jak i samego testera. W jakich sytuacjach warto zastosować testy eksploracyjne i jakie są plusy tego rozwiązania?

To było wiele lat temu. Moja pierwsza praca, pierwszy system. Dokumentacji brak, wymagania spisane na kartkach przy kawie z kierownikiem działu. System wspomagał inwestycje, tworzony był dla konkretnego odbiorcy przez jednego developera, który był dodatkowo jednocześnie analitykiem, wykonawcą i testerem. Gdy przyszłam pierwszego dnia do pracy, usłyszałam „Siadaj i testuj’. Myślę, że to były moje pierwsze testy – i do tego były to testy eksploracyjne (sic!). Minęło wiele czasu, testy eksploracyjne zyskały na ważności, zostały sformalizowane, opisane w fachowej literaturze.

Kiedy warto pomyśleć o eksploracji?

Według słownika International Software Testing Qualifications Board, a konkretnie Jamesa Bacha, testy eksploracyjne to: „Nieformalna technika projektowania testów, w której tester projektuje testy podczas ich wykonywania oraz wykorzystuje informacje zdobyte podczas testowania do projektowania nowych i lepszych testów”. Polemizując z ISTQB, dla mnie ważniejszym czynnikiem jest poznawanie aplikacji – szczególnie w przypadku, gdy nie dysponujemy dokumentacją. Testy eksploracyjne oraz rozmowy z developerami i uczestnikami projektu dają bowiem możliwość dość szybkiego poznania każdego systemu. Z definicji nie potrzebujemy do testów eksploracyjnych żadnej dokumentacji. Potrzebny jest z kolei cel i określone ramy czasowe. Kiedy zatem warto pomyśleć o eksploracji?

Pierwsze spotkanie testera z aplikacją

Zaczynamy pracę przy nowym projekcie zupełnie zieloni, mając nadzieję na pracę z  dokumentacją i możliwość szybkiego zdobycia wiedzy. Jednak często zdarza się, że dokumentacji nie ma. Są za to jakieś często szczątkowe informacje w formie tekstu, najczęściej już nieaktualnego, a reszta zamknięta jest w głowach developerów. Z taką właśnie sytuacją przyszło mi się zmierzyć w pierwszym moim projekcie – był to projekt na kasy fiskalne, na których oprócz sprzedaży miało być możliwe ładowanie telefonów komórkowych, przyjmowanie paczek itp. Dodam, że firma, dla której przygotowywany był projekt, to jedna ze spółek wielkiej organizacji. W jej skład wchodziły dwa giganty, jeśli chodzi o kasy fiskalne na polskim rynku.

Projekt był właśnie wznawiany po raz kolejny. Dotychczasowa praca nad nim wyglądała w ten sposób, że dorabiano funkcjonalności i porzucano dalsze prace. To, co już powstało, to panel klienta, produkty na kasy fiskalne miały właśnie być tworzone. Zatrudniono project managera, analityka, dodatkowych developerów i test managera. Mój pierwszy dzień, a pamiętam go doskonale, we wszystkim przypominał pierwszy dzień w mojej starej firmie wiele lat temu. I tak historia zatoczyła koło. Zastałam aplikację dla klienta bez dokumentacji, założeń, wymagań, a miałam tworzyć plan testów, strategie testowania, przypadki testowe itd. Pozostało usiąść do eksploracji. Dałam sobie dwa pełne dni. Cel – zapoznanie z aplikacją. Raport z testów zawierał kilkadziesiąt błędów i usterek wraz ze zrzutami ekranów. Na jego podstawie powstały zadania w JIRA dotyczące błędów, a później zaprojektowane zostały przypadki testowe. Sporym problemem był tu brak jakichkolwiek wymagań, wszystko było robione intuicyjnie przez developerów. Testy eksploracyjne w tej sytuacji nie tylko pomogły mi jako testerowi, ale też przysłużyły się rozwojowi aplikacji. Zaczęliśmy dyskutować o tym, czy aplikacja jest „user friendly”, i rozmawiać o ergonomii w systemie. Tak testy eksploracji spełniły swoje zadanie.

Przeczytaj także: Dlaczego testy oprogramowania są ważne

Gdy kończy się czas…

Testy eksploracyjne mogą być wykorzystane również pod koniec projektu, gdy błędów do naprawy jest całe mnóstwo. Naprędce dokładane są nowe funkcjonalności, a co za tym idzie – nowe wersje wychodzą prawie codziennie i pojawia się konieczność bieżącego testowania wraz z regresją. Który tester tego nie zna? To moment, kiedy wielu kierownikom czy project managerom przychodzi do głowy ograniczanie testów. Nigdy na to nie pozwalajmy. To prosta droga do zakończenia projektu niepowodzeniem. Być może warto zaproponować wtedy właśnie testy eksploracji. W literaturze fachowej zdania są podzielone: spotkacie się albo z absolutnym „nie”, jeśli chodzi o eksplorację w momencie, gdy prowadzone są testy regresji, albo wręcz przeciwnie. Zwolennikiem zastosowania testów eksploracji w czasie regresji jest Simon Schrijver. Zgadzam się z tym podejściem, gdyż testy eksploracyjne wykonane pod koniec projektu to liczne plusy, między innymi:

  • Zyskujemy na czasie. Jeśli go brakuje, zamiast ograniczać testy, pozwólmy testerom pracować w oparciu o wiedzę i doświadczenie eksploracyjnie (czyli pracę bez formalności).
  • Testy eksploracyjne pozwalają zidentyfikować błędy w przyjętej strategii testowania.
  • Po sesji może okazać się, że konieczna jest weryfikacja naszych priorytetów i powinniśmy zająć się w pierwszej kolejności innymi obszarami.
  • Dzięki spisywaniu wszystkiego i dzieleniu się wiedzą z innymi członkami zespołu wzrasta ogólna wiedza o aplikacji, co jest bardzo cenne w sytuacjach krytycznych.

Gdy brakuje testera…

Jeszcze jeden przykład wykorzystania testów eksploracyjnych opisuje wspomniany już Simon Schrijver. Pisze o sytuacji, gdy tester projektowy idzie na urlop, nie kończąc swojej pracy. Mając do dyspozycji innego testera (niemającego jednak wiedzy projektowej), kierownik poprosił go o pomoc, jednocześnie proponując pracę z analitykiem biznesowym w parze. Takie „testowanie w parze”. Analityk biznesowy miał wiedzę dotyczącą projektu i instruował testera. Tester z kolei, jako osoba wykonująca testy na bazie swojego doświadczenia, mógł odpowiednio zarządzać swoimi testami dzięki analitykowi. Moim zdaniem to bardzo ciekawy pomysł.

Przeczytaj także: Jak uzupełnić braki w zespole testerskim

Testy eksploracyjne a kompetencje

Na koniec chciałabym jeszcze zwrócić uwagę na jeden ważny aspekt. Tego typu testy powinny być wykonywane przez doświadczonych testerów. Nie dajmy się zwieść temu, że niektórzy nazywają testy eksploracyjne „testami na wariata” (czyli testami, które wszyscy, bez względu na doświadczenie, mogą wykonać). Można się też spotkać z przekonaniem, że „testować każdy może”. Nigdy nie zgadzałam się z tym powiedzeniem i będę z nim polemizować. Z mojego doświadczenia wynika, że tylko tester doświadczony, który zdobył doświadczenie w wielu projektach i zmierzył się z wieloma sytuacjami krytycznymi, wygrał lub przegrał wiele bitew (zarówno z kierownictwem, jak i developerami) jest w stanie, drążąc do upadłego, trafić w sedno. W naszej testerskiej naturze jest to, że dążymy do destrukcji. Właśnie taki tester nastawiony na destrukcję, z bagażem wyżej opisanych sytuacji, będzie mógł znaleźć szybko luki, których naprawa być może będzie kluczowa dla uratowania projektu.

Wielką wartością byłoby umożliwienie uczenia się w czasie sesji testów eksploracyjnych praktykantowi, stażyście czy juniorowi. Oni właśnie nabierają doświadczenia i jeśli mamy możliwość, aby kształtować kolejne pokolenia dobrych testerów – róbmy to.

Podsumowanie

Mam nadzieję, że udało mi się pokazać, jak wiele zalet mają testy eksploracyjne. Opisałam co prawda jedynie wybrane zastosowania technik eksploracyjnych, ale możliwości i korzyści jest znacznie więcej. Osobiście chętnie wykorzystywałam i wykorzystuję testy eksploracyjne w mojej pracy. Jeśli mają doprowadzić do powstania jeszcze lepszego produktu, to zachęcam: korzystajmy z nich! Zatem, drogi testerze – eksploruj, bo warto.

Źródła:

  1. Adam Roman, „Testowanie i jakość oprogramowania, Modele, techniki, narzędzia”. Wydawnictwo Naukowe PWN SA, Warszawa 2015

 

Autorem wpisu jest:
Justyna Rybarczyk, JCommerce
Technical leader, senior tester, analityk biznesowy. Uczestniczyła w wielu projektach o zróżnicowanej tematyce biznesowej – od ubezpieczeń i systemów bankowych, przez automaty do gier, kasy fiskalne, aż po systemy wspomagające planowanie inwestycji dla spółki państwowej. Uczestniczka wielu projektów międzynarodowych w Londynie, Fryburgu/Berlinie i Atlancie, gdzie pracowała jako członek zespołu testerskiego klienta przez 4 miesiące. Wielka fanka projektów Agile’owych, posiadaczka certyfikatu Professional Scrum Master.

Dodaj komentarz

Komentarze:

Skontaktuj się z nami

Chcesz dowiedzieć się więcej o naszych usługach? Napisz do nas – odpowiemy na każdą wiadomość.

Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma, w celach handlowych.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma, w celach marketingowych.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma w celach rekrutacyjnych.
Niniejszym wyrażam zgodę na przetwarzanie przez JCommerce Sp. z o.o. moich danych osobowych (dalej „dane osobowe”), takich jak: imię i nazwisko, adres e-mail, nr telefonu, firma na potrzeby przyszłych rekrutacji.
W związku z obowiązującymi przepisami dotyczącymi ochrony danych osobowych tj. Ustawą o ochronie danych osobowych z dnia 10 maja 2018 roku, jak również treścią Rozporządzenia Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO), informujemy, że: 1. Administratorem danych osobowych jest JCommerce Sp. z o.o. z siedzibą w Katowicach, ul. Ściegiennego 3, 40-114 Katowice (KRS: 00007393418).
2. Powyższe dane osobowe przetwarzane będą przez JCommerce Sp. z o.o. – w zależności od udzielonych przez Panią/Pana zgód (podstawa prawna przetwarzania: art. 6 ust. 1 pkt a) RODO):
• w celach handlowych,
• w celach marketingowych,
• w celach rekrutacyjnych;
• w celach przyszłych rekrutacji.
3. Podanie powyższych danych osobowych nie jest wymogiem ustawowym, umownym lub warunkiem zawarcia umowy. Nie jest Pan/Pani zobowiązany/a do podania powyższych danych osobowych, jednak brak ich podania uniemożliwi realizacje ww. celu.
4. Posiada Pan/ Pani prawo dostępu do treści swoich danych, w tym otrzymania ich kopii i ich sprostowania, usunięcia, ograniczenia przetwarzania, prawo do przenoszenia danych, prawo do sprzeciwu wobec przetwarzania, prawo do cofnięcia zgody w dowolnym momencie, jeśli została udzielona. Wycofanie zgody nie wpływa jednak na zgodność z prawem przetwarzania, którego dokonano na podstawie zgody przed jej wycofaniem; oświadczenie o cofnięciu zgody na przetwarzanie danych osobowych należy złożyć w siedzibie JCommerce Sp. z o.o. lub przesłać na adres mailowy zgody@jcommerce.pl. Cofnięcie zgody na przetwarzanie danych osobowych skutkuje brakiem możliwości realizacji ww. celów przetwarzania;
5. Dane osobowe są udostępniane przez JCommerce Sp. z o.o. upoważnionym pracownikom i osobom współpracującym z JCommerce Sp. z o.o. na podstawie umów cywilnoprawnych, przez których realizowany jest cel przetwarzania;
6. Wszelkie pytania dotyczące ochrony danych osobowych oraz realizacje przysługujących praw, prosimy kierować na adres odo@jcommerce.pl;
7. W zależności od udzielonej zgody, dane osobowe będą przetwarzane przez czas niezbędny do realizacji ww. celów przetwarzania. W przypadku wniesienia sprzeciwu, JCommerce Sp. z o.o. przestanie przetwarzać Pani/Pana dane w ww. celu, chyba że będzie w stanie wykazać, że w stosunku do tych danych istnieją ważne prawnie uzasadnione podstawy, które są nadrzędne wobec Pana/Pani interesów, praw i wolności, lub niezbędne do ewentualnego ustalenia, dochodzenia lub obrony roszczeń;
8. Nie przekazujemy Pani/Pana danych poza teren Europejskiego Obszaru Gospodarczego oraz do organizacji międzynarodowych.
9. Pani/Pana dane osobowe nie podlegają zautomatyzowanemu podejmowaniu decyzji, w tym profilowaniu.
10. Ma Pani/Pan prawo wniesienia skargi do organu nadzorczego gdy uzna Pan/Pani, iż przetwarzanie ww. danych osobowych narusza przepisy ogólnego rozporządzenia o ochronie danych osobowych z dnia 27 kwietnia 2016 r.