Co je testování opic a goril? Příklady, Rozdíl
⚡ Chytré shrnutí
Monkey testing vkládá náhodné, neplánované vstupy do běžící aplikace a sleduje, zda přežije, takže pády, zamrznutí a neošetřené stavy jsou odhaleny dlouho předtím, než je napsán jakýkoli předdefinovaný testovací případ.
Co je to opičí testování?
Testování na opicích je technika testování softwaru, při které tester zadává náhodné vstupy do aplikace bez předem definovaných testovacích případů a kontroluje, jak se aplikace chová, zejména zda nedochází k pádu. Účelem opičího testování je najít chyby a nedostatky prostřednictvím experimentální, neskriptované interakce.
Název pochází z jednoduchého obrázku, který je znázorněn níže.
- V testování typu monkey tester (a někdy i vývojář) je považován za „opici“.
- Pokud by opice používala počítač, prováděla by úkoly náhodně, aniž by systému rozuměla.
- Stejným způsobem tester aplikuje náhodné vstupy na testovaný systém, aby našel chyby, aniž by předem definoval jakýkoli testovací případ.
- V některých případech je testování na opicích zaměřeno na testování jednotky or Testování grafického uživatelského rozhraní.
Co je testování goril?
Testování goril je technika testování softwaru, při které je jeden modul programu opakovaně testován, aby se potvrdilo, že funguje správně a neobsahuje žádné vady.
Jeden modul lze procvičovat stokrát i vícekrát úplně stejným způsobem, a proto je gorilla testing také známý jako „frustrující testing“. Monkey testing se náhodně rozprostírá po celé aplikaci; gorilla testing se zaměřuje na jedno místo, dokud se nerozbije nebo se neukáže jako spolehlivý.
Typy testování opic
Opičí testování se dělí do kategorií podle toho, kolik toho tester o systému ví. Níže uvedený diagram shrnuje tři typy.
- Hloupá opice: Tester nemá ponětí o systému ani o jeho funkčnosti a neexistuje žádná záruka, že jakýkoli vstup je platný.
- Chytrá opice: Tester má přesnou představu o systému, jeho účelu a funkčnosti, orientuje se v něm a poskytuje platné vstupy.
- Brilantní opice: Tester pracuje s reálným chováním uživatelů a dokáže určit, kde se pravděpodobně objeví vady.
Testování na opicích vs. testování na gorilách vs. ad-hoc testování
Testování na opicích, testování na gorilách a ad-hoc testování sdílejí nestandardní charakter, a proto se často zaměňují. Dvě tabulky níže je od sebe odlišují.
Testování na opicích vs. testování na gorilách
| Opičí testování | Testování goril |
|---|---|
| Prováděno náhodně, bez konkrétně předdefinovaných testovacích případů. | Ani předdefinované, ani náhodné – stejné kontroly se jednoduše opakují. |
| Provádí se na celém systému a může zahrnovat mnoho testovacích případů. | Provedeno na několika vybraných modulech s malým počtem testovacích případů. |
| Cílem je zkontrolovat, zda nedošlo k selhání systému. | Cílem je ověřit, zda modul funguje správně. |
Opičí testování vs. ad-hoc testování
| Opičí testování | Ad-hoc testování |
|---|---|
| Prováděno náhodně, bez konkrétně předdefinovaných testovacích případů. | Provádí se bez plánování nebo dokumentace, takže se nepřipravují žádné testovací případy ani SRS. |
| Testeři nemusí vědět, co systém je nebo k čemu slouží. | Tester musí před zahájením testování dobře porozumět systému. |
| Cílem je zkontrolovat, zda nedošlo k selhání systému. | Cílem je náhodně rozdělit systém na podčásti a ověřit jejich funkčnost. |
Výhody a nevýhody testování na opicích
Protože tato technika vyměňuje plánování za rychlost, její výhody i slabiny pramení ze stejné vlastnosti.
Výhody testování na opicích
- Nové druhy chyb: Tester může pracovat i mimo dříve uvedené scénáře, což odhaluje chyby, na které nikdo nepomyslel.
- Snadné provedení: Uspořádání náhodných akcí s náhodnými daty je rychlý způsob, jak systém procvičit.
- Less kvalifikovaní lidé: Opičí testování lze často provádět bez vysoce zkušených testerů.
- Less nákladné: Jeho nastavení a provoz vyžaduje podstatně méně nákladů než sada skriptů.
Nevýhody testování na opicích
- Chyby se těžko reprodukují: Protože vstupy jsou náhodné, nemusí být možné znovu vytvořit selhání bez zaznamenaného semínka.
- Less přesnost: Tester nemůže definovat přesný scénář a nemůže zaručit přesnost toho, co bylo pokryto.
- Technická znalost stále pomáhá: Aby testeři měli smysluplné závěry, potřebují dobrou znalost dané oblasti.
- Pomalé vzhledem k výnosu: Běhy mohou trvat dlouhou dobu a stále vracet málo vad, což v systému zanechává mezery.
Jak provádět testování na opicích
Opičí testování se stává mnohem efektivnějším, když ho řídí nástroj a lze jej spustit proti Android sestavuje, stejně jako desktopové a webové aplikace. Obecný postup je:
- Zaregistrujte testovanou aplikaci v nástroji nebo na dedikovaném serveru, který ji bude spravovat.
- Připravte si reference a konfiguraci, které nástroj potřebuje k vytvoření testovací sady.
- Spusťte sestavenou testovací sadu.
- Nechte nástroj zapsat si protokol – soubor protokolu „monkey test“ zaznamenává každou vygenerovanou událost a výsledky.
- Nechte běh pokračovat, dokud systém nedosáhne bodu havárie, kdy je problematická akce zaznamenána v protokolu.
- Sdílejte zprávu s odpovědným týmem a uložte testovací data pro budoucí použití.
Uchovávejte každý protokol. Náhodné spuštění je užitečné pouze v případě, že byla uložena sekvence událostí a počáteční hodnota, která ji vytvořila, takže správa vad může spojit havárii s reprodukovatelným vstupem.
Nástroje pro testování opic
Opičí testování je obvykle automatizované, protože stroj dokáže vygenerovat tisíce událostí za dobu, kdy jich člověk vygeneruje několik desítek. Běžně používané možnosti jsou:
- Opice pro cvičení uživatelského rozhraní/aplikací: nástroj příkazového řádku zabudovaný do Android který běží v adb shell a odesílá pseudonáhodné proudy uživatelských událostí, jako jsou klepnutí, gesta a stisknutí kláves, plus události na úrovni systému, do zařízení nebo emulátoru.
- MonkeyRunner: oddělený Python API který ovládá zařízení a emulátory z pracovní stanice, odesílá specifické příkazy a pořizuje snímky obrazovky. Navzdory názvu se nejedná o stejný nástroj jako cvičební opice.
- Automatizátor uživatelského rozhraní a Appium: obecný mobilní testování frameworky, které lze skriptovat tak, aby při sestavení spouštěly polonáhodné sekvence událostí.
- Nástroje pro fuzzingy, jako například AFL: stejná myšlenka náhodného vstupu aplikovaná na data spíše než na gesta, která je popsána v testování fuzzu.
Podpora nástrojů pro opičí testování je slabší než pro skriptované testování. testování automatizace, takže většina týmů kombinuje generický generátor událostí se svým stávajícím frameworkem, spíše než aby si koupily specializovaný produkt.
Kdy použít opičí testování
Opičí testování si své místo zaslouží spíše ve specifických situacích než jako obecná náhrada plánovaného testování.
Použijte jej, když:
- Raná verze potřebuje levnou kontrolu stability předtím, než budou existovat formální testovací případy.
- Rozhraní je vysoce interaktivní – hry, nástroje pro kreslení, přehrávače médií – a chování skutečných uživatelů je těžké předvídat.
- Chcete se namočit nebo stres běh, který po mnoho hodin vyhledává pády, úniky paměti a neošetřené stavy.
- Vydání prošlo kontrolami skriptů a vy chcete nezávislé otestování všeho, čeho se skript nikdy nedotkl.
Vyhněte se tomu, když:
- Potřebujete opakovatelné důkazy o splnění požadavku – to je úkol písemného modelový případ.
- Sestavení je natolik nestabilní, že každé spuštění okamžitě zhroutí, což vše skrývá za prvním selháním.
- Čas je krátký, protože náhodný běh nezaručuje, že se něco najde.
V praxi dosahují nejlepších výsledků kombinací přístupů: skriptované testy pokrývají známé toky, průzkumné testování záměrně zkoumá neznámé a opičí testování útočí na cokoli, o čem oba předpokládali, že se nikdy nestane.


