Většina typů testování softwaru používá k zajištění pokrytí pečlivě definovaný plán testů. Ačkoli tyto parametry pokrývají mnoho možností používání softwaru, ne vždy napodobují chování uživatele, který aplikaci nezná a snaží se s ní pracovat pouze průzkumným způsobem: Vstupte do opičího testování.
V tomto článku se podíváme na vše, co se týká opičího testování, včetně softwaru pro opičí testování, procesů, typů, přístupů a dalších věcí.
Co je to testování na opicích?
Monkey testing je stále oblíbenější technikou testování softwaru. Jedná se o zasílání náhodných vstupů do aplikace, které simulují nepředvídatelnost interakce s uživatelským rozhraním.
Cílem je najít chyby nebo pády, které by bylo obtížné odhalit pomocí předem definovaných testovacích případů. Opičí test napodobuje způsob, jakým může člověk bez zkušeností nebo znalostí aplikace náhodně prozkoumat software.
Tato technika je vhodná jak pro
zatížení
a
zátěžové testování
aplikace. Testy v podstatě poskytují nepřetržité náhodné vstupy ve snaze prolomit aplikaci.
Mezi testováním na opicích a testováním na zvířatech je mnoho podobností.
ad hoc testováním
, zejména jejich náhodná povaha a nespoléhání se na plán testů. Mezi oběma přístupy je však dost rozdílů na to, aby se daly považovat za odlišné.
Někteří vývojáři se domnívají, že opičí testování je typem ad hoc testování, ale jeden podstatný rozdíl mezi nimi je, že opičí testování mohou provádět lidé bez znalosti aplikace.
Opičí testování spočívá v tom, že nemáte plán testů. Jde o zadávání náhodných vstupů s cílem rozbít software.
Proč se tomu říká opičí testování?
Neexistuje shoda v tom, proč se této technice říká opičí testování. Za názvem se však skrývá několik přesvědčivých teorií.
Teorie 1: Věta o nekonečné opici
První teorie naznačuje, že název souvisí s větou o nekonečné opici, metaforou používanou k diskusi o statistické pravděpodobnosti. Stručně řečeno, tvrdí, že kdyby opice seděla před psacím strojem a nekonečně dlouho mačkala náhodné klávesy, v určitém okamžiku by vytvořila kompletní dílo Williama Shakespeara.
Myšlenka spočívá v tom, že opičí testování simuluje náhodné mačkání kláves a s dostatkem času pokryje všechny eventuality, kterým bude aplikace čelit v produkčním provozu.
Teorie 2: Macintoshova “opice”
Další teorie říká, že název pochází z aplikace MacOS z roku 1983 s názvem “The Monkey”. Tým, který pracoval na prvním počítači Macintosh, chtěl zkrátka najít způsob, jak svůj stroj zátěžově otestovat.
Usoudili, že když nechají opici zběsile mlátit do kláves a pohybovat myší, pomůže jim to otestovat odolnost počítače. Neměli po ruce živou opici, a tak vytvořili aplikaci, která dokázala simulovat tento druh použití, a nazvali ji “Opice”.
Proč je testování opic důležité?
Důležitým důvodem, proč je opičí testování důležité, je to, že pomáhá týmům odhalit okrajové případy nebo neočekávané chování v aplikaci. Jde o to, že vývojáři mohou používat opičí testování spolu s tradičními metodami, aby získali lepší představu o tom, jak bude aplikace přijata v praxi.
Ani komplexní testování produktu nemůže konkurovat desítkám tisíc nebo více uživatelů, kteří se aplikaci věnují dlouhodobě. V malém procentu těchto případů uživatelé požádají aplikaci o něco neočekávaného. Odhalit všechny tyto scénáře prostřednictvím testovacích případů je téměř nemožné.
Monkey testing se snaží pokrýt tyto téměř náhodné scénáře. Když vývojáři vytvářejí testovací případ, mají tendenci aplikaci důvěrně znát. Chápou, jaké jsou cíle uživatelů, a vědí, jakou posloupnost interakcí by měli použít, aby v aplikaci něčeho dosáhli.
Náhodný výběr těchto vstupů znamená, že aplikace je testována způsobem, který vývojáři nezohlednili. Celkově to zvyšuje celkovou odolnost a trvanlivost softwaru a zajišťuje, že může vyrazit do světa a čelit nepředvídatelnosti široké škály uživatelů, aniž by došlo k jeho zhroucení.
Kdy byste měli použít opičí testování?
Opičí testování je vynikající doplňkovou testovací technikou. Jeho největší výhoda spočívá ve schopnosti najít neočekávané chyby, které by tradiční metody testování softwaru neodhalily. Proto je nejlepší, když se používá spolu s metodami, jako jsou:
Vývojáři obvykle používají opičí testování na počátku procesu testování. Je užitečná zejména v případě, že chybí předdefinované testovací plány, ze kterých by se dalo čerpat.
Jak se provádí testování na opicích?
V nepříliš vzdálené minulosti se testování na opicích provádělo ručně. Testeři měli za úkol mačkat tlačítka, zadávat text, vybírat objekty a podobně, aby zjistili, jak systém obstojí při netradičních vstupech. Jsou zde zřejmé problémy. Zaprvé je to časově náročné. Za druhé, není zaručeno, že tato opatření pokryjí všechny případy.
Příklady manuálního testování opic
Zde je několik příkladů, jak se provádí ruční testování opicemi. Může vám také poskytnout představu o tom, co se snaží simulovat automatizované testování opic.
- Tester prochází webové stránky klikáním na náhodné odkazy a zjišťuje, zda mohou způsobit pád aplikace nebo vést na neočekávané stránky.
- Tester zadává náhodné texty do pole formuláře a sleduje, jak aplikace reaguje.
- Tester přetahuje ikony a objekty a zjišťuje, zda se chovají podle očekávání, nebo zda se objeví nežádoucí výsledky.
Různé typy testování na opicích
Existují tři hlavní typy opičích testů, které vývojáři používají ke zjištění odlišných informací o odolnosti svých aplikací.
1. Testování hloupých opic
Testování s hloupou opicí popisuje přístup, kdy tester neví nic o testované aplikaci. Místo toho je tester vyzván, aby se zcela neznalý pracovního postupu šťoural v systému, mačkal tlačítka, zadával text atd. Tato technika může pomoci odhalit významné chyby, kterých si vývojáři nejsou vědomi.
2. Testování chytrých opic
Při testování pomocí chytré opice tester o aplikaci a jejích cílech něco ví, a dokonce má podrobné informace o tom, jak funguje. Tento proces také používá cílenější typ náhodného vstupu, který je navržen tak, aby aplikace překonala určité limity. Tento přístup je vhodný jak pro zátěžové testy, tak pro testování při zátěži.
3. Brilantní testování na opicích
Brilantní testování na opicích je další úrovní testování na chytrých opicích. Tester má rozsáhlé a komplexní znalosti o aplikaci a je vybrán na základě těchto znalostí. Toto přehlédnutí může testerovi pomoci odhalit mnoho chyb, protože by měl produkt chápat z pohledu uživatele.
Výhody a nevýhody testování na opicích
Než se rozhodnete použít techniku opičího testování, musíte pochopit její výhody a nevýhody.
Výhody testování na opicích
1. Vyhledávání vzácných nebo skrytých chyb
Asi nejpřesvědčivějším přínosem opičího testování je schopnost této techniky odhalit chyby, nedostatky nebo chování, které by jinak zůstaly neodhaleny. Nalezení těchto okrajových případů je při použití tradičních testovacích technik náročné, proto je opičí testování spolehlivým způsobem, jak testovat pády, poškození dat a všechny další faktory, které ohrožují stabilitu aplikace.
2. Zajišťuje robustnost
Cílem testování na opicích je zjistit, jak aplikace reaguje na nepředvídatelné podmínky, kterým bude čelit při reálném používání. Když se aplikace dostane do rukou uživatele, bude mít za následek spoustu různých vstupů, které vývojáři nemohou předvídat. Opičí testování tuto situaci napodobuje, což vede ke spolehlivějším sestavám.
3. Nákladová efektivita
V porovnání s jinými typy testování je testování na opicích velmi ekonomické. Důvodů je několik. Za prvé, nemusíte trávit mnoho času navrhováním případů použití pro vaši aplikaci. Dále jsou softwarové nástroje pro testování opic z velké části automatizované, což vývojářům uvolňuje čas na jiné úkoly a šetří peníze.
4. Všestrannost
Jednou z nejlepších vlastností opičího testování je, že je mohou provádět i lidé bez technického vzdělání. V některých případech je skutečně lepší mít někoho, kdo je zcela zelený. Navíc je nastavení těchto testů poměrně jednoduché, což opět snižuje závislost na kvalifikovaných inženýrech.
5. Včasné odhalení chyb
Nalezení a vyřešení chyb v rané fázi vývojového cyklu šetří čas v budoucnu. Monkey testing vnáší do testování určitou míru náhodnosti, která vám může pomoci najít chyby v kódu, zatímco je lze snadno opravit.
Nevýhody opičího testování
1. Pokrytí
I když opičí testování může vést k lepšímu pokrytí testů, chybí mu plánovitost a strategická důkladnost jiných typů testování. Protože aplikaci zasypáváte náhodnými vstupy, jste při hledání chyb vydáni na milost a nemilost chaosu. To neznamená, že nenajde všechno, ale bez jasné a předem definované strategie si nemůžete být stoprocentně jisti, že bylo zachyceno všechno.
2. Omezené aplikace
Opičí testování není vhodné pro každý typ aplikace. Hodí se pro komplexní aplikace s mnoha různými funkcemi a vlastnostmi, u nichž je nejdůležitější, že mohou způsobit neočekávané interakce s uživatelem. Programy, které nabízejí rigidnější a předvídatelnější funkce, mají z těchto testů menší prospěch.
3. Časově náročné
Ruční testování opic je časově velmi náročné. Vyžaduje mnoho interakcí s moduly a softwarem, přičemž není zaručeno, že při každém sezení budou objeveny chyby. Proces můžete automatizovat, což ušetří značnou část času a zdrojů.
4. Falešně pozitivní výsledky
Vzhledem k chaotické nebo náhodné povaze opičího testování mohou některé vstupy simulovat scénáře, ke kterým při reálném používání výrobku nedojde. Tato situace může vést ke generování falešně pozitivních výsledků, což vede kodéry k opravě problémů, které nejsou nutné.
Co je to testování chaosu na opicích?
Testování chaosu je technika softwarového inženýrství, která využívá řízené a záměrné experimenty určené k narušení systému (a dokonce k vyvolání jeho selhání), aby bylo možné posoudit jeho odolnost a schopnost obnovy.
Myšlenka záměrného rozbití systému za účelem zajištění odolnosti je v oblasti vývoje softwaru poměrně běžná a tyto metody obvykle vedou k sestavám, za kterými si inženýři mohou stát.
V roce 2008 se populární streamovací služba Netflix po třídenním poškození databáze rozhodla přejít na Amazon Web Services (AWS). Cílem bylo vyhnout se jednotlivým bodům selhání a omezit problémy se škálovatelností vyplývající z rozšiřování jejich služeb.
Tým zavedl testování chaosu na opicích, aby mohl testovat instance pro veřejnost na infrastruktuře AWS. Výhody byly dvojí:
- Tento proces odhalil nedostatky, které mohli inženýři společnosti Netflix odstranit.
- To inspirovalo tým k vytvoření automatizovaných mechanismů obnovy pro jejich službu.
Testování opic chaosu je součástí inženýrství chaosu. Používá se k testování odolnosti systému vůči poruchám a jeho schopnosti udržet stabilitu a výkon i při neočekávaném selhání jednotlivých komponent.
Ačkoli souvisí s testováním na opicích, jedná se o odlišnou techniku.
Testování opic vs. testování goril
Možná jste také slyšeli o konceptu gorilího testování při vývoji softwaru. Ačkoli obě techniky nesou jména primátů, mají mnoho podobností i rozdílů. Podívejme se, co je to testování Gorilla a kde se dá použít.
Gorilí testování je považováno za strukturovanější verzi opičího testování. V porovnání s tím se opičí testování často používá v raných fázích testování, kdy nejsou k dispozici žádné formální testovací případy. Naproti tomu testování Gorilla využívá automatizovaný nástroj nebo skript, který generuje náhodné vstupy pro softwarovou aplikaci.
Testování pomocí goril je rychlé a mnohem efektivnější než ruční testování pomocí opic. Nabízí široké pokrytí a je to vynikající způsob, jak najít poruchy, které je třeba vyřešit. Nejlépe se však používá pro aplikace s přesně vymezenými hranicemi nebo pro důkladné testování konkrétního modulu.
Jak opičí, tak gorilí testování mají v moderním testování vývoje softwaru své místo. Jejich pochopení je klíčem k použití správného přístupu ve správném prostoru.
Jaký je nejlepší nástroj pro testování opic?
Software pro testování opic se stal nezbytnou součástí sady nástrojů moderního vývojáře. Existuje však několik možností. Který nástroj pro testování opic je nejlepší? Zde je několik z nich, o kterých byste měli vědět.
1. ZAPTEST
ZAPTEST je výkonný
bezplatný a podnikový nástroj pro automatizaci testování softwaru
který podporuje širokou škálu technik automatizace testování, včetně opičího testování. Mezi funkce ZAPTEST, které pomáhají při testování opic, patří:
- Nahrávání skriptů bez kódu: Týmy mohou zaznamenávat interakce uživatelů a převádět je do testovacího kódu.
- Generování vstupů: ZAPTEST usnadňuje generování náhodných vstupů, které je základním prvkem opičího testování.
- Robustní výkaznictví: ZAPTEST nabízí výkonné možnosti reportování, které vám pomohou zdokumentovat vaše testy.
Tyto funkce jsou samozřejmě jen poškrábáním povrchu možností ZAPTESTu pro širokou škálu testovacích technik, včetně opičích testů. Díky integraci WebDriveru, funkcím umělé inteligence a ZAPTEST CoPilot mohou týmy zažít budoucnost testování softwaru na jednom místě.
Uživatelé ZAPTEST Enterprise navíc získají přístup k odborníkovi ZAP na plný úvazek a neomezený počet licencí, a to vše za předvídatelnou fixní cenu.
2. Appium
Appium je nástroj s otevřeným zdrojovým kódem. Můžete ji používat pro Android i iOS. Umožňuje uživatelům automatizovat interakce s mobilními aplikacemi a disponuje funkcemi opičího testování. Vývojáři mohou napodobovat širokou škálu reakcí uživatelského rozhraní, jako je zadávání textu, klikání, klepání a posouvání.
Zatímco Appium je skvělý nástroj pro mobilní vývojáře, chybí mu možnosti pro testování desktopů a webů.
3. Opičí test
Monkey Test It je cloudová testovací platforma s řadou testovacích funkcí, mezi které patří i testování na opicích. Přestože je Monkey Test It uživatelsky velmi přívětivý, možná mu chybí výkon konkurenčních nástrojů.
Dalšími nevýhodami je, že by mohl vypadat elegantněji a mít lepší dokumentaci. Někteří uživatelé si navíc stěžovali na nepřesné výsledky testů. Přesto se jedná o jednoduchý program s nízkou cenou, takže od něj nemůžete očekávat nic světoborného.
4. MonkeyTestJS
MonkeyTestJS je australský open-source nástroj založený na JavaScriptu, který je určen pouze pro webové aplikace. Je poměrně jednoduchý, ale svou práci zvládá více než dobře. Tento nástroj umožňuje vývojářům simulovat interakce mezi uživatelem a webovou aplikací, jako jsou kliknutí, odeslání formuláře, vstupy z klávesnice a další.
Nevýhodou tohoto nástroje je samozřejmě to, že je k dispozici pouze pro webové aplikace. Stojí však za to, abyste ji měli ve své sadě nástrojů.
Jaký je nejlepší specializovaný nástroj pro testování opic systému Android?
Vývojáři, kteří chtějí do testování aplikací pro Android vnést trochu chaosu, mají několik dobrých možností. Podívejme se na dva.
1. UI/Application Exerciser Monkey pro Android
UI/Application Exerciser Monkey pro Android je nástroj příkazového řádku, který vývojářům umožňuje odesílat pseudonáhodné vstupy nebo události do zařízení se systémem Android i do emulací. Tento nástroj se spouští v prostředí Android Debug Bridge.
2. MonkeyRunner pro Android
MonkeyRunner pro Android je populární nástroj pro testování opic pro Android. Tento software je rozhraní API, které vývojářům umožňuje psát programy, které emulují nebo ovládají zařízení se systémem Android. Je to také dobrá volba pro funkční i jednotkové testování.
Obě tyto aplikace jsou dobrou volbou. Jsou však poměrně technické, což nebude vyhovovat všem týmům.
Mělo by být testování opic automatizované?
Jedním z největších problémů manuálního testování opic je jeho časová náročnost. Další věc, kterou byste si měli uvědomit, je, že pro několik testerů je těžké skutečně simulovat různé interakce, které může mít široká základna uživatelů s určitou aplikací.
Na první pohled nás tedy napadají tři nevýhody. Ruční testování opic je:
- Časově náročné
- Drahé
- Potenciálně nedostatečné pokrytí
Všechny tyto problémy řeší nástroj pro automatické testování opic.
Je ZAPTEST tou správnou volbou pro vaše potřeby testování opic?
Opičí testování je dobrá technika, kterou byste měli mít v repertoáru testování, zejména pokud navrhujete složité aplikace. Nákup specializovaného softwaru pro testování opic je však nákladný.
ZAPTEST
je flexibilní a výkonný
nástroj pro automatizaci testů.
Je vysoce přizpůsobitelný a umožňuje vývojářům i netechnickým týmům vytvářet a navrhovat nekonečné množství technik testování softwaru, včetně opičího testování.
Opičí testy jsou skvělou volbou, pokud jsou doplněny dalšími typy testů. ZAPTEST nabízí vše pod jednou střechou, navíc s těmito možnostmi vysoce kvalitní nástroje RPA.
Závěrečné myšlenky
Software pro testování opic poskytuje vývojářům netradiční způsob testování jejich aplikací. Síla této techniky spočívá ve schopnosti simulovat nesčetné množství nepředvídatelných způsobů, jakými může uživatel pracovat se softwarem. Stručně řečeno, opičí testování poskytuje pokrytí, kterého by bylo obtížné dosáhnout pomocí plánu testů.