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

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?

Inkrementální testování v testování softwaru - hluboký ponor do toho, co to je, typy, proces, přístupy, nástroje a další!

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í?

alfa testování vs. beta 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é?

vyjasnění některých nejasností v automatizaci testování softwaru

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í?

kontrolní seznam uat, nástroje pro testování webových aplikací, automatizace a další

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?

30 nejoblíbenějších nástrojů a softwaru RPA (robotická automatizace procesů)

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

testování automatizace webových aplikací

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

 

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

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

Výzvy-testování-zatížení

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?

co je to chaos monkey testing?

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í:

  1. Tento proces odhalil nedostatky, které mohli inženýři společnosti Netflix odstranit.
  2. 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

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.

 

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Jaký je nejlepší nástroj pro testování opic?

nejlepší nástroje 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é?

Automatické testování zátěže

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ů.

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