Rodzajów testowania oprogramowania czy aplikacji jest wiele i wciąż pojawiają się nowe, bardziej zaawansowane metody. W natłoku możliwości my postanowiliśmy się przyjrzeć technice bardzo prostej, bardzo losowej, ale jednocześnie takiej, która może uratować projekt od katastrofy.

Mówimy tu oczywiście o małpim testowaniu (ang. Monkey testing), które oprócz chwytliwej nazwy może też wychwycić parę błędów w kodzie. 🙂

Co to jest małpie testowanie

Według Słownika wyrażeń związanych z testowaniem (wersja 2.3.) małpie testowanie to:

Metoda testowania polegająca na losowym wyborze z szerokiego zakresu wejść i losowym naciskaniu przycisków, ignorując sposób, w jaki produkt powinien być używany.

bazie wiedzy na stronie testerzy.pl metoda małpiego testowania opisana została w opozycji do testowania ustrukturyzowanego:

Testowanie może być sformalizowane albo w pełni ad hocowe. Podejście ustrukturyzowane wymaga przemyślanego i formalnego podejścia do testów. Wśród podejść nieformalnych możemy wskazać między innymi małpie testowanie, które nie wymaga żadnych procedur, doświadczenia i jest traktowane jako losowe klikanie.

A zatem Monkey testing to technika stosowana do testowania oprogramowania aplikacji czy systemu, poprzez dostarczenie losowych danych i obserwacji czy system lub aplikacja ulegnie awarii. Ze względu na dużą dawkę przypadkowości w tej technice, wynik procesu testowania nie jest możliwy do przewidzenia.

Użyteczność małpiego testowania można wyjaśnić, używając scenariusza użytkowników. Wielu odbiorców będzie korzystało z aplikacji w sposób przewidziany przez producenta. Z pewnością jednak znajdą się tacy, którzy zaczną wprowadzać zbyt dużo danych, co może skutkować awarią. Badając każdy program, tester musi na niego spojrzeć z punktu widzenia odbiorcy, by w przyszłości zapobiec pojawieniu się błędów.

Małpie testowanie nie podąża za żadnym konkretnym wzorcem ani przypadkiem testowym. Nie daje również gwarancji na znalezienie błędu. Jego celem jest zbadanie aplikacji przy użyciu jak największej ilości danych wejściowych. Najczęściej używany jest, gdy nie ma zbyt dużo czasu na przetestowanie aplikacji lub wystarczających zasobów finansowych.

małpa biurko zabawka komputer

Skąd ta małpa w nazwie?

Używając tego rodzaju testowania, tester lub czasem programista, jest porównywany do małpy. Dlaczego? Można przypuszczać, że taka małpa posadzona przed komputerem zaczęłaby wstukiwać losowe dane bez żadnej wiedzy czy rozumienia tematu, czyli podobnie jak ma to miejsce w Monkey testing.

Rodzaje

Wyróżniamy dwa główne rodzaje małpiego testowania. Oczywiście wariacji może być znacznie więcej, jednak na potrzeby ogólnego zrozumienia tematu przedstawimy wam te podstawowe.

  • „Mądre małpowanie”

Ten rodzaj testowania wymaga znajomości systemu lub aplikacji. Testerzy znają funkcjonalność programu i dostarczają ważne dane wejściowe do wykonywania testów. Wiedzą też, które z tych danych są bardziej istotne. W przypadku wykrycia buga dysponują wystarczającą wiedzą, by w odpowiedni sposób go zaraportować. „Mądre małpowanie” wykonuje się, wykorzystując dane wejściowe generowane na podstawie przewidywanych statystyk użytkownika. Dobrze sprawdza się w testach obciążeń i wydajności.

  • „Głupie małpowanie”

W tym przypadku tester nie ma żadnej wiedzy o programie czy aplikacji, którą poddaje próbie. Nie wie też nic o poprawności danych wejściowych. Testuje aplikację czy program losowo i nie jest świadomy jej punktu startowego ani ją kończącego. „Głupie małpowanie” nie wymaga znajomości przeznaczenia programu czy interfejsu użytkownika, ale wciąż jest w stanie wykryć awarię środowiska lub sprzętu. Wykonuje się je bez danych wejściowych opartych na statystyce użytkownika.

Ten rodzaj testowania określa się również „nieświadomymi”.

 

wesoła małpa

Zalety małpiego testowania:

  • umożliwia identyfikację błędów, które mogłyby nie zostać zauważone, bo nie zostały zawarte w scenariuszu
  • jest łatwe do konfiguracji i wykonania, ze względu na losowość danych i testów
  • wykonywać je może osoba niepodsiadająca zbyt dużych umiejętności z zakresu testowania
  • jest dobrą metodą na weryfikację niezawodności oprogramowania
  • niski koszt wykonania
  • dobrze sprawdza się testach obciążeń i wydajności ze względu na swoją losowość i doraźność
  • używając odpowiednich narzędzi, proces ten można zautomatyzować
  • może je wykorzystać do testowania aplikacji komputerowych, internetowych czy mobilnych

 

smutna małpa

Wady małpiego testowania:

  • bywa czasochłonne; może zająć dużo czasu, nim bug zostanie wykryty
  • liczba wykrytych błędów jest mniejsza
  • analiza nieoczekiwanych błędów, znalezionych podczas testowania, jest bardzo trudna i długotrwała, czasem wręcz niemożliwa
  • testerzy mogą mieć spore trudności z określeniem dokładnych scenariuszy testowych i nie mogą zapewnić o dokładności przypadków testowych
Rezultat

Błędy zgłaszane w wyniku małpiego testowania wymagają szczegółowej analizy. Ponieważ w znacznej większości przypadków etapy odtwarzania błędów nie są znane, ich reprodukcja jest trudna. Powszechnie uważa się, iż najlepiej wykorzystywać tę technikę w późniejszej fazie testowania, gdy istnieje już pewien poziom pewności co do skuteczności aplikacji.

Mimo iż małpie testowanie jest chaotyczne, zaleca się zaplanowanie i wyznaczenie czasu na jego wykonanie. Możliwe, że początkowo testy nie wykryją żadnych nieprawidłowości, ale koniec końców mogą przyczynić się do odkrycia naprawdę poważnych błędów, jak wycieki pamięci czy awarie sprzętu.

Często zdarza się, że podczas „zwykłego” testowania ignoruje się niektóre przypadki, zakładając, że taki scenariusz się nie wydarzy. Gdy jednak to się stanie, może doprowadzić do poważnych konsekwencji (np. błąd o niskim priorytecie i wysokim poziomie ważności). Wykonywanie losowych, małpich testów może przyczynić się do zmniejszenia ryzyka wystąpienia takich sytuacji.

Jak widać małpie testowanie może okazać się całkiem użyteczne. Nie odwracajmy się więc od tego prostego rozwiązania, ponieważ może przynieść nam zaskakujące korzyści. 🙂

26
  •  
    7
    Shares
  • 7
  •  
  •  
  •