Get your 6-month No-Cost Opt-Out offer for Unlimited Software Automation?

Testowanie eksploracyjne jest specyficznym rodzajem testowania oprogramowania, które przynosi wiele korzyści dla aplikacji, pozwalając jej na osiągnięcie pełnego potencjału.

Sposób, w jaki zespół włącza testy eksploracyjne do swoich rutynowych kontroli, może nawet określić, jak dobrze funkcjonuje oprogramowanie, zwłaszcza, że podchodzi do procedur testowych w nowy i nieoczekiwany sposób. Pomaga to testerom odkryć problemy w aplikacji, które w przeciwnym razie mogą pozostać niezauważone do momentu uruchomienia i spowodować, że kluczowe funkcje nie będą działać.

Zrozumienie procesów, typów i podejść do testowania eksploracyjnego może pomóc ci ukierunkować organizację i jej zespoły testujące, jak włączyć je do ich zwykłych kontroli.

Istnieje również wiele darmowych narzędzi, z których zespół może korzystać, aby ułatwić te inspekcje i zauważyć problemy, zanim potencjalnie staną się blokadami drogowymi dla rozwoju.

W tym przewodniku przedstawiamy korzyści płynące z testów eksploracyjnych oraz kluczowe czynniki, które zespół powinien rozważyć przed wdrożeniem.

 

Table of Contents

Czym jest testowanie eksploracyjne?

 

Testy eksploracyjne łączą w sobie etapy projektowania i wykonywania testów, zapewniając testerowi pełną swobodę operacyjną i pozwalając mu na ciągłe usprawnianie pracy.

W miarę jak zespoły te sprawdzają oprogramowanie, prawdopodobnie odkryją nowe komponenty, które wymagają dokładnej kontroli i mogą łatwo wymyślić nowe testy, które przyniosłyby korzyści aplikacji.

Testowanie eksploracyjne jest podobne do testowania ad hoc, ale opiera się na znacznie bardziej rygorystycznej dokumentacji, zawierając również bardziej aktywny proces uczenia się.

Mniej ustrukturyzowane podejście pomaga testerom ustalić, jak aplikacja prawdopodobnie zareaguje na realistyczne scenariusze i przypadki testowe i służy jako istotne uzupełnienie testów skryptowych.

Jakość przeprowadzanych przez zespół testów eksploracyjnych często zależy od umiejętności poszczególnych testerów, ponieważ kontrole wymagają kreatywności i dogłębnego zrozumienia oprogramowania. Jest to proces ciągłego odkrywania – taki, w którym testerzy używają rozumowania dedukcyjnego, aby kierować swoją ogólną techniką.

Testy eksploracyjne są szczególnie pomocne, ponieważ odzwierciedlają sposób, w jaki użytkownicy mogą korzystać z oprogramowania. Większość użytkowników znajduje błędy i problemy przez przypadek, więc te nieskryptowane procesy mogą pomóc testerom w znalezieniu problemów, których wcześniej ustalone kontrole mogą nie odkryć.

Możliwe jest również zautomatyzowanie tej procedury przez zespół w celu zapewnienia większego poziomu efektywności.

 

1. Kiedy należy przeprowadzić testy eksploracyjne?

 

Testy eksploracyjne są użyteczne w prawie każdym procesie testowania oprogramowania, ale szczególnie dobrze sprawdzają się w dostarczaniu szybkiej informacji zwrotnej o aplikacji.

Zespół może również włączyć te kontrole, jeśli zabraknie im testów skryptowych. Bez wyraźnego kierunku dla ich inspekcji oprogramowania, testowanie eksploracyjne może pomóc odkryć problemy, które pasują poza standardowymi kontrolami.

Zapewnienie zróżnicowanych procedur testowych pozwala testerom zrozumieć oprogramowanie na dużo głębszym poziomie na każdym etapie, ale przeprowadzenie ich wcześnie może dać więcej korzyści.

W razie potrzeby zespoły mogą później ponownie przeprowadzić testy eksploracyjne, aby uzyskać dodatkowy spokój.

 

2. Kiedy nie trzeba przeprowadzać testów eksploracyjnych

 

Istnieje kilka scenariuszy, w których testowanie eksploracyjne nie daje żadnych korzyści, chociaż może być bardziej użyteczne dla testerów, aby poczekać, aż oprogramowanie będzie miało swoją podstawową funkcjonalność.

Funkcje aplikacji zazwyczaj przecinają się lub wchodzą ze sobą w interakcje, co oznacza, że testy eksploracyjne dotyczące jednej funkcji mogą być przestarzałe, gdy zespół programistów doda więcej do tego oprogramowania.

Możliwe jest również przeprowadzenie tych testów obok kontroli skryptowych bez problemu, zakładając, że testerzy mogą zapewnić silny poziom dokumentacji, aby uniknąć zamieszania.

Testy eksploracyjne są bardzo wszechstronne w porównaniu z innymi typami testów, co sprawia, że te kontrole są bardzo przydatne.

 

3. Kto bierze udział w testach eksploracyjnych?

 

Testy eksploracyjne angażują w jakimś zakresie wielu pracowników, w tym:

– Testerzy oprogramowania o dowolnym poziomie umiejętności mogą przeprowadzać te testy, chociaż członkowie zespołu z lepszym zrozumieniem oprogramowania mogą zaprojektować większą różnorodność kontroli.

Doświadczenie może również wpłynąć na ich zdolność do określenia najbardziej przydatnych testów.

– Twórcy oprogramowania, którzy uznają wyniki tych testów, zastosują wszelkie sugestie i często opracują własne rozwiązanie problemu.

Ich odpowiedź na testy jest tym, co pozwala aplikacji osiągnąć stan zdatności do udanego wydania.

– Kierownicy projektów, którzy nadzorują cały ten proces i mogą być nawet tymi, którzy decydują o tym, jakie rodzaje testów stosują zespoły.

Mogą być również odpowiedzialni za pozyskiwanie oprogramowania dla zespołów, które może usprawnić lub nawet zautomatyzować testy.

 

Cykl życia testów eksploracyjnych

 

Proces testowania eksploracyjnego ma silny nacisk na swobodę testera, ale nadal podąża za określoną strukturą.

Główne trzy etapy tego podejścia to:

 

Etap 1: Nauka

 

Testerzy zaczynają od rozwinięcia silnego zrozumienia oprogramowania i jego funkcjonalności – krytycznie analizując je, aby określić, jak to wszystko do siebie pasuje.

Pozwala to testerowi zorientować się w typowych wejściach, które użytkownik mógłby wykonać, choć może być już świadomy aplikacji i jej funkcjonowania.

Etap nauki może wymagać nawet samouczka, jak obsługiwać oprogramowanie. Jest to etap eksploracji i wyposaża testera we wszystkie informacje, które są niezbędne do zaprojektowania szerokiego zakresu użytecznych testów.

 

Etap 2: Projekt badania

 

Projektowanie testów eksploracyjnych wiąże się co prawda z różnymi zasadami i parametrami, ale i tak oferuje znacznie większą swobodę w porównaniu z testami skryptowymi – których specyfika jest znana już przed rozpoczęciem testów.

Tester może opracować kontrole, które jego zdaniem bardziej precyzyjnie pasują do aplikacji i mogą potencjalnie odkryć cenne dane dla zespołu programistów, w tym godne uwagi błędy, które należy naprawić.

Zespoły testujące wykorzystują ten etap do ustalenia, jakie podejście przyjąć i jak podzielić pracę pomiędzy różnych testerów w sposób, który gra do ich mocnych stron.

 

Etap 3: Wykonanie

 

Po zaprojektowaniu kontroli do wykorzystania, testerzy mogą teraz sprawdzić aplikację w sposób, który uważają za najbardziej efektywny – mogą to zrobić natychmiast po opracowaniu konkretnego testu.

Jest to etap, w którym testerzy aktywnie poszukują problemów i tego, w jaki sposób wszelkie odkryte przez nich problemy mogą wpłynąć na inne cechy i funkcje.

Podczas gdy istnieje pewna miara intuicyjnej pracy zaangażowanej w egzekucje testów eksploracyjnych, wciąż podąża za ustalonymi procesami i celami, pozwalając na płynne testy, które mogą łatwo dostosować się do konkretnych celów testowych.

 

Testy eksploracyjne i scenariuszowe

 

Testy eksploracyjne są w rzeczywistości przeciwieństwem testów skryptowych, chociaż oba mogą być ważne dla zapewnienia, że aplikacja jest gotowa do wydania. Te ostatnie są zwykle bardziej formalne i ustrukturyzowane, obejmując wiele szerokich testów w porównaniu do kontroli eksploracyjnych, które często są bardziej specyficzne dla funkcjonalności aplikacji.

W ramach tego, testy eksploracyjne są również znacznie bardziej adaptacyjne, podczas gdy testy skryptowe mogą zmagać się, jeśli w oprogramowaniu zachodzą duże zmiany. Testy eksploracyjne mogą odkrywać błędy i działać przeciwko nim szybciej, co czyni te pierwsze szczególnie użytecznymi w przypadkach, w których szybka informacja zwrotna jest najważniejsza.

 

1. Aktywne testy eksploracyjne

 

Aktywne testowanie eksploracyjne polega na tym, że tester projektuje automatyczny skrypt dla swoich sprawdzeń, który inny tester wykonuje. Skrypty te uwzględniają poprzednie testy, jeśli mają zastosowanie.

Dwaj testerzy zazwyczaj zamieniają się rolami w trakcie procedury kontroli, aby dwukrotnie sprawdzić niezawodność tych skryptów i procesów.

Testy aktywne mają szerszy zasięg bez poświęcania specyficzności znaku towarowego, jakim są kontrole eksploracyjne. Skrypty te pozwalają również na lepszą dokumentację, ułatwiając odtworzenie wszelkich problemów, które znajdą testerzy.

Dokumentacja jest istotnym elementem aktywnych testów, ponieważ pomaga interesariuszom zobaczyć ogólny postęp aplikacji.

 

2. Pasywne testy eksploracyjne

 

Pasywne testy eksploracyjne wymagają tylko jednego testera, choć praca w parach może jeszcze bardziej usprawnić proces.

Podejście to obejmuje specjalne oprogramowanie, które rejestruje działania testerów – zapewniając im łatwe kroki do replikacji każdego problemu, który odkryją. Najczęściej ma to formę filmu z testerem opatrzonego komentarzem, który krok po kroku wyjaśnia jego działania.

Nagrywanie procesu testowania daje również wgląd w wydajność aplikacji, w tym jak szybko reaguje na żądania wejściowe.

Testowanie pasywne dostarcza zarówno testerom, jak i zespołowi programistów wielu szczegółowych informacji na temat funkcjonowania oprogramowania.

 

Techniki testów eksploracyjnych

 

Testy eksploracyjne zazwyczaj mają format “wycieczki” – gdzie tester eksploruje oprogramowanie w najbardziej efektywny sposób.

Do wyboru są różne trasy, które zespół mógł wybrać, m.in:

 

– Wycieczki z przewodnikiem

Takie podejście nadaje priorytet najważniejszym funkcjom aplikacji, ściśle odwzorowując sposób, w jaki przeciętny użytkownik korzysta z oprogramowania i odkrywając problemy, które naturalnie by znalazł.

 

– Wycieczki historyczne

Ta wycieczka sprawdza najstarsze funkcje aplikacji, aby upewnić się, że nadal działają; jest to szczególnie ważne, jeśli programiści dodali nowe funkcje, które są z nią sprzeczne.

 

– Wycieczka po pieniądze

Ten test eksploracyjny sprawdza krytyczne funkcje aplikacji, a konkretnie te, za dostęp do których klienci i klientki płacą pieniądze – są to zazwyczaj najwyższe priorytety wśród zespołu testującego.

 

– Wycieczka w poszukiwaniu przestępstw

Testerzy czasami aktywnie pracują nad złamaniem aplikacji lub wywołaniem negatywnych scenariuszy, np. poprzez wprowadzenie nieprawidłowych informacji i zbadanie, jak aplikacja na to reaguje.

 

– Wycieczka w zaułek

Proces ten obejmuje funkcje, z których prawdopodobnie skorzysta mniejsza liczba klientów; są one tak samo istotne dla każdego podejścia do testowania, zwłaszcza, że będą współdziałać z innymi funkcjami.

 

– Wycieczka intelektualna

Ta wycieczka popycha aplikację dalej, testując najbardziej skomplikowane funkcje z wyższymi (czasami maksymalnymi) wartościami, aby określić szybkość przetwarzania oprogramowania.

 

Podejścia do testów eksploracyjnych

 

Istnieją dwa główne podejścia do testów eksploracyjnych:

 

1. Testy eksploracyjne oparte na sesji

 

Jest to technika oparta na czasie, która ma na celu kwantyfikację procesu testowania poprzez podzielenie go na “sesje” z dwoma składnikami: misjami i kartami.

Misja to cel i czas trwania tej konkretnej sesji, dający testerowi eksploracyjnemu jasny cel.

Karta określa zakres każdej sesji i wyszczególnia wszelkie konkretne cele, które tester zamierza zrealizować. Powoduje to wyższy poziom odpowiedzialności (i dokumentacji) poprzez podzielenie tych kontroli na bardziej zarządzalne komponenty.

Testy oparte na sesjach poprawiają również wydajność i dostarczają testerowi przejrzystych metryk i informacji o rozwiązywaniu problemów.

 

2. Testy eksploracyjne oparte na parach

 

Testowanie w parach jest podobne do aktywnego testowania eksploracyjnego, ponieważ polega przede wszystkim na pracy w parach – zwykle na tym samym urządzeniu – w celu ciągłego sprawdzania aplikacji jednocześnie. W tym układzie jeden tester proponuje zakres przypadków testowych i prowadzi notatki na temat postępów, podczas gdy drugi testuje oprogramowanie.

Komunikacja jest niezbędna podczas testowania w parach, ponieważ daje pewność, że obaj testerzy są świadomi kontroli i ich celu.

Jeśli sam przydzielasz te pary, upewnij się, że uwzględniasz mocne i słabe strony każdego testera, ponieważ pozwala to na zbudowanie silniejszych procesów testów eksploracyjnych.

 

Jakie czynniki wpływają na Testy Eksploracyjne?

 

Do czynników, które mogą wpłynąć na jakość przeprowadzanych przez zespół testów eksploracyjnych należą:

 

– Nadrzędny cel i podstawowa funkcjonalność oprogramowania.

– Konkretne cele testowania dla obecnej fazy aplikacji.

– Indywidualne role i umiejętności każdego testera w zespole.

– Dostępne narzędzia, np. darmowe oprogramowanie do automatyzacji testów.

– Wsparcie, jakie testerzy otrzymują od rówieśników lub kierownictwa.

– Życzenia klienta i aktualne szerokie trendy na rynku.

– Łatwość obsługi aplikacji, np. płynność interfejsu.

– Czas, jaki testerzy mają na zakończenie fazy testów.

– Dane wejściowe i inne asortymentowe dane, które testerzy zamierzają wykorzystać.

– Funkcje, które deweloperzy dodają do oprogramowania z czasem.

 

Rodzaje testów eksploracyjnych

 

Trzy główne rodzaje testów eksploracyjnych, które zespół może włączyć to:

 

1. Swobodne testy eksploracyjne

 

Freestyle testing obejmuje podejście ad hoc do sprawdzania aplikacji. Ma to niewiele zasad do uwzględnienia, więc jego skuteczność może być różna; niektóre programy i komponenty gwarantują bardziej solidną metodologię.

Te kontrole mogłyby nadal oferować wiele korzyści, pomagając testerom zapoznać się z tą aplikacją i zatwierdzić pracę poprzedniego testera.

Nawet bez ścisłych reguł, doświadczeni i wykwalifikowani testerzy mogą łatwo wykorzystać to do formatowania na swoją korzyść. Mogą z łatwością poruszać się po każdym aspekcie oprogramowania – w niektórych sytuacjach zasady testowania są restrykcyjne i mogą nieumyślnie ograniczać wyniki zespołu.

 

2. Testy eksploracyjne oparte na scenariuszu

 

Testowanie oparte na scenariuszu wykorzystuje realistyczne sytuacje jako podstawę każdego testu, np. poprzez sprawdzenie wejść, które użytkownicy prawdopodobnie wykonają podczas typowego działania tego oprogramowania.

Testerzy ciężko pracują, aby każdy wymyślony przez nich scenariusz odpowiadał temu, jak użytkownik angażuje się w pracę z aplikacją.

Czas może być ograniczeniem, ponieważ celem zespołu jest przetestowanie jak największej liczby scenariuszy; w zależności od terminów, które nas czekają, prawdopodobnie nie będziemy w stanie pokryć wszystkich możliwości.

Testerzy powinni stosować szeroki zakres testów w różnych kategoriach.

 

3. Testy eksploracyjne oparte na strategii

 

Testowanie oparte na strategii obejmuje szeroki zakres konkretnych metod, w tym testowanie wartości granicznej, techniki równoważności, techniki oparte na ryzyku i inne. To zazwyczaj daje pierwszeństwo testerom, którzy są już zaznajomieni z aplikacją, ponieważ mogą oni opracować dostosowane strategie, które zawierają te poszczególne metody.

Podejście oparte na strategii skupia się przede wszystkim na funkcjonalności (i wewnętrznym działaniu) oprogramowania, nie patrząc na możliwe scenariusze, które mogłyby doprowadzić użytkownika do napotkania pojawiających się problemów. Może to doprowadzić do szerszej analizy aplikacji i jej różnych cech, potencjalnie bardziej dogłębnej niż w przypadku różnych innych podejść.

 

Testy eksploracyjne ręczne czy automatyczne?

 

Zespoły testujące mogą przeprowadzać kontrole eksploracyjne ręcznie lub mogą je zautomatyzować. Każda z tych opcji może przynieść ogromne korzyści; wybór właściwej opcji zależy często od specyfiki projektu.

 

Manualne testy eksploracyjne

 

Ręczne testy eksploracyjne pozwalają na większy zakres kontroli na zamówienie. Chociaż może to trwać dłużej ze względu na to, że ludzcy testerzy są wolniejsi niż komputery, ręczna inspekcja może mieć kluczowe znaczenie dla określenia doświadczenia użytkownika.

Tester pracuje nie tylko nad tym, aby upewnić się, że wszystkie funkcje aplikacji działają tak, jak powinny, ale także nad tym, czy użytkownicy mogą ją z łatwością obsługiwać. Jest to prawdopodobnie najbardziej powszechna forma testów eksploracyjnych – choć nie musi to oznaczać, że jest najbardziej efektywna.

 

1. Korzyści z ręcznego wykonywania testów eksploracyjnych

 

Do korzyści płynących z manualnych testów eksploracyjnych należą:

 

Większy nacisk na użyteczność

 

Zautomatyzowane testy eksploracyjne mogą zauważyć rozbieżności w oprogramowaniu, ale mogą nie być w stanie zinterpretować tych problemów w taki sam sposób jak ludzki tester.

Obejmuje to zrozumienie, w jaki sposób użytkownicy oprogramowania prawdopodobnie będą nawigować lub wchodzić w interakcje z aplikacją, czego automatyzacja nie może wziąć pod uwagę.

Ręczni testerzy eksploracyjni mogą zaoferować większy poziom informacji zwrotnej, w tym szczegółowe informacje na temat tego, jak znalezione przez nich problemy wpływają na całość oprogramowania lub ogólne doświadczenie.

 

Możliwość wprowadzania zmian w czasie rzeczywistym

 

Jedną z kluczowych zalet testów eksploracyjnych jest to, że można zidentyfikować potrzebę testu i wykonać go stosunkowo szybko przed wystawieniem na aukcję niezbędnych poprawek.

Testowanie automatyczne jest generalnie znacznie szybszym procesem, ale testerzy muszą czekać, aż wszystko będzie kompletne przed wprowadzeniem zmian – testerzy manualni mogą to zrobić, gdy proces testowania eksploracyjnego jest jeszcze w toku.

Jednak często jest to możliwe tylko w przypadku błędów wpływających na niewielkie części oprogramowania.

 

Większa dbałość o szczegóły

 

Testowanie eksploracyjne polega głównie na odkrywaniu nowych sposobów testowania aplikacji przy jednoczesnym jej zrozumieniu; może to czasem oznaczać, że jeden test prowadzi do drugiego, podsuwając pomysły testerowi.

Testy automatyczne mogą tego nie uwzględniać ze względu na to, że są relatywnie wolne od rąk dla zespołu testującego. Testerzy manualni stale poszerzają swoją wiedzę o oprogramowaniu i wymyślają nowe, ale równie ważne testy – może to być jednak trudne, jeśli oprogramowanie firm trzecich je automatyzuje.

 

Potrafi znaleźć błędy poza kodem

 

Ręczne kontrole eksploracyjne pozwalają testerom przyjrzeć się każdemu aspektowi aplikacji i oprogramowania, także poza samym kodem.

Wiele zautomatyzowanych podejść ogranicza się do kodu i sposobu jego funkcjonowania, co może spowodować, że zespoły testowe nie zauważą problemów, które mogą pojawić się w innych częściach aplikacji.

To zależy głównie od oprogramowania do automatyzacji, które masz, ponieważ niektóre rozwiązania mogą oferować szersze podejście do testów eksploracyjnych.

 

Zapewnienie jakości w całym projekcie

 

Zautomatyzowane kontrole eksploracyjne poszukują jedynie błędów i metryk w aplikacji; testerzy manualni mogliby zamiast tego dokonać inspekcji oprogramowania i zaoferować swoje własne, kompleksowe opinie.

Na przykład mogą przetestować kod i stwierdzić, że jest on zbyt skomplikowany – co jest szczególnie ważne, ponieważ martwy kod może spowalniać wydajność, ale skutecznie pozostałby niewykryty przez zautomatyzowane procesy.

Znajomość oprogramowania przez testera może być pomocna w diagnozowaniu problemów, które pojawiają się podczas innych faz testowania.

 

2. Wyzwania manualnych testów eksploracyjnych

 

Wyzwania związane z ręcznymi testami eksploracyjnymi obejmują:

 

Możliwość wystąpienia błędów ludzkich

 

Zautomatyzowane testy eksploracyjne mogą uruchomić dokładnie to samo sprawdzenie tyle razy, ile jest to konieczne, bez zmian w dokładnym postępie, zapewniając spójność i wiarygodne wyniki.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Manualne testy eksploracyjne są podatne na błędy ludzkie, co oznacza, że tester może wprowadzić niewłaściwą wartość. Zazwyczaj możliwe jest podwójne sprawdzenie tych testów i naprawienie wszelkich rozbieżności, ponieważ mogą one wydawać się oczywiste nawet na pierwszy rzut oka.

Jednak powtórzenie testu po zauważeniu błędu może zająć więcej czasu.

 

Generalnie bardziej czasochłonne

 

Nawet jeśli testerzy przeprowadzą każdą kontrolę eksploracyjną poprawnie, bez błędów ludzkich, to cały ten proces zajmuje znaczną ilość czasu w porównaniu do zautomatyzowanego oprogramowania, które może obliczyć testy znacznie szybciej.

Może to być różnica minimum kilku godzin; czas, który testerzy mogliby realnie poświęcić na części aplikacji, które nie zyskałyby żadnych korzyści z automatyzacji.

Testy eksploracyjne wymagają również stałego nadzoru, natomiast automatyzacja pozwala na uruchamianie testów z dnia na dzień.

 

Długotrwały proces dokumentacji

 

W podobny sposób, ręczna dokumentacja podczas i po testach manualnych może być niepotrzebnym obciążeniem dla procesu testów eksploracyjnych.

Utrudnia to śledzenie zmian i edycji oprogramowania w czasie – zautomatyzowane oprogramowanie jest zazwyczaj w stanie intuicyjnie uwzględnić to podczas przeprowadzania testów.

Jest to kolejna kwestia administracyjna, która zabiera czas i energię innym sprawom, co skutecznie zmniejsza zakres i szerokość całej procedury testowania oprogramowania.

 

Musi znać oprogramowanie dogłębnie

 

Testerzy manualni o dowolnym poziomie umiejętności mogą dokonać inspekcji aplikacji i dokładnie ją przetestować. Wynika to z pracy, jaką włożyli w zrozumienie oprogramowania – pierwszy etap procesu eksploracji.

Jeśli jednak tester ma trudności lub zaniedbuje naukę, jak działa ta aplikacja, prawdopodobnie będzie miał trudności z opracowaniem i wykonaniem odpowiedniego zakresu testów.

Dobra znajomość oprogramowania pozwala testerom wyjść poza zwykłe parametry testowe.

 

Kosztowne w utrzymaniu

 

Poleganie na ręcznych testach eksploracyjnych zwykle wymaga większego zespołu testowego, co może skutkować wyższymi kosztami długoterminowymi w porównaniu do zautomatyzowanych kontroli. Oprogramowanie firm trzecich, które przeprowadza te testy eksploracyjne może zapewnić ogromną wartość lub może być nawet całkowicie bezpłatne.

W zależności od złożoności zadań, firma może wymagać wysoko wykwalifikowanych testerów z wieloletnim doświadczeniem, aby w pełni sprawdzić aplikację. Może to znacznie zwiększyć wydatki na testowanie w porównaniu z użyciem darmowego oprogramowania do automatyzacji.

 

3. Kiedy stosować Manualne Testy Eksploracyjne

 

Ręczne testowanie eksploracyjne często wiąże się z kilkoma wyzwaniami, ale nadal jest istotnym elementem dokładnego testowania oprogramowania. Dzieje się tak dlatego, że istnieją aspekty oprogramowania, których automatyzacja nie może w pełni uwzględnić, a które również wymagają silnego skupienia.

Na przykład, oprogramowanie nie może w sposób wiarygodny dostarczyć informacji zwrotnej na temat interfejsów użytkownika lub testów doświadczenia użytkownika. Testerzy mogą mieć dobre pojęcie o tym, jak aplikacja działa w praktyce tylko wtedy, gdy ręcznie ją przetestują. Oznacza to, że zarówno programiści, jak i zespoły testujące muszą rozważyć włączenie przynajmniej w pewnym stopniu ręcznych testów eksploracyjnych do swoich kontroli.

 

Zautomatyzowane testy eksploracyjne

 

Testy automatyczne wykorzystują oprogramowanie innych firm do automatyzacji pewnych kontroli – testerzy mogą zazwyczaj dostosować je do praktycznie każdego testu.

Z reguły jednak wymaga to od zespołu ręcznego uruchomienia kontroli co najmniej raz, aby skalibrować automatykę. Może to znacznie usprawnić proces zarówno dla zespołów testowych, jak i deweloperskich.

Chociaż automatyzacja testów eksploracyjnych może być rzadkością, istnieje kilka wyraźnych korzyści z robienia tego dla twojej aplikacji i jej wydajności.

 

1. Korzyści wynikające z automatyzacji testów eksploracyjnych

 

Do głównych korzyści wynikających z automatyzacji testów eksploracyjnych należą:

 

Spójna realizacja testów

 

Błąd ludzki może łatwo doprowadzić do błędów w testowaniu, których naprawa zajmuje zarówno czas, jak i pieniądze; zautomatyzowane kontrole eksploracyjne pozwalają zespołom testującym obejść ten problem.

Testerzy skutecznie uczą oprogramowanie automatyzujące, jak poprawnie wykonać test, zapewniając, że za każdym razem przeprowadza go identycznie. Poprawia to ogólną wiarygodność testów i zmniejsza ilość czasu, który deweloperzy spędzają czekając na wyniki – zwłaszcza, że testerzy mogą z łatwością ustawić to tak, aby działało w nocy.

 

Oszczędność czasu dla wszystkich

 

Zautomatyzowane testy pozwalają programistom znacznie szybciej rozpocząć pracę nad poprawkami do problemów, jednocześnie pozwalając testerom na objęcie szerszego zakresu kontroli eksploracyjnych. Jest tylko tyle scenariuszy, które zespół może uwzględnić bez względu na termin, dlatego ważne jest, aby testerzy zmieścili jak najwięcej kontroli w wyznaczonym czasie.

Automatyzacja pomaga poprzez przeprowadzanie tych testów eksploracyjnych w znacznie szybszym tempie niż testerzy manualni.

 

Podejście efektywne kosztowo

 

W zależności od oprogramowania, które wybiera zespół, automatyzacja może być znacznie bardziej opłacalna niż testowanie ręczne – może to być nawet darmowe.

Wprawdzie testerzy manualni nadal są krytycznie potrzebni do zatrudnienia, a część z nich będzie odpowiedzialna za kalibrację procedur automatyzacji, ale zautomatyzowanie jak największej liczby testów eksploracyjnych w praktyczny sposób daje firmie szansę na obniżenie kosztów osobowych.

Gdy zespół zrozumie oprogramowanie do automatyzacji, może je dostosować do szerokiego zakresu zadań.

 

Możliwość dostosowania do wielu urządzeń

 

Testy manualne mogą wymagać pracowników z doświadczeniem na różnych urządzeniach, takich jak znajomość różnych systemów operacyjnych telefonów, w tym Android i iOS, jeśli budujemy aplikację mobilną.

Zautomatyzowane oprogramowanie może to uwzględnić i przetestować na wielu urządzeniach, aby zapewnić, że aplikacja może konsekwentnie działać dobrze. Zespoły testujące znające te urządzenia mogą uznać ten proces za żmudny; automatyzacja po raz kolejny jest w stanie usprawnić zwykłe procesy testowania eksploracyjnego i testować każdą iterację jednocześnie.

 

Skrypty wielokrotnego użytku

 

Jeśli zespół testuje kilka wersji tego samego oprogramowania lub nawet wiele produktów o podobnej architekturze lub funkcjach, możliwe jest ponowne wykorzystanie skryptów z jednego cyklu testowego do następnego.

Jeśli są jakieś poprawki, które są niezbędne do zapewnienia kompatybilności, testerzy manualni mogą je wykonać znacznie szybciej niż pisanie zupełnie nowego skryptu.

Automatyzacja optymalizuje praktycznie każdy etap procesu testowania eksploracyjnego, jest łatwa do ustawienia w różnych konfiguracjach oprogramowania.

 

2. Wyzwania związane z automatyzacją testów eksploracyjnych

 

Proces ten wiąże się również z różnymi wyzwaniami, takimi jak:

 

Przedstawia tylko jedną stronę badań

 

Nie jest praktyczne ani mądre, aby zautomatyzować każdą kontrolę podczas testowania aplikacji, ponieważ istnieją pewne aspekty, które tylko tester ręczny może niezawodnie dostarczyć informacji zwrotnej.

Obejmuje to doświadczenie użytkownika, chociaż może być możliwe uzyskanie dokładnej analizy wydajności i testów obciążenia za pomocą automatyzacji, w zależności od wybranego oprogramowania.

Automatyzacja testów eksploracyjnych nie ma ludzkiego osądu i może działać najlepiej obok testera ręcznego dla niektórych kontroli.

 

Nierealistyczne oczekiwania co do możliwości

 

W podobny sposób, zautomatyzowane procedury testów eksploracyjnych mogą zapewnić ogromne korzyści dla aplikacji wraz z całym projektem.

Jednak takie podejście nie zawsze jest rozwiązaniem. Organizacje, które w dużej mierze polegają na automatyzacji na każdym etapie, mogą mieć niepełną perspektywę oprogramowania.

Automatyzacja identyfikuje problemy, ale zespoły testujące i deweloperskie są odpowiedzialne za ich naprawę. Ważne jest, aby zdefiniować nadrzędną strategię automatyzacji, aby każdy w projekcie rozumiał jej możliwości i ograniczenia.

 

Wyższe wymagania dotyczące umiejętności

 

Automatyzacja zazwyczaj obejmuje wiedzę, jak wykonywać złożone kontrole, wraz z wiedzą, jak je zaprogramować i faktycznie zautomatyzować. Często wymaga to lat doświadczenia w pisaniu skryptów, chociaż oprogramowanie do automatyzacji może pomóc w znacznej optymalizacji tych procesów.

Bardzo ważne jest, aby firma rekrutowała testerów o zróżnicowanych i solidnych umiejętnościach, co ułatwi skuteczną automatyzację.

Testerzy doświadczeni w automatyzacji znają również funkcje, którym należy nadać priorytet podczas wybierania spośród dostępnych opcji oprogramowania firm trzecich, zapewniając zespołowi otrzymanie dobrego produktu.

 

Niewłaściwe strategie i komunikacja

 

Komunikacja spójnej strategii jest najważniejsza dla każdej udanej automatyzacji; programiści, testerzy, a nawet kierownicy projektu muszą być na tej samej stronie podczas testów.

Zespoły muszą współpracować, aby określić zakres i harmonogram swoich najbliższych procedur. Jest to prawdziwe w każdym procesie testowania, ale jest szczególnie istotne ze względu na dodatkowe złożoności automatyzacji. Lepsze linie komunikacyjne i brak silosów informacyjnych pozwalają Twoim zespołom na bardziej efektywne prowadzenie testów.

 

Wybór właściwego oprogramowania do automatyzacji

 

Automatyzacja zazwyczaj polega na wyborze aplikacji innej firmy, która jest zgodna z celami testowymi zespołu. Każda opcja ma inne plany cenowe i funkcjonalność. Może to być znaczący długoterminowy wydatek, nawet jeśli oprogramowanie z powodzeniem wykonuje testy automatyczne, dostarczając jednocześnie znaczną ilość wartości.

Istnieje wiele darmowych opcji, które oferują imponującą funkcjonalność porównywalną z alternatywami premium. Ważne jest, aby zespół testujący zbadał wszystkie dostępne opcje, w tym darmowe oprogramowanie.

 

Wnioski: Automatyzacja testów eksploracyjnych a ręczne testy eksploracyjne

 

Istnieje niewiele projektów, które korzystają z całkowicie ręcznego testowania lub całkowicie zautomatyzowanego testowania, ponieważ aplikacje wszelkiego rodzaju działają lepiej z kombinacją obu.

Podczas gdy testy automatyczne mogą zoptymalizować proces dla zespołów zajmujących się rozwojem i zapewnieniem jakości, niektóre aspekty projektu wymagają ręcznych testów eksploracyjnych; jest to jedyny sposób na uzyskanie informacji zwrotnej od użytkownika.

Z czasem więcej organizacji pracuje nad wdrożeniem hiperautomatyzacji, procesu, który ma na celu inteligentną maksymalizację automatyzacji, zapewniając biznesowi wydajną strategię – może to nadal istnieć obok testowania ręcznego.

Automatyzacja testów staje się bardziej dostępna dla firm ze względu na zwiększoną powszechność oprogramowania do automatyzacji, zwłaszcza z kilkoma darmowymi opcjami dostępnymi z dużą ilością funkcji. Ułatwia to firmom przyjęcie podejścia łączącego ręczne i zautomatyzowane testy eksploracyjne.

Rosnąca popularność Agile (techniki zarządzania projektami, która skupia się na przyrostowym, ale znaczącym postępie) w rozwoju również była czynnikiem, ponieważ wymaga ona krótkich cykli testowych. Połączona strategia testowania mogłaby pomieścić tę i różne inne strategie rozwoju, takie jak ciągła integracja, która podobnie wymaga powtarzania testów, aby zapewnić sukces w wielu iteracjach tego samego oprogramowania.

 

Czego potrzebujesz, aby rozpocząć Testy Eksploracyjne

 

Warunkami wstępnymi testowania eksploracyjnego są:

 

1. Jasne cele badania

 

Chociaż testowanie eksploracyjne jest synonimem wolności i czasami mylone jest z testowaniem ad hoc, to jednak nadal odbywa się ono według określonych zasad lub definiowalnych celów. Jedynym sposobem dla zespołu QA, aby z powodzeniem poruszać się po prawie każdej strukturze testowej jest znajomość oczekiwanego wyniku każdego testu, zwłaszcza, że testerzy zazwyczaj sami projektują te kontrole.

 

2. Kreatywni, intuicyjni testerzy

 

Testy eksploracyjne skupiają się na projektowaniu nowych i kreatywnych testów, które mogą odkryć problemy z aplikacją. Nawet testerzy z ograniczonym doświadczeniem mogą to zrobić, zakładając, że rozumieją oprogramowanie.

Ważne jest, aby testerzy rozumieli aplikację i sposób jej działania; pozwala im to intuicyjnie opracować szereg przydatnych kontroli.

 

3. Spójna dokumentacja

 

Każdy rodzaj testów musi mieć silną dokumentację, aby upewnić się, że każdy członek zespołu podąża za oczekiwanym harmonogramem testów i że nikt przypadkowo nie powtarza kontroli.

Jest to istotny aspekt komunikacji w jednym dziale i w kilku, np. programiści wymagają regularnych aktualizacji testów, aby dowiedzieć się, jak naprawić problemy.

 

4. Perspektywa klienta

 

Testy eksploracyjne obejmują wiele strategii i scenariuszy, w tym te, które odzwierciedlają, jak użytkownicy będą praktycznie angażować się w aplikację. Ważne jest, aby zespoły testujące brały to pod uwagę podczas sprawdzania, nawet jeśli nie przeprowadzają testów opartych na scenariuszach.

Przyjęcie tego pozwala testerowi podejść do testowania z różnych perspektyw, poprawiając jakość tych kontroli.

 

5. Oprogramowanie do zautomatyzowanego testowania

 

Ponieważ zespół może prawdopodobnie zautomatyzować znaczną część testów, które projektuje, ważne jest, aby mógł nabyć wysokiej jakości oprogramowanie do testów automatycznych przed etapem wykonania.

Programiści i zespół testujący mogą wykorzystać swoje zrozumienie projektu, aby określić aplikację strony trzeciej, która odpowiadałaby ich własnym wymaganiom.

 

Proces testów eksploracyjnych

 

Konkretne kroki w przypadku testów eksploracyjnych są następujące:

 

1. Sklasyfikuj procedurę badawczą

 

Pierwszym krokiem testów eksploracyjnych jest zrozumienie przez odpowiednich członków zespołu, w jaki sposób mogą podejść do tych kontroli, np. poprzez sklasyfikowanie wspólnych błędów i przeprowadzenie analizy przyczyn źródłowych.

To tutaj testerzy sami rozwijają swoje pomysły na testy; w zależności od dokładnej metodologii, mogą również zaprojektować kartę testu.

Określa to zakres i testy dla danej sesji lub dnia roboczego.

 

2. Rozpoczęcie testów

Chociaż dokładne parametry (takie jak czas trwania każdego testu lub całej sesji) zależą od własnych preferencji zespołu i wymagań projektu, wszystkie eksploracje mają pewne wspólne cechy.

Po sklasyfikowaniu odpowiednich kontroli, pracownicy zapewnienia jakości przystępują do przeprowadzania badań i zapisywania wszelkich wyników.

Jeśli kontrole wymagają automatyzacji, testerzy mogliby ustawić to tak, aby działało w nocy lub monitorować to samodzielnie w ciągu dnia.

 

3. Przegląd wyników

 

Kolejnym etapem jest przegląd wyników, porównanie ich z wynikami domyślnymi i oczekiwanymi. Gdyby w wyniku tych testów pojawiły się znaczące nieoczekiwane odchylenia jakiegokolwiek rodzaju, testerzy mogliby powtórzyć kontrolę lub natychmiast zacząć kombinować, jak to naprawić. Sugestie, które przekazują deweloperom, mogą mieć kluczowe znaczenie dla określenia właściwego podejścia – a ich raporty o błędach mogą to szczegółowo określić.

 

4. Sprawozdanie z badania

 

Po licytacji wyników testów, zespół zapewnienia jakości zaczyna przeglądać samą procedurę testową i wykorzystuje to do określenia, czy ich podejście do testów eksploracyjnych było odpowiednie.

W tym raporcie podsumowującym badanie można nawet stwierdzić, że podczas kontroli wystąpiły błędy operacyjne, które wymagają ponownego badania. Zespół testujący może również sprawdzić aplikację ponownie po naprawieniu tych problemów przez deweloperów, aby określić, czy były one udane.

 

Najlepsze praktyki dla testów eksploracyjnych

 

Do najbardziej efektywnych praktyk testowania eksploracyjnego należą:

 

1. Łączenie testerów w pary

Wiele form testów eksploracyjnych korzysta z tego, że testerzy pracują razem – to jeszcze bardziej usprawnia proces i pozwala na uzyskanie wielu perspektyw tych samych kontroli.

Testowanie w parach pozwala również uniknąć możliwości widzenia tunelowego, zachęcając do bardziej kreatywnego projektowania testów.

Kilka osób pracujących nad tymi samymi testami może prowadzić do większej dokładności w całym zespole, a podział pracy pomaga również znacznie przyspieszyć testowanie dla całego zespołu.

 

2. Mieszanie testów manualnych i automatycznych

 

Niektóre firmy wciąż zmagają się z przyjęciem automatyzacji, podczas gdy inne nadużywają jej, nawet gdy ręczne perspektywy mogą być bardziej korzystne. Zrównoważenie tych kontroli razem pozwala zespołowi testującemu pokryć więcej podstaw i zapewnić jakość w całej aplikacji, w tym dla bardziej subiektywnych aspektów, takich jak interfejs oprogramowania.

Przeprowadzanie testów manualnych i automatycznych razem jest jedynym sposobem na zagwarantowanie pełnego pokrycia testami każdej cechy lub funkcji.

 

3. Zrozumienie rynku

 

Ważne jest, aby testerzy znali zarówno swoją grupę docelową, jak i konkurencję podczas procesu testowania; pomaga im to ocenić, jak ludzie prawdopodobnie zareagują na obecną funkcjonalność aplikacji.

Pewne funkcje mają wysokie zapotrzebowanie, a zespół testujący może skorzystać z nadania im priorytetów podczas kontroli. Chociaż muszą też utrzymywać szerokie pokrycie testowe. To może określić kierunek testów, a także potencjalny sukces oprogramowania w momencie premiery.

 

4. Wykorzystanie rzeczywistych urządzeń do testowania

 

Zespoły testujące oprogramowanie mogą korzystać z emulatorów, aby ułatwić sobie przeprowadzanie kontroli eksploracyjnych; może to być przydatne, ale rzadko odzwierciedla praktyczne środowisko użytkownika.

Prawdziwe urządzenia pomagają zwiększyć wiarygodność testów eksploracyjnych poprzez generowanie bardziej realistycznych doświadczeń – emulatory są niedoskonałe i mogą mieć błędy, które nie występują u klientów.

Emulacja to szybki sposób na przetestowanie wielu platform, ale nie zastąpi ona rzeczywistych urządzeń.

 

Rodzaje danych wyjściowych z testu eksploracyjnego

 

Istnieją różne wyjścia, które testerzy mogą otrzymać po przeprowadzeniu kontroli, w tym:

 

1. Wyniki badań

 

Same wyniki przyjmują wiele form, ponieważ testy eksploracyjne mogą obejmować setki unikalnych testów. Wyniki te stanowią większość wyników procedury testowej, oferując istotne informacje o stanie aplikacji i jej zdolności do zaspokojenia potrzeb użytkownika.

Testerzy mogli ponownie sprawdzić system i zatwierdzić informacje po otrzymaniu tych wyników, aby określić swoje następne działania.

 

2. Dzienniki badań

 

Własne logi aplikacji często ujawniają błędy i problemy podczas procesu testowania; dostarczają one najsilniejszych wskazówek, dlaczego oprogramowanie nie przeszło testu. Starsi testerzy są szczególnie biegli w interpretacji logów aplikacji, co pozwala im zidentyfikować przyczynę skomplikowanych problemów.

Im więcej informacji testerzy uzyskają z tych logów, tym bardziej są w stanie pomóc deweloperom.

 

3. Sprawozdania z badań

 

W zależności od procedury automatyzacji zespołu, ich wyjścia mogą automatycznie wygenerować raport o błędzie. Przedstawia on wszelkie błędy występujące w aplikacji, ewentualnie wraz z ich przyczynami i innymi danymi istotnymi dla deweloperów.

Testerzy mogą wykorzystać to do zaoferowania własnej opinii na temat tego, czy oprogramowanie jest gotowe do uruchomienia, co jest powszechnie znane jako decyzja go/no-go.

 

Przykłady testów eksploracyjnych

 

Oto trzy przykłady, jak firma może wykorzystać testy eksploracyjne:

 

1. Aplikacja do gier mobilnych

 

Jeśli firma z branży gier komputerowych chce wydać dużą aktualizację aplikacji mobilnej, testerzy eksploracyjni mogą sprawdzić zarówno stare, jak i nowe funkcje, aby określić, czy aplikacja jest nadal stabilna. Może to zwiększyć złożoność oprogramowania do tego stopnia, że nie będzie ono działać na niektórych urządzeniach.

Testerzy pracują nad zminimalizowaniem skutków tego zjawiska, zapewniając jednocześnie użyteczność na jak największej liczbie platform.

Testerzy eksploracyjni dokładnie sprawdzają grę i jej wiele skomplikowanych scenariuszy, aby upewnić się, że każda funkcja działa zgodnie z przeznaczeniem; ten proces zwykle wymaga testera manualnego.

 

2. Strona internetowa usługodawcy

 

Strony internetowe przechodzą również testy eksploracyjne, aby upewnić się, że działają zarówno dla użytkowników, jak i personelu, więc testerzy mogą zacząć od zalogowania się na stronie. Testuje to zdolność witryny do tworzenia nowych profili użytkowników i sprawdza, czy użytkownicy nie mają dostępu do funkcji administracyjnych.

Następnie testerzy przechodzą do sprawdzenia usługi, która może mieć formę rezerwacji terminu lub złożenia zamówienia. Następnie dokończą zakup, aby upewnić się, że kasa działa prawidłowo, po czym przyjrzą się potwierdzeniu mailowemu zamówienia i historii konta.

 

3. System zarządzania szpitalem

 

Aplikacje i systemy wszelkiego rodzaju mogą skorzystać z testów eksploracyjnych. W przypadku systemów zarządzania szpitalami, tester może sprawdzić, jak moduł płatności współgra z innymi funkcjami.

Wyższe poziomy integracji mogą prowadzić do istotnych błędów bez rygorystycznych testów. Kontrole te mogą obejmować diagram architektoniczny śledzący wiele komponentów systemu i ich wzajemne powiązania.

Testerzy zwracają również uwagę na problemy występujące w poprzednich iteracjach systemu i specjalnie testują, czy są one nadal obecne, podejmując szybkie działania, jeśli odkryją jakieś błędy.

 

Rodzaje błędów i bugów wykrywanych za pomocą testów eksploracyjnych

 

Błędy, które testerzy mogą odkryć podczas testów eksploracyjnych obejmują:

 

1. Niezgodność cech

Niektóre funkcje w aplikacji mogą nie współdziałać ze sobą w oczekiwany sposób – co może prowadzić do tego, że użytkownicy nie będą mogli dokonać zakupów lub korzystać z aplikacji. Testerzy sprawdzają funkcje w izolacji i w tandemie ze sobą, aby upewnić się, że wszystko do siebie pasuje.

 

2. Niewłaściwy projekt UI

Interfejs użytkownika aplikacji określa dokładnie, jak ktoś korzysta z oprogramowania. Na przykład, jeśli ważne funkcje nie są widoczne dla klientów, mogą oni nie zauważyć ich istnienia, co ogranicza ich radość z korzystania z aplikacji.

Ręczne testowanie UI identyfikuje i koryguje projekt nieprzyjazny dla użytkownika.

 

3. Błędy uwierzytelniania

Wiele aplikacji i stron internetowych pozwala na utworzenie profilu użytkownika z określonymi uprawnieniami. Istotne jest, aby testerzy sprawdzili, czy przeciętni użytkownicy mogą w jakiś sposób uzyskać dostęp do wrażliwych danych lub nawet funkcji administracyjnych podczas korzystania z oprogramowania w nieoczekiwany sposób.

 

4. Martwy kod

Testerzy mogą znaleźć przestarzały kod wciąż obecny w aplikacji, który może być nawet przyczyną zauważalnych problemów z wydajnością. Martwy kod nadmiernie komplikuje wewnętrzne działanie aplikacji i może powodować błędy, których można uniknąć. Identyfikacja i optymalizacja tego sprawia, że oprogramowanie jest bardziej responsywne dla personelu i użytkowników.

 

Wspólne metryki testów eksploracyjnych

 

Do typowych metryk, z którymi testerzy mogą się spotkać podczas swoich testów eksploracyjnych, należą:

 

1. Metryki badania wydajności

Testy eksploracyjne, które sprawdzają ogólną wydajność aplikacji, mogą skutkować szerokim zakresem metryk. Może to obejmować minimalny, średni i maksymalny czas odpowiedzi wraz z odsetkami niepowodzeń i sukcesów w celu określenia stabilności.

 

2. Metryka pokrycia badaniami

Pokrycie testowe jest ważne, ponieważ określa jak wiele kategorii i aspektów aplikacji obejmują testy. Procent pokrycia wymagań, na przykład, ocenia czy są jakieś funkcje, które wymagają dalszych rund testowych.

 

3. Ogólna skuteczność badania

Śledzenie liczby udanych i nieudanych kontroli pomaga testerom zorientować się w ogólnym stanie aplikacji. Na dodatek zespół może śledzić, ile z wykrytych błędów jest krytycznych.

 

4. Rozkład wad

W podobny sposób sprawdzanie rozkładu defektów pokazuje komponenty lub funkcje najbardziej podatne na błędy. Mogą to być części aplikacji, które często wchodzą w interakcje z innymi, co sprawia, że konieczne jest nadanie tym testom priorytetu.

 

5. Metryka regresji

Eksploracyjne testy regresyjne pozwalają testerom zobaczyć jak zachowują się różne iteracje tego samego oprogramowania i jak to może wpłynąć na wydajność.

Defect injection rate i defects per build to konkretne metryki, które w tym pomagają.

 

Wyjaśnienie pewnych nieporozumień: Testy Eksploracyjne vs. Testy Ad Hoc.

 

Z silnym naciskiem na wolność testera, niektórzy ludzie często mylą testy eksploracyjne z testami ad hoc. Te dwa formaty mają kilka kluczowych podobieństw, ale ostatecznie służą różnym celom.

 

1. Czym jest testowanie ad hoc?

 

Testowanie ad hoc jest całkowicie niestrukturalnym podejściem, które zrywa z konwencjonalnym projektowaniem testów, aby znaleźć defekty, które w przeciwnym razie mogłyby się nie pojawić.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Ta forma testowania zazwyczaj nie zawiera żadnej dokumentacji, co utrudnia odtworzenie problemów, chyba że tester jest absolutnie pewien ich przyczyny.

Jednym z przykładów jest “małpie testowanie”, sprawdzanie, które obejmuje losowe wejścia i ostatecznie ma na celu złamanie systemu.

Podobnie jak w przypadku testów eksploracyjnych, wielu testerów ad hoc pracuje w parach, aby wykonać te kontrole; poprawia to ich wiarygodność. Podejście ad hoc może być przydatne po wykonaniu formalnych testów, aby upewnić się, że kontrole uwzględniają każdą możliwość; jest to również pomocne, gdy mamy ograniczony czas na przeprowadzenie dalszych testów. Przy odpowiednim wykonaniu, testy ad hoc są bardzo korzystne.

 

2. Różnice między testami eksploracyjnymi a testami ad hoc

 

Testy ad hoc zazwyczaj nie zawierają formalnej dokumentacji. Stanowi to wyraźny kontrast z testami rozpoznawczymi, gdzie improwizowany charakter tych kontroli sprawia, że prowadzenie dokumentacji jest jeszcze ważniejsze.

Testy eksploracyjne wykorzystują większą różnorodność formalnych technik testowania, podczas gdy kontrole ad hoc unikają tego poprzez szukanie poza konwencjonalną etykietą testową. To pomaga im odkryć błędy, których w przeciwnym razie testerzy nigdy by nie znaleźli.

Testy eksploracyjne mają jasne cele i granice, ale nadal pozwalają członkom zespołu na stosowanie kreatywnych testów. Testy ad-hoc zazwyczaj nie mają zdefiniowanych celów końcowych poza popychaniem oprogramowania w dowolny sposób. Testowanie ad hoc często wymaga również wcześniejszej znajomości oprogramowania i jego funkcji, podczas gdy testowanie eksploracyjne włącza uczenie się aplikacji do swoich zwykłych procesów.

 

Testy eksploracyjne w Agile

 

Metodyka Agile silnie promuje ciągłe doskonalenie. Oznacza to, że dobrze łączy się z testami eksploracyjnymi, zwłaszcza, że rośnie zapotrzebowanie na częste aktualizacje oprogramowania.

Połączenie testów eksploracyjnych z Agile może dać członkom zespołu silniejszą strukturę testowania poprzez włączenie planowania wydania i realizacji sprintu do ich harmonogramu. Firma, która stosuje techniki Agile, może wykorzystać to jeszcze bardziej, łącząc to z testami eksploracyjnymi; jest to świetny sposób na przetestowanie każdego pojedynczego komponentu aplikacji. Ponieważ testerzy mogą przeprowadzać kontrole eksploracyjne bez skryptów, oszczędza to zarówno pracownikom działu zapewnienia jakości, jak i deweloperom wiele cennego czasu.

Zautomatyzowane testy eksploracyjne potęgują te oszczędności, pomagając firmom sprawdzać najnowsze iteracje aplikacji znacznie szybciej, potencjalnie z dnia na dzień. Kontrole eksploracyjne dostarczają szybkich, użytecznych wyników, a programiści mogą podjąć działania w celu wprowadzenia niezbędnych zmian w ramach następnego sprintu.

Ręczne testy eksploracyjne nadal oferują wiele korzyści w połączeniu z Agile, ze względu na zdolność do identyfikacji problemów, które zautomatyzowane podejście mogłoby przegapić. Inne formy testowania zajmują po prostu zbyt dużo czasu lub dostarczają zbyt mało korzyści, aby wygodnie zmieścić się w ramach Agile. Dzięki kontrolom eksploracyjnym można mieć pewność, że każdy etap Agile znacząco poprawia oprogramowanie i jego funkcjonalność.

 

7 błędów i pułapek, których należy unikać przy wdrażaniu testów eksploracyjnych

 

Oto siedem powszechnych błędów, które firmy często popełniają podczas wdrażania testów eksploracyjnych, wraz z tym, jak firmy mogą uniknąć tych problemów:

 

1. Brak równowagi między testami ręcznymi a automatycznymi

 

Ustalenie, które testy najlepiej sprawdzają się przy ręcznym sprawdzaniu, a które przyniosłyby korzyści z automatyzacji, wymaga czasu, ale pozwala zespołom testować o wiele bardziej efektywnie.

Automatyzacja zbyt wielu testów może spowodować, że aplikacja będzie nieporęczna lub nie będzie przyjazna dla użytkownika z powodu braku ludzkiego testera.

 

2. Ograniczenia czasowe

Testy eksploracyjne są szybsze niż wiele innych form testowania, ale rzeczywistość terminów projektu oznacza, że wciąż istnieją ograniczenia co do liczby testów, które zespół może przeprowadzić.

Zarządzanie czasem i zaangażowanie w pokrycie testów pomaga zespołowi testującemu wykonać jak najwięcej kontroli w wielu szerokich kategoriach.

 

3. Nieelastyczne testery

Podczas gdy testerzy eksploracyjni nie wymagają wcześniejszej znajomości oprogramowania ani szczególnie głębokich umiejętności, kontrole wciąż polegają na zdolnościach i inicjatywie poszczególnych członków zespołu.

Kierownik projektu musi mądrze przydzielić te role testowe, rezerwując je w razie potrzeby dla bardziej kreatywnych i intuicyjnych członków zespołu.

 

4. Trudności z odtworzeniem niepowodzeń

Nie zawsze jest oczywiste, które działania przyczyniają się do niepowodzenia testu; może być również niejasne, które aspekty aplikacji są winne.

Dlatego też wiele podejść eksploracyjnych polega na łączeniu testerów w pary lub nawet bezpośrednim nagrywaniu ekranu testera, aby lepiej zrozumieć problemy i ich dokładne przyczyny.

 

5. Niejasna dokumentacja

Niezależnie od tego, czy jest to zautomatyzowany raport błędów, czy ręczny zapis zakończonych testów, dobra dokumentacja ułatwia deweloperom działanie na podstawie ustaleń zespołu testującego.

Zespół testowy musi zobowiązać się do zapewnienia wysokiej jakości prowadzenia dokumentacji podczas każdej kontroli, oferując jak najwięcej szczegółów w każdym raporcie.

 

6. Wysokie oczekiwania

Testowanie eksploracyjne jest korzystne dla prawie każdego projektu oprogramowania, ale wciąż jest ograniczone w swoim zakresie – działa najlepiej w połączeniu z innymi metodami testowania.

Zespoły testujące muszą wykonywać te kontrole obok zwykłych skryptowych testów; jest to jedyny sposób, w jaki działy zapewnienia jakości mogą zapewnić konsekwentnie szerokie pokrycie testów.

 

7. Niewłaściwa automatyzacja

Ważne jest, aby zespół testujący i kierownik projektu rozumieli, które oprogramowanie do automatyzacji zapewnia najwięcej korzyści dla danej aplikacji.

Różne opcje stron trzecich oferują własne unikalne cechy, więc wybór zespołu może określić sukces ich automatyzacji procesów robotycznych; muszą rozważyć każdą opcję przed nimi.

 

5 najlepszych darmowych narzędzi do testów eksploracyjnych

 

Pięć najlepszych narzędzi do testów eksploracyjnych, z których zespoły zapewnienia jakości mogą korzystać za darmo, to:

 

1. ZAPTEST FREE Edition

ZAPTEST Free dostarcza funkcjonalność na poziomie premium przy absolutnie zerowych kosztach, pozwalając każdej organizacji czerpać korzyści z łatwego wdrożenia testów eksploracyjnych.

Ta aplikacja może zautomatyzować każdą platformę, urządzenie i przeglądarkę dzięki innowacyjnej technologii 1SCRIPT.

ZAPTEST zapewnia również elastyczną automatyzację RPA, pozwalając na połączenie tego z podejściem manualnym.

 

2. XRAY Exploratory App

XEA pozwala użytkownikom na tworzenie kompleksowych kart testów i łatwe rejestrowanie ich przebiegu, usprawniając etap zgłaszania błędów w testach eksploracyjnych.

Ta opcja skupia się całkowicie na perspektywie użytkownika i oferuje scentralizowany hub wyników do aktualizacji innych testerów.

Jednak XRAY nie posiada obecnie zintegrowanej automatyki, co może ograniczyć jego długoterminową skuteczność.

 

3. Magnes na robale

Rozszerzenie przeglądarki, które oferuje dokładne testy eksploracyjne, Bug Magnet pozwala testerom sprawdzić przypadki krawędziowe i inne problematyczne wartości.

Rozszerzenie to zapewnia również prostą integrację atrap tekstu, adresów e-mail i wielu zestawów znaków.

Jest to jednak dostępne tylko dla przeglądarek opartych na Firefoxie i Chrome, co czyni go mniej uniwersalnym wyborem niż jego konkurenci.

 

4. Plany testów w środowisku Azure

Azure Test Plans jest kluczową częścią platformy Microsoft Azure i umożliwia testerom przechwytywanie bogatych danych w wielu scenariuszach.

Opcja ta jest odpowiednia zarówno dla aplikacji desktopowych, jak i internetowych, zapewniając jednocześnie możliwość śledzenia end-to-end, która ma wyraźny zapis rozwoju oprogramowania.

Jednak takie podejście często wymaga głębszej integracji z Azure, stąd odbywa się kosztem elastyczności.

 

5. Testiny

Testiny specjalizuje się w ręcznych testach eksploracyjnych, oferując inteligentny edytor, który pozwala testerom projektować kontrole za pomocą struktury drzewiastej dla maksymalnej elastyczności.

Każda zmiana w przebiegu lub przypadku testowym pozostaje w historii aplikacji, aby zapewnić pełną odpowiedzialność i identyfikowalność.

Jest to jednak rozwiązanie darmowe tylko dla małych zespołów i projektów open-source.

 

Kiedy powinieneś używać narzędzi Enterprise vs. Free Exploratory Test?

 

Podczas gdy testy eksploracyjne są opłacalną inwestycją, a aplikacje premium zwykle oferują większą funkcjonalność, istnieje wiele darmowych opcji, które zapewniają więcej niż wystarczające funkcje.

Testy eksploracyjne mogą być znaczącym wydatkiem operacyjnym, jeśli zobowiązujesz się do modelu premium, ale nie każda firma zajmująca się tworzeniem oprogramowania lub zespół ma na to pieniądze. Wybór najlepszego oprogramowania firm trzecich często zależy od konkretnych wymagań firmy.

Płatne rozwiązanie może być jedynym sposobem na zaspokojenie potrzeb tego projektu; zespół musi zbadać różne wybory, zanim zobowiąże się do aplikacji.

Firmy z mniejszymi zespołami mogą najbardziej skorzystać z darmowych narzędzi do testowania, ponieważ wiele opcji jest darmowych dla ograniczonej liczby użytkowników.

Ewentualnie mogą wybrać opcje bez tego ograniczenia i takie, które są w stanie pomieścić skalę zespołu testującego. Może to sprawić, że jeszcze bardziej opłacalne będzie sparowanie testerów eksploracyjnych, aby zapewnić dokładniejsze wyniki – zespół będzie naturalnie wymagał mniejszej liczby profili użytkowników.

Wiele serwisów oferuje darmową wersję próbną swojego oprogramowania, dzięki czemu organizacje mogą sprawdzić, czy spełnia ono ich potrzeby; zazwyczaj trwa to tylko kilka tygodni.

 

Lista kontrolna testów eksploracyjnych, wskazówki i sztuczki

 

Istnieje wiele dodatkowych wskazówek, z których testerzy mogą się rozliczać, rozpoczynając kontrole eksploracyjne, w tym:

 

1. Odpowiednio podzielić cechy i moduły

Aby uniknąć nieporozumień, zespoły testujące powinny zrobić jasną listę każdej funkcji i kontroli, które zamierzają uruchomić. Oznacza to również zapewnienie, że testy są odpowiednio rozłożone na funkcje oprogramowania.

Aby uzyskać najlepsze wyniki, najważniejsze jest, aby zespół testujący negocjował, którzy członkowie przeprowadzają każdy test w oparciu o ich odpowiednie umiejętności i mocne strony.

 

2. Praca nad zrozumieniem oprogramowania

Etap uczenia się jest krytyczną częścią testów eksploracyjnych. Oznacza to, że testerzy muszą aktywnie zaangażować się w oprogramowanie i dowiedzieć się, jak ono działa, zanim opracują testy.

Poznawanie wewnętrznego działania tego oprogramowania może być procesem opartym na współpracy, zapewniającym lepsze zrozumienie w całym zespole. To pozwala testerom opracować lepsze kontrole i przypadki testowe.

 

3. Określenie obszarów problematycznych

Każda aplikacja ma cechy lub komponenty, które krzyżują się z innymi. W miarę jak oprogramowanie staje się coraz bardziej złożone, istnieje większe prawdopodobieństwo wystąpienia błędów; może to wymagać większej ilości testów. Zespół musi aktywnie pracować, aby dowiedzieć się, które elementy wymagają dodatkowej pomocy.

Mogą stosować określone trasy testowania, które najlepiej odzwierciedlają potrzeby aplikacji i ogólne priorytety zespołu w zakresie testowania.

 

4. Zacznij od podstawowych scenariuszy użytkownika

Zespoły zapewnienia jakości mogą przeprowadzać testy eksploracyjne w dowolnej kolejności, jeśli jest to konieczne, ale bardziej pomocne może być rozpoczęcie od łatwiejszych kontroli przed zagłębianiem się w bardziej skomplikowane funkcje.

Pozwala to na płynny progres pod względem złożoności, dając testerom szansę na zrozumienie oprogramowania. Pomaga również przetestować, czy podstawowe funkcje działają zgodnie z oczekiwaniami.

 

5. Łączenie testerów w pary

Parowane testy eksploracyjne zarówno usprawniają, jak i walidują etap zapewniania jakości, pozwalając testerom pracować z absolutną pewnością w każdym sprawdzeniu. Współpraca czyni każdą formę testowania bardziej efektywną poprzez poprawę znajomości oprogramowania przez każdego członka zespołu.

Mogą również dostarczyć raporty o błędach z dużo większą głębią ze względu na ich indywidualną perspektywę, dając programistom więcej informacji do pracy.

 

6. Przeprowadzić kilka testów

Możliwość ponownego przetestowania aplikacji przez zespół zależy od harmonogramu i terminów, które przed nim stoją. Ale jeśli jest to możliwe, podwójne sprawdzenie szczególnie problematycznych komponentów może być przydatne.

Ponadto, powtarzanie testów może zweryfikować, że wcześniej wykryty problem został naprawiony i nie będzie miał dalszego wpływu na oprogramowanie. Ta staranność jest czasami konieczna, aby mieć pewność, że testowanie zakończy się sukcesem.

 

Wniosek

 

Testy eksploracyjne mają wiele do zaoferowania firmom zajmującym się tworzeniem oprogramowania wszelkiego rodzaju, działając jako uzupełnienie testów skryptowych i wielu innych kontroli.

Z pomocą testów eksploracyjnych, zespoły zapewnienia jakości mogą testować aplikacje według wyższych standardów, poprawiając jakość końcowego oprogramowania i pomagając programistom naprawić ewentualne błędy, jeśli takie istnieją.

Połączenie ręcznych i automatycznych testów eksploracyjnych może zapewnić najwięcej korzyści, pozwalając na zwrócenie równej uwagi na wszystkie komponenty oprogramowania.

Jeśli Twoja firma wymaga oprogramowania do automatyzacji eksploracji, ZAPTEST FREE Edition oferuje znacznie szerszą i bardziej elastyczną funkcjonalność niż inne aplikacje premium, pozwalając testerom na łatwą optymalizację tych kontroli.

 

FAQs i zasoby

 

1. Najlepsze kursy z zakresu automatyzacji testów eksploracyjnych

 

Zarówno nowi, jak i doświadczeni testerzy eksploracyjni mogliby skorzystać z kursów doskonalących ich umiejętności. Obejmuje to zorientowanie się, jak podejść do nowego oprogramowania.

Przydatne kursy, które mogą w tym pomóc to:

– Udemy’s Complete 2023 Software Testing Bootcamp; to uczy szerokie testowanie oprogramowania w ciągu 28 godzin.

– Testy eksploracyjne Coverosa; koncentruje się na tym, jak opracować karty i zastosować testy eksploracyjne do API.

– Polteq’s Two-Day Exploratory Testing Training; to spojrzenie na to, jak testy eksploracyjne działają w kontekście Agile.

– LinkedIn’s Exploratory Testing; pokazuje, jak nowoczesne testowanie oprogramowania objęło kontrole eksploracyjne.

– Coursera’s Introduction to Software Testing; pomaga to pierwszym testerom zrozumieć typowe procedury.

 

2. Jakie jest 5 najlepszych pytań na wywiad dotyczący testów eksploracyjnych?

 

Podczas rozmowy kwalifikacyjnej na stanowiska związane z testami eksploracyjnymi ważne jest, aby menedżerowie zatrudniający zadawali dobre pytania, aby dokładnie ocenić umiejętności i doświadczenie kandydata.

Pięć najważniejszych pytań, które należy zadać to:

– Włączając ich przydatność, jakie są główne różnice między testami skryptowymi i eksploracyjnymi?

– Jakie wyzwania napotkałeś jako tester eksploracyjny i jak je pokonałeś?

– Podaj przykłady testów eksploracyjnych, które najbardziej skorzystałyby z automatyzacji procesów robotycznych.

– Twoim zdaniem, jaka jest najistotniejsza umiejętność (techniczna lub inna) dla testera eksploracyjnego?

– Jakiej rady udzieliłbyś testerowi zmagającemu się ze zrozumieniem oprogramowania i sposobem jego sprawdzenia?

 

3. Najlepsze tutoriale na YouTube dotyczące testów eksploracyjnych

 

Istnieje wiele darmowych tutoriali dostępnych na portalach udostępniających filmy, takich jak YouTube, które mogą pomóc potencjalnym testerom zrozumieć jego podstawowe zasady. Niektóre z nich stanowią część serii, podczas gdy inne są pojedynczymi filmami zagłębiającymi się w temat.

Kanały, które oferują te tutoriale to m.in:

– The Testing Academy, dostarcza setki filmów wideo obejmujących każdy aspekt testowania oprogramowania.

– Software Testing Mentor, który podobnie oferuje obszerne filmy na temat podstaw testowania oprogramowania.

– QAFox, który zapewnia również rzeczywiste przykłady i projekty na żywo, aby uzupełnić wszystkie swoje filmy.

– SDET-QA Automation Techie, która ma kilka kompleksowych filmów na temat różnych podejść do testów.

– GlitchITSystem, który patrzy na różne strony internetowe z testami eksploracyjnymi, aby spróbować odkryć glitche.

 

4. Jak utrzymać testy eksploracyjne?

 

Dobrze przeprowadzone testy eksploracyjne zawierają mocną dokumentację, do której deweloperzy i przyszli testerzy mogą się odwoływać przy kolejnych iteracjach oprogramowania.

W przypadku znaczących aktualizacji aplikacji, ponowne przetestowanie jej podstawowych funkcji staje się konieczne, aby zapewnić, że te dodatki nie mają negatywnego wpływu na wcześniej istniejące funkcje.

Jest to jedyny sposób, aby zagwarantować, że testy eksploracyjne pozostaną skuteczne w dłuższej perspektywie. Pomaga również wziąć pod uwagę przyszłe plany, takie jak wstępne funkcje, podczas projektowania oryginalnej aplikacji i jej kontroli.

Pracownicy QA muszą odpowiednio zaplanować te testy i ustalić, kiedy należy ponownie sprawdzić aplikację; narzędzia do automatycznego testowania mogą w tym pomóc zespołowi.

 

5. Czy testowanie eksploracyjne to testowanie black-box?

Testy eksploracyjne są bardzo podobne do testów czarnej skrzynki, które odnoszą się do sprawdzania aplikacji poprzez przyglądanie się jej cechom bez bezpośredniej inspekcji kodu.

Nie ma wyraźnego ograniczenia co do rodzajów kontroli, które wchodzą w zakres testów eksploracyjnych; to podejście może obejmować każdy aspekt oprogramowania, w tym kod.

Jednym z kluczowych podobieństw między tymi dwoma typami testów jest brak wiedzy wstępnej testera. Testerzy czarnej skrzynki zwykle nie znają oprogramowania przed jego testowaniem, a testerzy eksploracyjni dowiadują się, jak działa oprogramowanie w ramach wstępnego badania.

Podczas gdy testy eksploracyjne w ogólności nie zawsze klasyfikują się jako testy czarnej skrzynki, prawdą jest, że istnieje znaczna ilość krzyżowania się tych dwóch podejść.

Download post as PDF

Alex Zap Chernyak

Alex Zap Chernyak

Founder and CEO of ZAPTEST, with 20 years of experience in Software Automation for Testing + RPA processes, and application development. Read Alex Zap Chernyak's full executive profile on Forbes.

Get PDF-file of this post