Stosowanie strategii testowania eksploracyjnego pomaga zespołom kontrolującym jakość znajdować problemy w oprogramowaniu, które często pozostają niezauważone w przypadku testów formalnych. Testy eksploracyjne pomagają zespołom kontroli jakości na różne sposoby, m.in. w tym, by szybciej wykrywać defekty, lepiej współpracować w zespole i osiągać lepsze wyniki testów.
Ta strategia testowania najlepiej nadaje się do zwinnego środowiska ze względu na jej tempo i możliwość dostosowania do dowolnego etapu cyklu życia oprogramowania. Sposób, w jaki zespoły testerskie opracują strategię testów eksploracyjnych, będzie zależał od kreatywności i wiedzy testera. Oto kilka cech, które czynią z tej strategii unikat w testerskim świecie:
- Mniej planowania. Tester może rozpocząć proces testowania po minimalnym przygotowaniu. W przeciwieństwie do skompilowania, które wprowadza zaprojektowanie wielu przypadków testowych w innych formach testowania, testowanie eksploracyjne wymaga jedynie na poziomie planowania karty testów (ang. test charter), która jest opisem celów testowania.
- Nauka w czasie rzeczywistym. Najlepsi testerzy mogą wykorzystać swoją wiedzę i doświadczenie do wykonywania testów, jednocześnie ucząc się zachowania systemu. Dzięki temu mogą tworzyć, przeprowadzać i modyfikować scenariusze testowe w czasie rzeczywistym.
- Silniejsza współpraca między członkami zespołów. Ponieważ testerzy nie muszą postępować zgodnie z konwencjonalną metodą tworzenia przypadków testowych, mogą skoncentrować się na problemach w miarę ich pojawiania się. Przekazywanie wartościowych komentarzy na temat jakości produktu lub obszarów, które zidentyfikowali jako potencjalne obszary problemowe, znacznie pomaga programistom w ich poprawie.
- Lepsze wykrywanie defektów krytycznych. Ponieważ programiści często piszą kod na podstawie błędnych założeń, to tworzone przez nich testy (np. jednostkowe) mogą być ograniczone przez błąd potwierdzenia. Testerzy eksploracyjni mogą badać oprogramowanie i znaleźć problemy, które inni członkowie zespołów mogli przeoczyć, głównie dlatego, że myślą poza ustalonymi regułami (ang. out of the box).
Liczne strategie testowania eksploracyjnego mogą zainspirować ciekawe testy, które odkrywają skomplikowane, niezauważone wcześniej problemy. Niektórzy wykwalifikowani testerzy bez problemu przejdą od wcześniej zaplanowanych przypadków testowych regresji do bardziej pomysłowego frameworku eksploracyjnego, ale inni mogą mieć z tym trudności. Zespoły kontroli jakości muszą aktualizować swoje strategie wraz z cyklem testowania i rozwoju produktu. Kiedy już zdecydują się na działanie zgodne ze strategią testowania eksploracyjnego, ważne jest, aby wiedzieć, od czego zacząć i jakie korzyści mogą odnieść.
Przyjrzyjmy się niektórym technikom zawartym w strategiach testowania eksploracyjnego, z których mogą skorzystać zespoły kontroli jakości:
- Twórz historie użytkowników (ang. user stories). Historie użytkowników lub scenariusze opisują działanie użytkownika na funkcjach programu. Innymi słowy, wymaga to wejścia w rolę użytkownika końcowego i rozważenie kroków, które użytkownik może podjąć, aby skorzystać z funkcji. Twoje krytyczne myślenie posłuży Ci, gdy przyzwyczaisz się do pisania tego typu historyjek użytkowników i pomoże Ci ocenić zróżnicowane przepływy działań dla różnych typów użytkowników.
- Testuj poza pudełkiem (ang. test outside the box). Wiele procesów i punktów weryfikacji pokrytych przez testy regresji jest jawnych i oczekiwanych. Zarówno automatyczne, jak i ręczne testy potwierdzają, że aplikacja wykonuje funkcję zgodnie z przeznaczeniem lub postępuje zgodnie z przewidywaną sekwencją logicznych zdarzeń. Tester musi badać system w celu zdobycia dodatkowej wiedzy, a system trzeba testować we wszystkich możliwych konfiguracjach.
- Popraw śledzenie (ang. traceability) i znajdź defekty. Testerzy eksploracyjni powinni nie tylko sprawdzać, czy produkt działa; idealnym procesem jest dla nich próba identyfikacji obszarów, w których on nie działa. Poszukaj podobnych defektów, wykorzystując swoje doświadczenie w korzystaniu z oprogramowania o zbliżonych cechach. Niezbędne jest śledzenie i zgłaszanie każdego defektu, aby skutecznie przekazać go do innego członka zespołu. Tu mogą pojawić się właściwe narzędzia do testowania eksploracyjnego. Dzięki nim możesz zebrać wszystkie defekty, które napotykasz podczas testowania oprogramowania.
- Używaj map myśli. Menedżerowie projektów często używają map myśli, które są wizualnymi zbiorami myśli i koncepcji, aby mieć pewność, że nie przegapią istotnych szczegółów podczas planowania projektu. Dlatego używanie map myśli podczas testów eksploracyjnych pozwoli Ci dostrzec luki funkcjonalne. Możesz wykrywać problemy, zanim staną się one awariami. Dzięki tej strategii łatwiej jest stworzyć skrypt testowy, ponieważ głównym celem map myśli jest tworzenie wartościowej dokumentacji podczas testowania.
- Lepsze testy integracyjne. Testy integracyjne to jeden z elementów testowania zwinnego, który sprawdza, jak dobrze różne moduły systemu oprogramowania współdziałają ze sobą. Większość oprogramowania ma zintegrowane sekcje funkcjonalne, na przykład do raportowania i finansów. Testowanie integracji komponentów podczas przeprowadzania testów eksploracyjnych poprawia wykrywanie problemów, a zespoły kontroli jakości zdobywają większą wiedzę o tym, jak dalej je testować. Eksploracyjne testy integracyjne wykrywają defekty, które zwykle są pomijane i są w stanie potwierdzić takie cechy oprogramowania, jak wydajność czy niezawodność. Podczas testów integracyjnych pomocna będzie również technika mapowania myśli, ponieważ można dzięki niej lepiej zrozumieć system, wizualizując diagram połączeń różnych modułów systemu oprogramowania wchodzących ze sobą w interakcje.
- Testuj kompleksowo (ang. end-to-end testing). Dodaj do swoich testów frontendu również weryfikację backendu. Mimo że to podejście wymaga sporej wiedzy, trzeba poświęcić jej baczną uwagę, aby lepiej przeanalizować wyniki. Dzięki temu, że lepiej zrozumiesz to, jak działa aplikacja, wykonasz lepsze testy za pomocą testów eksploracyjnych.
- Eksploruj wraz z interesariuszami. Testy eksploracyjne dają szansę weryfikacji oprogramowania wszystkim kluczowym interesariuszom, a nie tylko przeszkolonym testerom. Korzystając z narzędzia do testowania eksploracyjnego, można robić zrzuty ekranu, nagrywać notatki głosowe i dodawać adnotacje podczas sesji. Umożliwia to szybszą i wydajniejszą weryfikację przez osoby również spoza tradycyjnego testowania oprogramowania. W połączeniu z automatycznymi testami i innymi praktykami testowymi zwiększają zasięg testów, wykonując przypadki skrajne. Brak sztywności strukturalnej zachęca do eksperymentowania, kreatywności i odkrywania.
Zaktualizuj swoją strategię i skorzystaj z testów eksploracyjnych. Zespoły kontroli jakości muszą wybrać narzędzia do zarządzania dokumentacją i testami oraz udostępnić je wszystkim testerom podczas opracowywania metodologii testów eksploracyjnych. W testach eksploracyjnych nie ma wstępnie zaprojektowanej specyfikacji testów, co daje testerom i kierownikom zespołów większą swobodę i elastyczność w doborze narzędzi. Dzięki testom eksploracyjnym możesz szybciej wykrywać więcej defektów, usprawniać współpracę między testerami i programistami oraz osiągać lepsze wyniki kontroli jakości. Niemal natychmiastowy charakter informacji zwrotnej pomaga zlikwidować luki komunikacyjne między testerami a programistami. Wyniki testów eksploracyjnych zapewniają zorientowaną na użytkownika perspektywę, szybką i mającą wartość informację dla zespołów programistycznych.