Ad-hoc testování je typ testování softwaru, který vývojáři a softwarové společnosti provádějí při kontrole aktuální iterace softwaru. Tato forma testování umožňuje lepší vhled do programu a odhaluje problémy, na které by běžné testování nemuselo upozornit.
Je nanejvýš důležité, aby testovací týmy dokonale porozuměly procesu ad hoc testování, aby věděly, jak obejít jeho problémy, a aby se ujistily, že tým může tuto techniku úspěšně implementovat.
Přesná znalost toho, jak ad-hoc testování funguje a které nástroje mohou usnadnit jeho provádění, umožňuje podniku neustále zlepšovat vlastní postupy pro zajištění kvality. Formální proces testování se řídí velmi specifickými pravidly, což může vést k tomu, že tým přehlédne některé chyby – ad-hoc kontroly mohou tato slepá místa obejít a rychle otestovat každou funkci softwaru.
V tomto článku se blíže seznámíme s ad-hoc testováním a s tím, jak jej můžete využít ve svůj prospěch při vývoji softwarového produktu.
Význam testování ad hoc: Co je to testování ad hoc?
Ad-hoc testování je proces zajištění kvality, který se vyhýbá formálním pravidlům a dokumentaci – pomáhá testerům najít v aplikaci chyby, které běžné přístupy nedokážou odhalit. To obvykle vyžaduje komplexní znalost softwaru před zahájením testování – včetně porozumění vnitřnímu fungování programu. Cílem těchto ad-hoc kontrol je narušit aplikaci způsobem, který odráží vstupy od uživatelů, a zohlednit různé potenciální situace, aby vývojáři mohli opravit případné problémy.
Nedostatek dokumentace je pro tuto techniku zásadní, protože neobsahuje žádný kontrolní seznam ani testovací případy, které by testery vedly k procházení funkcí aplikace. Ad-hoc testování spočívá výhradně v testování softwaru způsobem, o kterém tým rozhodne, že je v danou chvíli efektivní. To může zohlednit již existující formální testy, ale může to také jednoduše zahrnovat provedení co největšího počtu testů v (pravděpodobně omezeném) čase, který je pro tuto techniku vyčleněn.
1. Kdy a proč je třeba provádět testování Ad-Hoc při testování softwaru?
Hlavním důvodem, proč společnosti provádějí ad-hoc testování, je jeho schopnost odhalit chyby, které tradiční přístupy nedokážou najít. Důvodů může být celá řada, například konvenční testovací případy se řídí obzvláště standardizovaným postupem, který nemůže zohlednit zvláštnosti aplikace.
Každý typ testování může nabídnout nové perspektivy a zajímavé přístupy k zajištění kvality – to také ukazuje problémy s obvyklou strategií testování. Pokud například ad-hoc testování dokáže identifikovat problém, který testovací případy týmu neřeší, naznačuje to, že by bylo vhodné rekalibrovat metodiku testování.
Testeři mohou provádět ad-hoc kontroly v kterémkoli bodě procesu testování. Obvykle slouží jako doplněk k tradičnímu (a formálnějšímu) zajišťování kvality a s ohledem na to mohou testeři provádět kontroly ad hoc, zatímco jejich kolegové provádějí formálnější kontroly. Mohou však raději nechat ad-hoc kontroly až na dobu po formálním testování jako následný krok, který se konkrétně zaměří na potenciální slepá místa.
Ad-hoc testování může být užitečné také v případech, kdy je čas omezen zejména kvůli nedostatku dokumentace – správný čas závisí na společnosti a jejím preferovaném přístupu.
2. Když nepotřebujete provádět testování Ad-Hoc
Pokud není dostatek času na provedení ad-hoc i formálního testování, je důležité, aby tým upřednostnil druhé jmenované, protože to zajistí podstatné pokrytí testů – i když v nich stále existují určité mezery.
Pokud tým při formálních testech zjistí chyby, které je třeba opravit, je obecně lepší počkat, až vývojáři dokončí potřebné změny, a provést ad-hoc kontroly. V opačném případě by výsledky, které poskytují, mohly být brzy zastaralé, zejména pokud se testy týkají komponenty, u které se již vyskytly chyby.
Kromě toho musí před fází beta testování proběhnout ad-hoc testování.
3. Kdo se podílí na testování Ad-Hoc?
Do procesu testování Ad-Hoc je zapojeno několik klíčových rolí, včetně:
– Testeři softwaru jsou hlavními členy týmu, kteří provádějí ad hoc kontroly. Pokud se provádí testování ve dvojici, pak několik těchto testerů pracuje společně na stejných komponentách.
– Vývojáři mohou nezávisle používat tyto kontroly před formální fází zajištění kvality k rychlé kontrole vlastního softwaru, i když je to méně důkladné než specializované ad-hoc testování.
– Vedoucí týmů nebo oddělení schvalují celkovou strategii testování – pomáhají testerům určit, kdy zahájit ad-hoc testování a jak ho provést, aniž by narušili ostatní kontroly.
Výhody testování Ad-Hoc
Mezi výhody ad-hoc testování při testování softwaru patří:
1. Rychlá řešení
Protože tyto testy nevyžadují častou dokumentaci před kontrolou, během ní ani po ní, mohou týmy mnohem rychleji identifikovat problémy. Tato jednoduchost nabízí testerům obrovskou svobodu.
Pokud například tým otestuje nějakou komponentu a nemůže identifikovat žádné chyby, může jednoduše přejít k dalšímu testu, aniž by to zaznamenal do dokumentu.
2. Doplňuje ostatní typy testů
Žádná strategie testování není dokonalá a 100% pokrytí je obvykle nemožné dosáhnout – a to i při komplexním plánu. V běžném testování budou vždy existovat mezery, proto je důležité, aby společnosti integrovaly více přístupů.
Ad-hoc testování se zaměřuje zejména na nalezení problémů, které formální testování nemůže pokrýt, a zaručuje tak širší celkové pokrytí testů.
3. Flexibilní provedení
Ad-hoc testování může probíhat v kterémkoli bodě procesu zajištění kvality před beta testováním, což umožňuje společnostem a týmům rozhodnout, kdy je nejlepší tyto kontroly provést. Mohou se rozhodnout provést ad-hoc testy souběžně s běžným testováním nebo mohou počkat až na pozdější testování – bez ohledu na to, co mají k dispozici, tým z těchto možností těží.
4. Větší spolupráce
Vývojáři jsou do tohoto procesu zapojeni více než do mnoha jiných forem testování – zejména pokud společnost používá buddy a párové testování.
Vývojáři tak získají lepší přehled o svých vlastních aplikacích a mohou být schopni řešit chyby na vyšší úrovni. To pomáhá ještě více zlepšit celkovou kvalitu softwaru.
5. Různé perspektivy
Ad-hoc testování může ukázat aplikaci z nových úhlů pohledu, což testerům pomůže zapojit tyto funkce novým způsobem. Další pohledy jsou v průběhu testování velmi důležité, protože formální kontroly mají často alespoň drobné nedostatky.
Pokud testeři ad-hoc používají software s konkrétním záměrem jej prolomit, budou moci snadněji určit limity programu.
Úskalí testování ad hoc
Proces ad-hoc testování se také potýká s několika problémy, jako jsou např.:
1. Obtíže s hlášením
Nedostatek dokumentace sice urychluje ad-hoc testování, ale může také ztížit hlášení jiných než závažných problémů.
Například jedna dříve provedená kontrola se může později stát relevantnější, přestože původně nevedla k významným výsledkům. Bez komplexní dokumentace nemusí být tým schopen tyto testy vysvětlit.
2. Méně opakovatelné
Podobně si testující nemusí být plně vědomi přesných podmínek, které jsou nutné k vyvolání pozorovaných reakcí. Například ad-hoc kontrola, která vrátí chybu, nemusí mít dostatečné informace, aby tým mohl přijmout opatření. Možná nevědí, jak tento test zopakovat a získat stejný výsledek.
3. Vyžaduje zkušenosti se softwarem
Vzhledem k tomu, že při ad-hoc testování je klíčová rychlost a obvykle se jedná o pokusy o prolomení aplikace, je důležité, aby tito testeři tento program dobře znali.
Znalost fungování umožňuje testerům prolomit software a manipulovat s ním více způsoby, což však může výrazně zvýšit nároky na dovednosti při ad-hoc testování.
4. Omezená odpovědnost
Nedostatek dokumentace může způsobit více problémů než jen špatné vykazování; může také neúmyslně prodloužit proces testování a ovlivnit užitečnost rychlých individuálních ad-hoc testů.
Bez dostatečné dokumentace v každé fázi mohou mít testeři problém sledovat svůj postup. To může vést i k opakování kontroly, kterou již provedli jiní testeři.
5. Nemusí odrážet zkušenosti uživatelů
Cílem prakticky každého typu testování je zohlednit chyby, které nějakým způsobem ovlivňují koncové uživatele. Ad-hoc testování spočívá především v tom, že se zkušený tester snaží napodobit nezkušeného uživatele, což by mělo být konzistentní při každé kontrole až po pokusy o prolomení aplikace.
Charakteristiky testů Ad-Hoc
Mezi hlavní charakteristiky úspěšných ad-hoc testů patří:
1. Vyšetřování
Hlavní prioritou ad-hoc testování je odhalit chyby v aplikaci pomocí technik, které běžné kontroly nezohledňují. Ad-hoc prověrky procházejí tento software s jasným cílem najít díry v testovacích postupech týmu, včetně pokrytí jejich testovacích případů.
2. Nestrukturovaný
Kontroly ad hoc obvykle nemají žádný stanovený plán, kromě provedení co největšího počtu testů mimo typické hranice formálního zajištění kvality. Testeři obvykle pro větší pohodlí seskupují kontroly podle jednotlivých komponent, ale ani to není nutné – kontroly mohou vymýšlet i v průběhu jejich provádění.
3. Zkušenostmi řízené
Ad-hoc testeři využívají svých předchozích zkušeností se softwarem k posouzení toho, které testy by přinesly největší přínos a řešily běžná slepá místa formálního testování.
Ačkoli je proces testování stále plně nestrukturovaný, testeři při rozhodování o své strategii uplatňují mimo jiné své znalosti z předchozích ad-hoc kontrol.
4. Široký záběr
Neexistuje přesný návod, které kontroly by měl tým během ad-hoc testování provádět, ale obvykle se týkají celé řady komponent – případně se více zaměřují na citlivější aspekty aplikace. To pomáhá testerům zaručit, že jejich zkoušky plně doplní formální testování.
Co testujeme v testech Ad-Hoc?
Týmy pro zajištění kvality obvykle testují následující prvky během ad-hoc testování:
1. Kvalita softwaru
Cílem těchto kontrol je odhalit chyby v aplikaci, které běžné testování nedokáže odhalit; to znamená, že proces testuje především celkový stav aplikace.
Čím více chyb ad-hoc testování odhalí, tím více vylepšení mohou vývojáři implementovat před termínem uzávěrky.
2. Testovací případy
Ad-hoc testování obvykle neimplementuje testovací případy – a to právě proto, aby tým mohl zkoumat, jak efektivní jsou při poskytování dostatečného pokrytí. Testovací případy jsou pravděpodobně nedostatečné, pokud ad-hoc kontroly mohou najít chyby, které běžné testovací procesy nemohou najít.
3. Testovací personál
Cílem může být také ověření dovedností a znalostí testovacího týmu, a to i v případě, že jsou testovací případy adekvátní. Například jejich metodika implementace případů může být nedostatečná a ad-hoc testování může být rozhodující pro řešení vzniklých mezer v pokrytí testů.
4. Softwarové limity
Cílem ad-hoc testování je také zjistit limity aplikace – například jak reaguje na neočekávané vstupy nebo vysoké zatížení systému. Testeři by mohli konkrétně zkoumat chybová hlášení programu a to, jak dobře tato aplikace funguje, když je pod značným tlakem.
Vyjasnění některých nejasností:
Testování ad hoc a průzkumné testování
Někteří lidé považují ad-hoc a průzkumné testování za synonyma, i když pravda je složitější.
1. Co je průzkumné testování?
Průzkumné testování se vztahuje k postupům zajištění kvality, které zkoumají software z komplexního hlediska a konkrétně kombinují procesy zjišťování a testování do jediné metody. Obvykle se jedná o střední cestu mezi plně strukturovaným testováním a zcela volnými ad-hoc kontrolami.
Průzkumné testování se nejlépe osvědčuje ve specifických scénářích, například když je nutná rychlá zpětná vazba nebo když tým musí řešit okrajové případy. Tento typ testování obvykle dosáhne svého plného potenciálu, když tým vedle něj použije skriptované testování.
2. Rozdíly mezi průzkumným testováním
a testování Ad-Hoc
Největší rozdíl mezi ad-hoc a průzkumným testováním spočívá v tom, že ad-hoc testování používá dokumentaci k záznamu a usnadnění kontroly, zatímco ad-hoc testování se tomu zcela vyhýbá. Explorativní testování klade větší důraz na volnost testování, ale nikdy ne na takovou úroveň jako ad-hoc přístup, který je zcela nestrukturovaný.
Průzkumné testování zahrnuje také poznávání aplikace a jejího vnitřního fungování během těchto kontrol – místo toho mají testeři ad-hoc často komplexní znalosti o funkčnosti softwaru ještě před zahájením.
Typy testů Ad-Hoc
V testování softwaru existují tři hlavní formy ad-hoc testování, a to:
1. Testování na opicích
Snad nejoblíbenějším typem ad-hoc testování jsou opičí testy, při kterých tým náhodně zkouší různé komponenty.
Obvykle probíhá během procesu testování jednotek a provádí řadu kontrol bez jakýchkoli testovacích případů. Testeři nezávisle zkoumají data zcela nestrukturovaným způsobem, což jim umožňuje prozkoumat širší systém a jeho schopnost odolat intenzivnímu zatížení ze strany uživatelů.
Pozorování výstupu těchto neskriptovaných technik pomáhá testovacímu týmu identifikovat chyby, které jiné jednotkové testy přehlédly kvůli nedostatkům v konvenčních metodách testování.
2. Testování kamarádů
V ad-hoc kontextu se na buddy testech podílejí minimálně dva zaměstnanci – obvykle tester a vývojář – a probíhají především po fázi unit testů. „Kamarádi“ pracují společně na stejném modulu, aby přesně určili chyby. Jejich rozmanité dovednosti a rozsáhlé zkušenosti z nich činí efektivnější tým, který pomáhá zmírnit mnoho problémů, které vznikají v důsledku nedostatku dokumentace.
Vývojář může dokonce sám navrhnout řadu testů a nechat si určit komponenty, kterým je třeba věnovat více pozornosti.
3. Párové testování
Párové testování je podobné, protože se ho účastní dva pracovníci, ale obvykle se jedná o dva samostatné testery, z nichž jeden provádí vlastní testy, zatímco druhý si dělá poznámky.
I bez formální dokumentace může vedení poznámek umožnit týmu neformálně sledovat jednotlivé ad hoc kontroly. Role testera a písaře se mohou v závislosti na testu vyměnit nebo si dvojice může ponechat své přidělené role po celou dobu procesu.
Vlastní kontroly obvykle provádí ten tester, který má více zkušeností – i když se o práci vždy dělí.
Manuální nebo automatizované testy Ad-Hoc?
Automatizované testování může týmům pomoci ušetřit ještě více času ve fázi zajišťování kvality, což umožní testerům zařadit do jejich rozvrhu více kontrol. I bez určité struktury je nezbytné, aby testeři pracovali na maximálním pokrytí a automatizace podporovala hloubkové kontroly tohoto softwaru.
Automatizované ad-hoc kontroly jsou obecně přesnější než manuální testy, protože se díky nim lze vyhnout lidským chybám při opakovaných úkolech – to je užitečné zejména při provádění stejných testů v různých iteracích. Úspěch tohoto postupu obvykle závisí na automatickém testovacím nástroji, který tým vybere, a na jeho funkčnosti.
Automatizované testování má však určitá omezení. Hlavní předností ad-hoc testování je například schopnost napodobit vstupy od uživatele a provádět náhodné kontroly podle toho, jak na ně tester přijde. Tyto testy by mohly ztratit svou náhodnost, pokud by se testovací program organizace potýkal se složitými kontrolami.
Čas potřebný k automatizaci těchto vysoce specifických úkolů může také omezit typickou úsporu času tohoto procesu. Je důležité, aby týmy důkladně prozkoumaly dostupné automatizační nástroje a našly takový, který odpovídá projektu jejich společnosti.
Co potřebujete k zahájení testování Ad-Hoc?
Zde jsou uvedeny hlavní předpoklady testování ad hoc:
1. Kvalifikovaný personál
Vzhledem k tomu, že ad-hoc testy představují rychlou, náhodnou kontrolu vnitřního fungování softwaru, obvykle pomáhají testeři, kteří mají s daným softwarem zkušenosti. Měli by také znát klíčové principy testování – to jim umožní snadno určit nejúčinnější kontroly.
2. Nestrukturovaný přístup
Testeři musí být ochotni opustit své obvyklé strategie pro ad-hoc testování; tento způsob myšlení je stejně důležitý jako samotné kontroly kvality. Tato metoda může být úspěšná pouze bez struktury nebo dokumentace a je nezbytné, aby na to testeři pamatovali v každé fázi.
3. Software pro automatizaci
Ačkoli ad-hoc testování spočívá spíše v testování náhodných vstupů a podmínek, automatizace je stále velmi účinnou technikou v jakémkoli kontextu.
Z tohoto důvodu by se při ad hoc kontrolách měly stále používat automatizované testovací nástroje, pokud je to možné, protože správná aplikace může tento proces výrazně zefektivnit.
4. Další formy testování
Ad-hoc testy nejlépe fungují spolu s dalšími kontrolami, které mají formálnější přístup – pomáhají týmu zaručit podstatné pokrytí celého softwaru. Je důležité, aby testeři kombinovali různé techniky, ačkoli to může být před, během nebo po dokončení ad-hoc testování.
Proces testování ad hoc
Obvyklé kroky, které by měli testeři při testování softwaru ad-hoc dodržovat, jsou:
1. Definování cílů ad-hoc testů
Tato fáze je omezená kvůli nedostatku dokumentace a struktury, ale přesto je nejdůležitější, aby měl tým jasné zaměření. Testeři mohou začít sdílet nejasné představy o tom, které testy mají být provedeny a kterým komponentám mají dát přednost.
2. Výběr testovacího týmu ad-hoc
Když tým vymýšlí řadu možných ad-hoc kontrol, zjišťuje také, kteří testeři by byli pro tento typ testování nejvhodnější. Obvykle vybírají testery, kteří aplikaci dobře rozumí, a mohou je také spojit s vývojářem.
3. Provádění ad-hoc testů
Po rozhodnutí, kteří testeři jsou pro tuto fázi vhodní, zahájí tito členové týmu kontrolu v dohodnutém bodě testování. Jejich cílem je provést co nejvíce kontrol ad hoc, které testeři mohou vymyslet až v této fázi.
4. Vyhodnocení výsledků testů
Po dokončení testů (nebo i mezi jednotlivými kontrolami) testeři vyhodnotí výsledky, ale bez jejich formálního zdokumentování v testovacím případu. Pokud zjistí nějaké problémy s aplikací, neformálně je zaznamenají a projednají další postup týmu.
5. Hlášení objevených chyb
Po vyhodnocení výsledků musí testeři informovat vývojáře o chybách v softwaru, aby měli dostatek času na jejich opravu před vydáním.
Testovací tým také využívá tyto informace k určení, jak zlepšit své formální testovací procesy.
6. Opakované testování podle potřeby
Testovací tým pravděpodobně zopakuje proces ad-hoc pro nové iterace aplikace, aby ověřil, jak dobře zvládá aktualizace. Vzhledem k tomu, že testeři již opravili mnoho dříve zjištěných nedostatků ve svých testovacích případech, budoucí ad-hoc kontroly mohou vyžadovat jiný přístup.
Osvědčené postupy pro testování ad hoc
Existují určité postupy, které by měly testovací týmy při ad-hoc testování uplatňovat, včetně:
1. Zaměřte se na potenciální nedostatky v testování
Ačkoli ad-hoc testování zahrnuje mnohem méně plánování než jiné typy, tým se stále snaží řešit nedostatky v zajištění kvality. Pokud mají ad-hoc testeři podezření na konkrétní problémy s testovacími případy týmu, měli by je při provádění kontroly upřednostnit.
2. Zvažte software pro automatizaci
Strategie automatizace, jako je hyperautomatizace, mohou společnostem, které chtějí provádět ad-hoc testy, nabídnout mnoho výhod.
Úspěch závisí na několika klíčových faktorech, včetně nástroje, který si podnik zvolí, a také na obecné složitosti jeho ad hoc testů.
3. Dělejte si komplexní poznámky
Nedostatek dokumentace při ad-hoc testování slouží především k dalšímu zefektivnění tohoto procesu – týmu by mohlo prospět, kdyby si v průběhu práce dělal neformální poznámky. Díky tomu mají testeři k dispozici přehledný záznam o těchto kontrolách a jejich výsledcích, což zvyšuje jejich celkovou opakovatelnost.
4. Pokračujte ve zdokonalování testů
Ad-hoc testeři průběžně zdokonalují svůj přístup, aby zohlednili změny v testovací strategii týmu. Například při zkoumání novějších verzí softwaru společnosti mohou tyto kontroly upravit v reakci na novější a rozsáhlejší formální testovací případy.
7 chyb a nástrah při implementaci
Testy ad hoc
Stejně jako u každého procesu testování existuje celá řada možných chyb, kterých by se měl tým vyvarovat, jako např.:
1. Nezkušení testeři
Aby bylo možné udržet očekávané tempo ad-hoc testování, musí vedoucí týmu přidělovat testery na základě jejich znalostí a dovedností. Zatímco mnoho forem testování mohou zvládnout pracovníci zajišťující kvalitu na základní úrovni, ad-hoc kontroly vyžadují členy týmu, kteří plně rozumí softwaru; nejlépe se zkušenostmi s prováděním těchto testů.
2. Nesoustředěné kontroly
Ad-hoc testování může výrazně zlepšit pokrytí testů díky rychlejšímu tempu – tým nemusí před každou kontrolou a po ní vyplňovat rozsáhlou dokumentaci.
Ad-hoc testeři se však musí stále soustředit na určité oblasti; mohou se například rozhodnout upřednostnit určité komponenty s vyšším rizikem selhání.
3. Žádné plánování
Vyhnout se jakémukoli plánu může omezit účinnost ad-hoc testování. Navzdory nestrukturované povaze tohoto přístupu je důležité, aby měl tým před zahájením zhruba představu o tom, které testy se budou provádět.
Čas je během tohoto procesu omezený a znalost postupu může přinést mnoho výhod.
4. Příliš strukturovaný
Na opačném konci spektra se tento přístup obvykle opírá o nedostatečné plánování, protože to testerům pomáhá aktivně podvracet testovací případy a nacházet skryté chyby.
Testování ad hoc je také známé jako náhodné testování a vnucování struktury může těmto kontrolám zabránit v nalezení chyb.
5. Žádné dlouhodobé změny
Účelem ad-hoc testování je identifikovat případné nedostatky v testovacích případech týmu; zkoumá se tím celková strategie týmu stejně jako samotný software.
To však znamená, že ad-hoc testy jsou obecně účinné pouze tehdy, pokud tým tyto informace používá k postupnému zdokonalování svých formálních kontrol.
6. Nekompatibilní datové sady
Prakticky každá forma testování vyžaduje určitou formu simulovaných dat, aby bylo možné posoudit, jak aplikace reaguje; některé nástroje umožňují testerům automaticky naplnit program maketami dat.
To však nemusí odrážet způsob, jakým by uživatel se softwarem pracoval – ad hoc kontroly vyžadují soubory dat, se kterými se software pravděpodobně setká.
7. Informační sila
Je nezbytné, aby testeři a vývojáři spolu neustále komunikovali, a to i v případě, že nejsou součástí procesu ad-hoc testování.
To pomáhá všem pochopit, které testy byly provedeny – ukazuje další kroky, které je třeba provést, a zároveň zabraňuje tomu, aby testeři zbytečně opakovali některé kontroly.
Typy výstupů z testů Ad-Hoc
Kontroly ad hoc přinášejí několik různých výstupů, včetně:
1. Výsledky testů
Jednotlivé testy poskytují různé výsledky, které jsou specifické pro konkrétní součást a přístup – ten může mít mnoho podob.
Obvykle je na testerovi, aby určil, zda výsledky představují chybu, ačkoli nedostatek dokumentace ztěžuje porovnání s jeho očekáváním. Pokud tým zjistí nějaké problémy, předá tyto výsledky vývojářům.
2. Zkušební protokoly
Samotný software používá složitý systém interních protokolů, které monitorují uživatelské vstupy a upozorňují na řadu problémů se soubory nebo databázemi, které se mohou objevit.
To může ukazovat na vnitřní chybu, včetně konkrétní části softwaru, která problém způsobuje. Díky těmto informacím mohou ad-hoc testeři a vývojáři mnohem snadněji řešit objevené problémy.
3. Chybová hlášení
Cílem mnoha ad-hoc kontrol je prolomit software a odhalit jeho limity, což znamená, že chybová hlášení aplikace jsou jedním z nejčastějších výstupů těchto testů.
Záměrným vyvoláním chybových hlášení může tým předvést, co vidí běžný koncový uživatel, kdykoli má neočekávaná akce, kterou provede, nepříznivý vliv na fungování programu.
Příklady testování Ad-Hoc
Zde jsou tři scénáře ad-hoc testování, které ukazují, jak je může tým implementovat pro různé aplikace:
1. Webová aplikace e-commerce
Pokud chce společnost testovat webovou aplikaci založenou na elektronickém obchodě, může použít ad-hoc testování – konkrétně testování na opicích – aby zjistila, jak dobře platforma zvládá neočekávané interakce s uživateli.
Testující se mohou snažit dotáhnout každou funkci až na hranici jejích možností, například přidávat do košíku položky v nereálném množství nebo se pokoušet nakupovat produkty, které nejsou skladem. Nejsou omezeni testovacími případy týmu a existuje jen málo limitů, které kontroly mohou provádět; testeři se dokonce mohou pokusit dokončit nákupy pomocí zastaralých adres URL.
2. Aplikace pro stolní počítače
Ad-hoc testeři mohou tyto techniky implementovat také pro desktopové aplikace s možným zaměřením na různé počítače a na to, jak dobře se na nich program přizpůsobí.
Členové týmu mohou tyto kontroly provádět opakovaně, aby zjistili, jak změna nastavení hardwaru nebo softwaru ovlivňuje celkový výkon aplikace. Určitá grafická karta může mít například potíže s vykreslováním rozhraní.
Případně by tito testeři mohli jednoduše zadat programu nemožné vstupy a zjistit, jak reaguje, například zda dokáže správně zobrazit chybové hlášení, které koncovému uživateli problém dostatečně vysvětlí.
3. Mobilní aplikace
Jedním ze způsobů, jak mohou ad-hoc testeři prověřit mobilní aplikaci, je otestovat její bezpečnostní protokoly – mohou se například pokusit získat přímý přístup k vývojovým nástrojům aplikace.
Tým se může pokusit zjistit, zda je schopen provádět neautorizované akce nalezením běžných mezer a exploitů; o usnadnění této činnosti může požádat zejména zaměstnance se zkušenostmi v oblasti zabezpečení aplikací.
To může zahrnovat i párové testování s vývojáři, protože ti mají přehled o návrhu aplikace a mohou testerům umožnit, aby software rozbili a ukázali, kde přesně je jeho zabezpečení nedostatečné.
Typy zjištěných chyb a závad
prostřednictvím testování Ad-Hoc
Ad-hoc kontroly mohou odhalit mnoho problémů s programem, jako například:
1. Chyby funkčnosti
Použití ad-hoc testování k prověření základních funkcí aplikace může odhalit závažné chyby, které ovlivňují způsob, jakým s ní mohou pracovat koncoví uživatelé.
Například opičí testování možností platby na webu elektronického obchodu ukáže podmínky, které brání transakci.
2. Problémy s výkonem
Tito testeři mohou cíleně pracovat na vytvoření výkonnostních problémů v programu – například naplněním databáze různými spamovými vstupy.
To by se mohlo projevit výrazným zpožděním nebo dokonce celkovou nestabilitou softwaru, což by pravděpodobně vedlo k pádu (potenciálně celého systému).
3. Problémy s použitelností
Tyto kontroly by také mohly upozornit na chyby v rozhraní a celkovém uživatelském prostředí. Například uživatelské rozhraní mobilní aplikace se může v jiném operačním systému nebo rozlišení obrazovky zobrazovat jinak. Špatné rozhraní může vést k tomu, že uživatelé budou mít problémy s ovládáním této aplikace.
4. Bezpečnostní nedostatky
Náhodná povaha testování ad-hoc umožňuje pokrýt celou řadu běžných i vzácných bezpečnostních problémů; tester může pomocí těchto kontrol najít zadní vrátka v administraci programu.
Případně se při kontrole může ukázat, že software nemá žádné šifrování dat.
Běžné metriky testování ad-hoc
Ad-hoc testování využívá k usnadnění svých výsledků různé metriky, včetně:
1. Účinnost detekce závad
Tato metrika sleduje, jak efektivní je proces testování při hledání chyb v jednotlivých formách testování, včetně testování ad-hoc. Účinnost detekce defektů je procento odhalených defektů dělené celkovým počtem problémů – ukazuje, jak jsou testy účinné.
2. Míra pokrytí testů
Pomocnou funkcí ad-hoc testování je zvýšení pokrytí kontrolou komponent způsobem, který testovací případy nezohledňují. To znamená, že se testeři budou také snažit radikálně zvýšit pokrytí testů u každé kontroly, jak jen to bude možné.
3. Celková doba trvání testu
Ad-hoc testování je mnohem rychlejší než jiné procesy zajištění kvality – a je nezbytné, aby testeři pracovali na udržení této výhody. Metriky doby trvání testů ukazují členům týmu, jak mohou ušetřit čas a ještě více umocnit výhody ad-hoc strategií.
4. Míra nehodovosti
Cílem těchto testů je často rozbít software a způsobit pád nebo závažnou chybu – díky tomu mohou jít nad rámec typických testovacích strategií a najít neočekávané problémy. Za tímto účelem může být užitečné vědět, jak často software padá a co je příčinou těchto problémů.
5 nejlepších nástrojů pro testování ad hoc
Pro ad-hoc testování v oblasti testování softwaru je k dispozici mnoho bezplatných i placených testovacích nástrojů – pět nejlepších je následujících:
1. ZAPTEST Free & Enterprise Edition
ZAPTEST je komplexní program pro testování softwaru, který poskytuje silnou úroveň funkcí testování + RPA jak ve své bezplatné, tak podnikové verzi.
Tato sada pro automatizaci softwaru + RPA Suite umožňuje kompletní testování na různých desktopových a mobilních platformách; technologie 1SCRIPT softwaru také umožňuje uživatelům snadno provádět stejné kontroly opakovaně. Kromě toho nástroj využívá nejmodernější počítačové vidění, díky němuž může ZAPTEST provádět ad-hoc testy z pohledu člověka.
2. BrowserStack
BrowserStack je cloudová platforma, která umožňuje testování na více než 3 000 různých strojích a navíc umožňuje automatizovat skripty Selenium. Ačkoli poskytuje silné pokrytí softwarových projektů, nejlépe funguje v prohlížečích a mobilních aplikacích.
Součástí testovacích řešení BrowserStack je také bezplatná zkušební verze se 100 minutami automatického testování – i když její využití může být omezené.
Přestože cloudový přístup může být užitečný, má také negativní vliv na dobu odezvy platformy.
3. LambdaTest
LambdaTest podobně využívá cloudovou technologii a klade velký důraz na testování v prohlížeči, což může omezit jeho účinnost pro jiné aplikace – i když se stále dobře hodí pro programy pro iOS a Android. Jedná se o užitečnou platformu, která je integrovatelná s mnoha dalšími službami testovacího hostingu.
Někteří uživatelé však mají smíšené reakce na ceny aplikace v různých dostupných variantách bez zkušebního provozu, což může omezit dostupnost pro menší organizace.
4. TestRail
TestRail je obecně poměrně přizpůsobivý díky tomu, že běží výhradně v prohlížeči, a navzdory silnému zaměření na efektivní testovací případy se může pochlubit i přímou ad-hoc funkčností. Analýza, kterou poskytuje po každém testu, může také pomoci týmům, které se aktivně vyhýbají vytváření vlastní nezávislé dokumentace, a zároveň jim umožňuje ověřit jejich proces testování.
Větší sady však mohou mít potíže s formátem založeným na prohlížeči, což může značně omezit časovou úsporu ad-hoc testování.
5. Zephyr
Zephyr je platforma pro správu testů od společnosti SmartBear, která pomáhá týmům zajišťujícím kvalitu zlepšit přehled o testování a zároveň se dobře integruje s dalším softwarem pro sledování chyb.
Tato funkce je však omezena na určité aplikace, z nichž Zephyr nejvíce využívá Confluence a Jira – nemusí to být nejefektivnější řešení pro každou firmu. Pod značkou Zephyr je k dispozici několik škálovatelných programů za různé ceny.
Kontrolní seznam, tipy a triky pro testování Ad-Hoc
Zde jsou další tipy pro týmy, na které by měly brát ohled při provádění ad-hoc testování:
1. Stanovení priorit citlivých složek
Některé funkce nebo součásti jsou přirozeně více ohroženy chybami než jiné, zejména pokud jsou důležité pro celkovou funkci programu.
Každý přístup k testování by měl identifikovat části aplikace, kterým by bylo vhodné věnovat důkladnější pozornost. To je užitečné zejména tehdy, když je celkový čas na testování omezený.
2. Prozkoumejte různé testovací nástroje
Nástroj, který organizace implementuje pro usnadnění svých testů, může ovlivnit pokrytí a spolehlivost těchto kontrol.
Při ad-hoc testování se vyplatí prozkoumat co nejvíce programů a najít ty, které vyhovují jeho uživatelskému aspektu. Software využívající technologii počítačového vidění, jako je ZAPTEST, může k ad-hoc testům přistupovat pomocí strategie podobné lidské.
3. Přijměte ad-hoc myšlení
Ad-hoc testování nabízí obrovskou volnost v celé fázi zajištění kvality, ale tým se mu musí věnovat, aby získal klíčové výhody této strategie.
Například ad-hoc testeři by měli upustit od všech svých obvyklých dokumentů nad rámec základních poznámek a musí software prověřit ze zcela nové perspektivy.
4. Důvěřujte testovacím instinktům
Zkušenosti s ad-hoc testováním nebo obecnými kontrolami softwaru mohou pomoci upozornit na běžná místa selhání, což testerům pomůže určit, jak odhalit chyby všech typů.
Je důležité, aby testeři důvěřovali svým instinktům a vždy tyto znalosti využili ve svůj prospěch – mohou intuitivně odhadnout, které ad-hoc kontroly by byly nejpřínosnější.
5. Úplné zaznamenání objevených chyb
Ačkoli ad-hoc testování nemá žádnou formální dokumentaci a většinou se spoléhá na neformální poznámky, stále je důležité, aby tým dokázal identifikovat a sdělit příčinu softwarové chyby.
Musí zaznamenat všechny informace, které test poskytne a které jsou důležité pro vývojáře, například případné příčiny těchto problémů.
6. Vždy berte ohled na uživatele
Každá forma testování se snaží do určité míry přizpůsobit celkovému zážitku uživatele – a ad-hoc testování není výjimkou. Ačkoli se často zabývá hlouběji vnitřním fungováním aplikace a dokonce i jejím interním kódem, měli by se ad-hoc testeři pokusit tento software prolomit způsobem, který by uživatelé teoreticky mohli.
7. Neustálé zlepšování procesu
Testovací týmy by měly zdokonalit svůj přístup k ad-hoc testování mezi několika iteracemi téhož softwaru a mezi jednotlivými projekty.
Mohou shromažďovat zpětnou vazbu od vývojářů, aby zjistili, jak dobře jejich ad-hoc testy pomohly ve fázi zajištění kvality a zda se jim podařilo výrazně zvýšit pokrytí testů.
Závěr
Ad-hoc testování může organizacím všeho druhu pomoci ověřit jejich strategii testování softwaru, ale způsob, jakým tuto techniku implementují, může být významným faktorem její účinnosti.
Klíčem k získání co největšího přínosu z ad-hoc kontrol je vyváženost různých typů testování – zejména proto, že tato forma testování má doplnit ostatní a vyplnit strategickou mezeru.
S aplikací, jako je ZAPTEST, mohou týmy provádět ad-hoc testy s větší jistotou nebo flexibilitou, zejména pokud implementují automatizaci. Bez ohledu na konkrétní přístup týmu může jeho odhodlání k ad-hoc testování způsobit revoluci v celém programu nebo projektu.