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

Większość rodzajów testowania oprogramowania wykorzystuje starannie zdefiniowany plan testów w celu zapewnienia pokrycia. Jednakże, podczas gdy parametry te obejmują wiele możliwości korzystania z oprogramowania, nie zawsze będą one naśladować zachowanie użytkownika, który nie jest zaznajomiony z aplikacją i po prostu próbuje wejść z nią w interakcję w sposób eksploracyjny: Wchodzimy w testowanie na małpach.

W tym artykule przyjrzymy się wszystkim kwestiom związanym z testowaniem na małpach, w tym oprogramowaniu do testowania na małpach, procesom, typom, podejściom i nie tylko.

 

Czym są testy na małpach?

Testowanie przyrostowe w testowaniu oprogramowania - dogłębne omówienie czym jest, rodzaje, proces, podejścia, narzędzia i wiele więcej!

Monkey testing to coraz bardziej popularna technika testowania oprogramowania. Polega ona na wysyłaniu losowych danych wejściowych do aplikacji w celu symulacji nieprzewidywalności interakcji interfejsu użytkownika.

Celem jest znalezienie błędów lub awarii, które mogą być trudne do wykrycia za pomocą predefiniowanych przypadków testowych. Małpi test naśladuje sposób, w jaki osoba bez doświadczenia lub wiedzy o aplikacji może losowo eksplorować oprogramowanie.

Technika ta jest dobrym rozwiązaniem zarówno dla
obciążenie
i
testów obciążeniowych
aplikacje. W efekcie testy zapewniają ciągłe losowe dane wejściowe, próbując złamać aplikację.

Istnieje wiele podobieństw między testowaniem na małpach a testowaniem
testami ad hoc
W szczególności ich losowy charakter i brak zależności od planu testów. Istnieje jednak wystarczająco dużo różnic między nimi, aby uznać je za odrębne podejścia.

Podczas gdy niektórzy deweloperzy sugerują, że testowanie na małpach jest rodzajem testowania ad hoc, jedną istotną różnicą między nimi jest to, że testowanie na małpach może być wykonywane przez osoby bez żadnej wiedzy o aplikacji.

Testowanie na małpach polega na nieposiadaniu planu testów. Chodzi o podawanie losowych danych wejściowych w celu uszkodzenia oprogramowania.

 

Dlaczego nazywa się to testowaniem na małpach?

Testy alfa vs testy beta

Nie ma zgody co do tego, dlaczego technika ta nazywana jest testami na małpach. Istnieje jednak kilka przekonujących teorii stojących za tą nazwą.

 

Teoria 1: Twierdzenie o nieskończonej liczbie małp

 

Pierwsza teoria sugeruje, że nazwa ma związek z twierdzeniem o nieskończonej małpie, metaforą używaną do omawiania prawdopodobieństwa statystycznego. W skrócie, stwierdza ona, że gdyby małpa usiadła przed maszyną do pisania i wciskała losowe klawisze przez nieskończoną ilość czasu, w pewnym momencie stworzyłaby kompletne dzieła Williama Szekspira.

Pomysł polega na tym, że małpie testy symulują te losowe zacieranie kluczy, a przy wystarczającej ilości czasu obejmą każdą ewentualność, z jaką aplikacja będzie musiała się zmierzyć w produkcji.

 

Teoria 2: “Małpa” Macintosha

 

Inna teoria głosi, że nazwa pochodzi od aplikacji MacOS z 1983 roku o nazwie “The Monkey”. Krótko mówiąc, zespół pracujący nad pierwszym komputerem Macintosh chciał znaleźć sposób na przetestowanie swojej maszyny.

Uznali, że jeśli będą mieli małpę gorączkowo uderzającą w klawisze i poruszającą myszą, pomoże im to przetestować odporność komputera. Nie mieli pod ręką żywej małpy, więc stworzyli aplikację, która mogła symulować tego rodzaju użycie i nazwali ją “Małpa”.

 

Dlaczego testy na małpach są ważne?

wyjaśnienie pewnych nieporozumień w automatyzacji testowania oprogramowania

Głównym powodem, dla którego testowanie małp jest ważne, jest to, że pomaga zespołom odkrywać przypadki brzegowe lub nieoczekiwane zachowania w aplikacji. Pomysł polega na tym, że deweloperzy mogą korzystać z małpich testów wraz z bardziej tradycyjnymi metodami, aby lepiej zrozumieć, jak aplikacja zostanie odebrana na wolności.

Nawet kompleksowe testy produktu nie mogą konkurować z dziesiątkami tysięcy lub więcej użytkowników zaangażowanych w aplikację przez długi czas. W niewielkim odsetku tych przypadków użytkownicy proszą aplikację o zrobienie czegoś nieoczekiwanego. Odkrycie wszystkich tych scenariuszy za pomocą przypadków testowych jest prawie niemożliwe.

Testy na małpach próbują objąć te niemal losowe scenariusze. Gdy programiści tworzą przypadek testowy, zwykle mają dogłębną wiedzę na temat aplikacji. Rozumieją, jakie są cele użytkowników i znają najlepszą sekwencję interakcji, których powinni użyć, aby osiągnąć coś w aplikacji.

Randomizacja tych danych wejściowych oznacza, że aplikacja jest testowana w sposób, którego deweloperzy nie wzięli pod uwagę. Ogólnie rzecz biorąc, zwiększa to ogólną odporność i trwałość oprogramowania i zapewnia, że może ono wyjść w świat i zmierzyć się z nieprzewidywalnością szerokiego grona użytkowników bez awarii.

 

Kiedy należy stosować testy na małpach?

checklist uat, narzędzia do testowania aplikacji internetowych, automatyzacja i inne

Testy na małpach to doskonała uzupełniająca technika testowania. Jego największą zaletą jest zdolność do znajdowania nieoczekiwanych błędów, które nie zostałyby odkryte przez bardziej tradycyjne metody testowania oprogramowania. W związku z tym najlepiej jest używać go razem z metodami takimi jak:

Zazwyczaj deweloperzy stosują testy małp na wczesnym etapie procesu testowania. Jest to szczególnie przydatne, gdy brakuje wstępnie zdefiniowanych planów testów.

 

Jak przeprowadzane są testy na małpach?

30 najpopularniejszych narzędzi i oprogramowania RPA (zrobotyzowana automatyzacja procesów)

W nie tak odległej przeszłości testy na małpach były przeprowadzane ręcznie. Testerzy byli zatrudniani do naciskania przycisków, wprowadzania tekstu, wybierania obiektów i tak dalej, aby sprawdzić, jak system poradzi sobie z niekonwencjonalnymi danymi wejściowymi. Występują tu oczywiste problemy. Po pierwsze, jest to dość czasochłonne. Po drugie, nie ma gwarancji, że działania te obejmą każdą ewentualność.

 

Przykłady ręcznego testowania na małpach

Oto kilka przykładów tego, jak przeprowadzane są ręczne testy na małpach. Może to również dać wyobrażenie o tym, co zautomatyzowane testy małp mają symulować.

  • Tester porusza się po stronie internetowej, klikając losowe linki, aby sprawdzić, czy mogą one spowodować awarię aplikacji lub prowadzić do nieoczekiwanych stron
  • Tester wprowadza losowe teksty do pola formularza, aby sprawdzić, jak zareaguje aplikacja.
  • Tester przeciąga i upuszcza ikony i obiekty, aby sprawdzić, czy zachowują się zgodnie z oczekiwaniami, czy też wywołują niepożądane efekty.

 

Różne rodzaje testów na małpach

testowanie automatyzacji aplikacji internetowych

Istnieją trzy główne typy testów małpich, których deweloperzy używają do odkrywania różnych informacji na temat odporności ich aplikacji.

 

1. Testy na głupich małpach

 

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Testowanie na głupich małpach opisuje podejście, w którym tester nie wie nic o testowanej aplikacji. Zamiast tego, tester jest proszony o poruszanie się całkowicie nieświadomy przepływu pracy, naciskanie przycisków, wprowadzanie tekstu i tak dalej. Technika ta może pomóc odkryć istotne błędy, których deweloperzy nie są świadomi.

 

2. Testowanie inteligentnych małp

 

W przypadku inteligentnych testów małpich tester wie co nieco o aplikacji i jej celach, a nawet posiada szczegółowe informacje na temat jej działania. Proces ten wykorzystuje również bardziej ukierunkowany rodzaj losowych danych wejściowych, które mają na celu przesunięcie aplikacji poza określone granice. Takie podejście sprawdza się zarówno w testach obciążeniowych, jak i obciążeniowych.

 

3. Genialne testy na małpach

 

Brilliant monkey testing jest kolejnym poziomem od smart monkey testing. Tester posiada silną i wszechstronną wiedzę na temat aplikacji i jest wybierany na podstawie tej wiedzy. To niedopatrzenie może pomóc testerowi odkryć wiele błędów, ponieważ powinien on zrozumieć produkt z perspektywy użytkownika.

 

Plusy i minusy testów na małpach

wyzwania-testowanie-obciążeń

Zanim zdecydujesz się skorzystać z techniki testowania na małpach, musisz zrozumieć jej wady i zalety.

 

Zalety testów na małpach

 

1. Znajdowanie rzadkich lub ukrytych błędów

Być może najbardziej przekonującą korzyścią płynącą z testowania przy użyciu małp jest zdolność tej techniki do odkrywania błędów, defektów lub zachowań, które w przeciwnym razie mogłyby pozostać niezauważone. Znalezienie tych skrajnych przypadków jest trudne przy użyciu tradycyjnych technik testowania, więc testowanie małp jest solidnym sposobem na testowanie awarii, uszkodzeń danych i wszystkiego innego, co zagraża stabilności aplikacji.

 

2. Zapewnia solidność

Testy na małpach mają na celu sprawdzenie, jak aplikacja reaguje na nieprzewidywalne warunki, z którymi będzie musiała się zmierzyć podczas rzeczywistych zastosowań. Gdy aplikacja zostanie oddana w ręce użytkownika, spowoduje to wiele różnych danych wejściowych, których programiści nie mogą przewidzieć. Małpie testy naśladują tę sytuację, prowadząc do bardziej niezawodnych kompilacji.

 

3. Efektywność kosztowa

W porównaniu z innymi rodzajami testów, testy na małpach są bardzo opłacalne. Jest ku temu kilka powodów. Po pierwsze, nie musisz poświęcać dużo czasu na projektowanie przypadków użycia dla swojej aplikacji. Następnie, narzędzia do testowania małp są w dużej mierze zautomatyzowane, co zwalnia czas programistów na inne zadania, oszczędzając pieniądze.

 

4. Wszechstronność

Jedną z najlepszych rzeczy w testach na małpach jest to, że mogą być one przeprowadzane przez osoby bez wykształcenia technicznego. Rzeczywiście, w niektórych przypadkach lepiej jest mieć kogoś, kto jest całkowicie zielony. Co więcej, testy te są dość proste w konfiguracji, co ponownie zmniejsza zależność od wykwalifikowanych inżynierów.

 

5. Wczesne wykrywanie błędów

Znajdowanie i rozwiązywanie błędów na wczesnym etapie cyklu rozwoju pozwala zaoszczędzić czas w przyszłości. Testowanie na małpach wprowadza poziom losowości do testowania, co może pomóc w znalezieniu błędów w kodzie, gdy są one łatwe do naprawienia.

 

Wady testów na małpach

 

1. Pokrycie

Chociaż testowanie za pomocą małp może skutkować lepszym pokryciem testami, brakuje mu zaplanowanej i strategicznej dokładności innych typów testów. W efekcie, ponieważ aplikacja jest zasilana losowymi danymi wejściowymi, jesteś zdany na łaskę chaosu w znajdowaniu błędów. Nie oznacza to, że nie znajdzie wszystkiego, ale bez jasnej i wstępnie zdefiniowanej strategii nie można mieć 100% pewności, że wszystko zostało przechwycone.

 

2. Ograniczone zastosowania

Testy na małpach nie są odpowiednie dla każdego rodzaju aplikacji. Świetnie nadaje się do złożonych aplikacji z wieloma różnymi funkcjami i funkcjami, które, co najważniejsze, mogą powodować nieoczekiwane interakcje użytkownika. Programy oferujące bardziej sztywne i przewidywalne funkcje mają mniejsze szanse na skorzystanie z tych testów.

 

3. Czasochłonne

Ręczne testowanie na małpach jest bardzo czasochłonne. Wymaga to wielu interakcji z modułami i oprogramowaniem, bez gwarancji, że każda sesja wykryje błędy. Można zautomatyzować ten proces, co pozwala zaoszczędzić sporo czasu i zasobów.

 

4. Fałszywe alarmy

Ze względu na chaotyczny lub losowy charakter testów na małpach, niektóre dane wejściowe mogą symulować scenariusze, które nie wystąpią podczas rzeczywistego użytkowania produktu. Sytuacja ta może skutkować generowaniem fałszywych alarmów, co prowadzi koderów do naprawiania błędów, które nie są konieczne.

 

Czym jest testowanie małp chaosu?

Czym jest testowanie małp chaosu?

Testowanie chaosu to technika inżynierii oprogramowania, która wykorzystuje kontrolowane i celowe eksperymenty mające na celu zakłócenie systemu (a nawet wywołanie awarii) w celu oceny jego odporności i zdolności do odzyskania.

Pomysł celowego złamania systemu w celu zapewnienia odporności jest dość powszechny w przestrzeni rozwoju oprogramowania, a metody te zazwyczaj skutkują kompilacjami, za którymi inżynierowie mogą stać.

W 2008 roku, po trzydniowym uszkodzeniu bazy danych, popularny serwis streamingowy Netflix zdecydował się na migrację do Amazon Web Services (AWS). Celem było uniknięcie pojedynczych punktów awarii i zmniejszenie problemów ze skalowalnością wynikających z rozszerzenia usługi.

Zespół wdrożył testy chaos monkey, aby przetestować publiczne instancje w infrastrukturze AWS. Korzyści były dwojakie:

  1. Proces ten ujawnił słabe punkty, które inżynierowie Netflix mogli naprawić
  2. Zainspirowało to zespół do stworzenia zautomatyzowanych mechanizmów odzyskiwania danych dla swojej usługi.

Testowanie małp Chaosu jest częścią Inżynierii Chaosu. Służy do testowania odporności systemu na błędy i jego zdolności do utrzymania stabilności i wydajności nawet w przypadku nieoczekiwanej awarii poszczególnych komponentów.

Chociaż jest to związane z testowaniem na małpach, jest to odrębna technika.

 

Testowanie na małpach vs testowanie na gorylach

Testowanie na małpach vs. testowanie na gorylach

Być może słyszałeś również o koncepcji testowania Gorilla w tworzeniu oprogramowania. Chociaż obie techniki noszą nazwy naczelnych, mają wiele podobieństw i różnic. Przyjrzyjmy się, czym są testy Gorilla i gdzie można je stosować.

Testowanie na gorylach jest uważane za bardziej ustrukturyzowaną wersję testowania na małpach. Dla porównania, testowanie na małpach jest często stosowane na wczesnych etapach testowania, gdy nie są dostępne formalne przypadki testowe. Z drugiej strony, testowanie goryli wykorzystuje zautomatyzowane narzędzie lub skrypt do generowania losowych danych wejściowych dla aplikacji.

Testowanie na gorylach jest szybkie i znacznie bardziej wydajne niż ręczne testowanie na małpach. Oferuje szeroki zasięg i jest doskonałym sposobem na znalezienie awarii, które wymagają rozwiązania. Jednak najlepiej jest go używać w aplikacjach o dobrze zdefiniowanych granicach lub do dokładnego testowania określonego modułu.

Zarówno testowanie na małpach, jak i testowanie na gorylach mają swoje miejsce w nowoczesnym testowaniu oprogramowania. Zrozumienie ich jest kluczem do zastosowania właściwego podejścia we właściwej przestrzeni.

 

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Jakie jest najlepsze narzędzie do testowania małp?

najlepsze narzędzia do testowania małp

Oprogramowanie do testowania małp stało się istotną częścią zestawu narzędzi nowoczesnego dewelopera. Istnieje jednak kilka opcji. Jakie jest więc najlepsze narzędzie do testowania małp? Oto kilka z nich, o których warto wiedzieć.

 

1. ZAPTEST

 

ZAPTEST to potężne
darmowe i korporacyjne narzędzie do automatyzacji testowania oprogramowania
który obsługuje szeroki zakres technik automatyzacji testów, w tym testowanie na małpach. Niektóre z funkcji ZAPTEST, które pomagają w testowaniu małp obejmują:

 

  • Nagrywanie skryptów bez kodu: Zespoły mogą nagrywać interakcje użytkowników i przekształcać je w kod testowy.
  • Generowanie danych wejściowych: ZAPTEST ułatwia losowe generowanie danych wejściowych, co jest podstawowym elementem testowania na małpach
  • Solidne raportowanie: ZAPTEST oferuje potężne możliwości raportowania, które pomagają w dokumentowaniu testów

 

Oczywiście te funkcje to tylko zarys możliwości ZAPTEST w zakresie szerokiej gamy technik testowania, w tym testów na małpach. Dzięki integracji WebDriver, funkcjom AI i ZAPTEST CoPilot, zespoły mogą doświadczyć przyszłości testowania oprogramowania w jednym miejscu.

Co więcej, użytkownicy ZAPTEST Enterprise otrzymują dostęp do dedykowanego eksperta ZAP i nieograniczonej liczby licencji, a wszystko to za stałą, przewidywalną cenę.

 

2. Appium

Appium jest narzędziem typu open-source. Można z niej korzystać zarówno w systemie Android, jak i iOS. Pozwala użytkownikom zautomatyzować interakcje aplikacji mobilnych i ma możliwości testowania małp. Programiści mogą naśladować szeroki zakres reakcji interfejsu użytkownika, takich jak wprowadzanie tekstu, klikanie, stukanie i przewijanie.

Podczas gdy Appium jest świetnym narzędziem dla programistów mobilnych, brakuje mu możliwości testowania komputerów stacjonarnych i stron internetowych.

 

3. Małpi test

Monkey Test It to oparta na chmurze platforma testowa z szeregiem możliwości testowania, w tym testowania na małpach. Chociaż Monkey Test It jest bardzo przyjazny dla użytkownika, być może brakuje mu mocy konkurencyjnych narzędzi.

Inne wady są takie, że mógłby wyglądać bardziej elegancko i mieć lepszą dokumentację. Co więcej, niektórzy użytkownicy skarżyli się na niedokładne wyniki testów. Niemniej jednak, jest to prosty program o niskiej cenie, więc nie można oczekiwać od niego całego świata.

 

4. MonkeyTestJS

MonkeyTestJS to australijskie narzędzie oparte na JavaScript o otwartym kodzie źródłowym, które jest przeznaczone wyłącznie do aplikacji internetowych. Jest dość prosty, ale jest więcej niż zdolny do wykonania zadania. Narzędzie to pozwala programistom symulować interakcje użytkownika z aplikacją internetową, takie jak kliknięcia, przesyłanie formularzy, wprowadzanie danych z klawiatury i inne.

Oczywiście wadą tego narzędzia jest to, że jest ono dostępne tylko dla aplikacji internetowych. Warto jednak mieć ją w swoim zestawie narzędzi.

 

Jakie jest najlepsze dedykowane narzędzie do testowania małp na Androidzie?

 

Istnieje kilka dobrych opcji dla deweloperów, którzy chcą wprowadzić odrobinę chaosu do testowania aplikacji na Androida. Przyjrzyjmy się dwóm.

 

1. UI/Application Exerciser Monkey dla Androida

UI/Application Exerciser Monkey for Android to narzędzie wiersza poleceń, które pozwala programistom wysyłać pseudolosowe dane wejściowe lub zdarzenia zarówno do urządzeń z Androidem, jak i emulacji. Narzędzie to działa w powłoce Android Debug Bridge.

 

2. MonkeyRunner na Androida

MonkeyRunner na Androida to popularne narzędzie do testowania małp na Androidzie. Oprogramowanie to jest interfejsem API, który umożliwia programistom pisanie programów emulujących lub kontrolujących urządzenia z systemem Android. Jest to również dobra opcja zarówno do testów funkcjonalnych, jak i jednostkowych.

Obie te aplikacje są dobrymi opcjami. Są one jednak dość techniczne, co nie będzie odpowiadać wszystkim zespołom.

 

Czy testowanie małp powinno być zautomatyzowane?

Automatyzacja testów obciążeniowych

Jednym z największych problemów związanych z ręcznym testowaniem na małpach jest to, że jest ono bardzo czasochłonne. Inną rzeczą, na którą należy zwrócić uwagę, jest to, że kilku testerom trudno jest naprawdę symulować różne interakcje, jakie szeroka baza użytkowników może mieć z daną aplikacją.

Od razu rzucają nam się w oczy trzy wady. Ręczne testowanie małp jest:

  • Czasochłonne
  • Drogie
  • Potencjalny brak zasięgu

Zautomatyzowane narzędzie do testowania małp rozwiązuje wszystkie te problemy.

 

Czy ZAPTEST jest właściwym wyborem dla Twoich potrzeb w zakresie testowania małp?

 

Testowanie na małpach to dobra technika, którą warto mieć w swoim repertuarze testowym, zwłaszcza jeśli projektujesz złożone aplikacje. Jednak zakup dedykowanego oprogramowania do testowania małp jest kosztowny.


ZAPTEST
to elastyczne i wydajne
narzędzie do automatyzacji testów.
Jest wysoce konfigurowalne i pozwala zarówno programistom, jak i zespołom nietechnicznym tworzyć i projektować nieskończoną liczbę technik testowania oprogramowania, w tym testowanie małp.

Testy na małpach są doskonałym wyborem, gdy są uzupełnione innymi rodzajami testów. ZAPTEST oferuje wszystko pod jednym dachem, z dodatkiem wysokiej jakości narzędzia RPA.

 

Końcowe przemyślenia

Oprogramowanie do testowania małp zapewnia programistom niekonwencjonalny sposób testowania aplikacji. Siła tej techniki leży w jej zdolności do symulowania niezliczonych nieprzewidywalnych sposobów, w jakie użytkownik może angażować się w oprogramowanie. Krótko mówiąc, testowanie małpami zapewnia pokrycie, które może być trudne do osiągnięcia za pomocą planu testów.

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