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

  • 🔘 Napětí jádra: Automatizace odměňuje stabilitu, zatímco agilní přístup odměňuje změny, takže výběr testů je důležitější než pokrytí.
  • ☑️ Kontrast vodopádu: Tradiční automatizace předpokládá stabilní aplikaci, odborné skriptovací techniky a vysoké náklady na nastavení.
  • (Tj. Sprint realita: Jednotýdenní až čtyřtýdenní sprint se málokdy hodí na návrh, kódování a validaci rozsáhlých skriptů.
  • 🧪 Není průzkumné: Automatizované testy potvrzují známé chování; neobjevují nové a inovativní vady.
  • 🛠️ Výběr nástroje: Omezující licencované nástroje kolidují s otevřenou spoluprací, na které jsou agilní týmy závislé.
  • 📈 Nejlépe sedí: Opakované regresní kontroly s velkým množstvím dat a jasnými výsledky typu „vyhovuje“ nebo „nevyhovuje“ se dobře automatizují.

Agile Test Automation Framework

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:

Agile plus automatizace kombinující automatizaci v agilním prostředí

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:

Agilní přístup odmítá zdlouhavou dokumentaci a upřednostňuje průzkumné testování.

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

Licencované automatizační nástroje uzamykají zdroje, zatímco agilní metodologie zůstává méně omezující

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

Sedm konceptů automatizovaného testování spárovaných s odpovídajícími odpověďmi na agilní metodologii

Nejčastější dotazy

Pravidlo vrstvení: mnoho rychlých jednotkových testů v základu, méně integračních a API testů uprostřed a tenká vrstva end-to-end UI testů navrchu. Udržuje sadu o velikosti sprintu rychlou a levnou na údržbu.

Automatické kontroly pro příběh se píší ve stejném sprintu jako příběh. Týmy obvykle začínají ve sprintu jedna s jednotkovými testy, protože čekání na dostatečnou stabilitu produktu vede k hromadění dluhu z manuálního testování.

Uspořádejte fáze tak, aby odpovídaly pyramidě. Jednotkové testy se spouštějí jako první, protože jsou nejrychlejší, poté integrační a API testy a nakonec malá end-to-end sada. Chyby se objevují nejprve na nejlevnější úrovni. Guru99 pokrývá mechaniku v průběžná integrace.

Nejčastěji proto, že je pyramida obrácená – velké investice do pomalých a křehkých testů uživatelského rozhraní a téměř žádné investice na úrovni jednotek. Dalšími příčinami jsou automatizace vynechaná z odhadů příběhů a sady, kterým nikdo natolik nedůvěřuje, aby zablokoval vydání.

Celý realizační tým. Vývojáři vlastní jednotkové testy, testeři vlastní API a end-to-end vrstvy a oba si vzájemně kontrolují práci. Samostatný následný automatizační tým znovu zavádí zpoždění při předávání, které má Scrum odstranit.

Umístěte jej do karantény mimo blokující kanál, vyvolejte defekt a opravte nebo smažte jej během sprintu. Ponechání nespolehlivého testu v hlavním běhu naučí tým ignorovat červené sestavení, což stojí více než chybějící pokrytí.

Samoopravné lokátory znovu identifikují přesunutý prvek z jeho kontextu namísto selhání, což snižuje počet selhání vyvolaných údržbou. Modely také generují testovací data, prioritizují testy, které se mají spustit s rozdílem, a shlukují duplicitní selhání, takže sprintový tým provede jednorázovou třídění.

Rychle je to navrhuje. GitHub Copilot scaffolduje objekty stránek, příslušenství a asserce z existujícího kódu, což odstraňuje většinu zbytečností.ping. Revzobrazit každý návrh, protože vygenerovaný test může potvrdit aktuální chování, nikoli požadované.

Shrňte tento příspěvek takto: