Agile Test Automation Framework
⚡ Chytré shrnutí
Agilní automatizace testování aplikuje automatické kontroly v rámci krátkých sprintů, kde se požadavky mění každý týden a sada vytvořená pro stabilní kaskádové vydání se rychle stává spíše zátěží pro údržbu než záchrannou sítí.
Testování agilní automatizace
Agilní automatizované testování je praxe používání automatizace testování v rámci agilního procesu dodávání. Jejím účelem je zefektivnit a zefektivnit vývoj softwaru a zároveň chránit kvalitu a kontrolovat čas a zdroje, které vydání spotřebovává. Protože se testy píší souběžně s prací na funkcích, tato praxe silně závisí na koordinaci mezi vývojáři a testery.
Od doby, kdy se agilní metodologie rozhodla zbavit se pracné reality vodopádového modelu, je její vliv pociťován v testování automatizace také. Tyto dvě disciplíny je třeba záměrně kombinovat:
Automatizace ve vodopádu vs. automatizace v agilním řízení
V tradičním životním cyklu testování softwaru je automatizované testování proveditelné, jakmile je aplikace stabilní a požadavky jsou splněnyPředpokládá se značné množství času, vysoce kvalifikované specialisty na automatizaci a znatelné náklady na nastavení. Základním účelem je dlouhodobé snížení nákladů a potvrzení, že v existujících testovacích případech nebyly zavedeny žádné nové vady.
Automatizované testování není ze své podstaty průzkumné, protože jeho hlavní úlohou je šetřit čas a snižovat náklady. Není navrženo tak, aby odhalovalo nové a inovativní defekty. Automatizované testování většinou potvrzuje chování, které již existuje.
Tato dvě nastavení proto kladou na testovací sadu velmi odlišné požadavky:
| Faktor | Automatizace ve vodopádu | Automatizace v agilním prostředí |
|---|---|---|
| Stav aplikace | Stabilní a schválený před zahájením skriptování | Mění se každý sprint, často během skriptování |
| Dostupný čas | Vyhrazená fáze automatizace | Cokoliv se vejde do sprintu na jeden až čtyři týdny |
| Kdo skriptuje | Samostatný tým specialistů na automatizaci | Dodavatelský tým, testeři a vývojáři společně |
| Primární cíl | Dlouhodobé snížení nákladů v rámci rozsáhlé sady regresních algoritmů | Rychlá zpětná vazba k právě vytvořenému přírůstku |
| Riziko údržby | Nízké, protože požadavky se mění pomalu | Vysoká, protože požadavky se neustále mění |
Jak automatizovat v agilní metodologii
Agilní metodologie se podle své vlastní definice zbavuje zdlouhavé dokumentace, aby nové nápady mohly být rychle implementovány a lidé mohli volně komunikovat. Upřednostňuje průzkumnou práci před papírováním:
Mezi základními filozofiemi agilní metodologie a automatizovaného testování existuje skutečný rozpor. Agilní týmy jej řeší zúžením toho, co automatizují, spíše než menší automatizací: kontroly se píší ve stejném sprintu jako funkce, přesouvají se na úroveň jednotek a API, kde je jejich údržba nejlevnější, a běží při každém sestavení.
Základní body pro agilní automatizaci testování
Než svěříte kapacitu sprintu automatizaci, zvažte body, které rozhodují o tom, zda lze skript vůbec dokončit:
- Doba návrhu a kódování: Každý skript musí být navržen, naprogramován a zkontrolován stejně jako produkční kód.
- Ověření oproti testovacím datům: Hotový skript musí být ověřen s existujícími testovacími daty, než mu kdokoli může důvěřovat.
- Účel testu: Funkční a regresní testy mají různé náklady na údržbu a různou dobu použitelnosti.
- Sprint Délka: Sprint trvá jeden až čtyři týdny, nejčastěji dva, což jen zřídka ponechává prostor pro velké úsilí spojené se skriptováním.
Druhým faktorem je změna požadavků. Agilní přístup je ze své podstaty technikou reakce na změny vyvolané zákazníkem, takže se v průběhu vývoje hodí k častým úpravám.
Automatizované testování je naopak nejužitečnější u stabilních požadavků. Nehodí se dobře do neustálého měnícího se prostředí agilní metodologie, a proto má větší váhu volba toho, co automatizovat, než množství automatizace.
Agilní automatizační nástroje
Výběr relevantního automatizační nástroj je dalším důležitým faktorem při zavádění automatizovaného testování v rámci agilní metodologie. Licencované automatizační nástroje například ukládají přísná kritéria zabezpečení přístupu pro různé typy a úrovně uživatelů, což omezuje, kdo má přístup k prostředkům patřícím danému frameworku pro automatizaci testování.
Agilní metodologie naopak klade důraz na otevřenou spolupráci a neomezenou interakci mezi členy týmu. Omezující přístupové zásady působí proti této soudržnosti a mohou vést k výsledkům, které nejsou ani užitečné, ani nepřispívají k úspěchu projektu.
Prioritou je dodat kvalitní automatizační skripty v čase, který agilní proces umožňuje. Pečlivě vybírejte kandidátské testovací případy, aby výsledné skripty mohly být později znovu použity a přesto dokončeny v daném čase.
I v agilním prostředí je stále třeba některé testy zahrnout – zejména regresní testy. Následující část se zabývá situacemi, kdy se automatizované testování hodí a jak se každý z nich prolíná s agilním testováním.
Testování automatizace Concepts Při aplikaci na agilní metody
Níže uvedená tabulka uvádí sedm klasických podmínek, které ospravedlňují automatizaci testu, a pro každou z nich nabízí agilní řešení. Pouze tři z nich lze jasně promítnout do agilního sprintu a všechny tři mají regresní tvar:
| # | Koncept automatizovaného testování | Odpověď na téma agilní metodologie |
|---|---|---|
| 1 | Test je nutné často opakovat. | A právě zde se uplatňuje koncept regresního testování. |
| 2 | Pracovní postup testu a jeho validace se v průběhu času pomalu vyvíjejí a mění. | Není užitečné pro agilní testování, protože agilní testování znamená časté změny požadavků. |
| 3 | Test ověřuje obchodní proces nebo pracovní postup, spíše než vzhled a dojem, barvu nebo rozvržení tabulky. | Tento scénář lze považovat za součást manuálního testování. |
| 4 | Test poskytuje výsledky pro regulační orgán, který požaduje, aby byly tyto výsledky elektronicky zaznamenány a archivovány jako formální důkaz shody. | Nevhodné pro agilní metodologii, protože vyčerpávající úroveň dokumentace není součástí agilní metodologie. |
| 5 | Test je velmi repetitivní nebo má mnoho kroků, které musí být pokaždé provedeny přesně stejně, přičemž je třeba se vyhnout únavě testera z manuálního hlediska. | Není vhodné pro agilní metodologii. |
| 6 | Výsledek úspěšného nebo neúspěšného testu lze poměrně snadno určit a zaznamenat pomocí vybraného automatizačního nástroje. | Vhodné pro regresní testy během agilního testování, které vyžadují repetitivní a pracné dovednosti. |
| 7 | Test musí do aplikace vnést značné množství dat. | Lze začlenit jako regresní testování. |

.jpg)


