how implement efficient test automation agile world
Automatizace v Agile je velmi kritická.
Přemýšlejte o mnoha funkcích, které jsou přidávány a dodávány v každém Sprintu. Musí existovat způsob, jak zajistit, aby nově přidaná funkce neměla vliv na stávající funkce.
Vzhledem k nízké době trvání Sprintu je prakticky nemožné provést celý oblek pokaždé, když je produkt na konci Sprintu zvýšen. Mít automatický testovací oblek by zde rozhodně hrálo větší roli.
Zavedení a zrání do automatizace by však určitě trvalo nějaký čas. Počáteční investice do plánování a návrhu činnosti automatizace by se z dlouhodobého hlediska určitě vyplatila.
V této 3. části pokročilé řady Agile Testing se pokouším citovat několik ukazatelů, které je třeba zvážit na základě mých zkušeností, protože do svého projektu přinášíte automatizaci.
Také si přečtěte část 1 a část 2 nejprve lépe porozumět tématu.
Co se naučíte:
Co automatizovat v Agile?
Kdykoli plánujeme zavést automatizaci do našich projektů, většina z nás okamžitě hlasuje pro to, aby byl nejlepší oblek „Smoke Tests suit“ nebo „regression test suit“. kandidát na automatizaci . Samozřejmě, že jsou, ale když uvažujeme o pyramidě pro automatizaci, můžeme dojít k závěru, že mluvíme pouze o vrchní vrstvě pyramidy.
Kromě výše uvedené vrstvy stále máme servisní vrstva a jednotková vrstva to je důležitější.
nejlepší bezplatný databázový software pro Windows
Jaké testy, kromě testů kouře a regrese, mohou být dobrými kandidáty na automatizaci?
# 1) Budování a nasazení
V tradičních prostředích máme předdefinovaná sestavení, která mohou být týdenní, čtrnáctidenní nebo někdy dokonce měsíční. Jedním z důvodů je, že tato nasazení nějakou dobu trvají. Problém s tímto přístupem spočívá v tom, že musíme čekat na předdefinovaná data, abychom chyby opravili nebo nechali implementovat nové funkce, takže je tu zpoždění.
Druhým důvodem bylo - v době, kdy testeři dokončili testování a přišli s chybami a defekty, programátoři přešli k různým implementacím a mají menší zájem o vyřešení chyb starší aplikace. Tento přístup také zpožďuje čas na zpřístupnění funkce ve výrobě.
Budování a nasazení jsou entity, které se opakují a někdy jsou nudné. Nasazení sestavení může také trvat hodiny, což zpozdí testování a případně zpětnou vazbu. Jako opakující se úkol se nasazení stává dobrým kandidátem na automatizaci.
Přečtěte si také=> Proces správy vydání a nasazení
Několik výhod nasazení automatizovaného sestavení je:
- Žádná šance na chyby nasazení (lze zabránit lidským chybám, jako je kopírování nesprávného souboru nebo kopírování souboru do nesprávného umístění)
- Chyba / funkce jsou k dispozici k testování, jakmile jsou opraveny
- Testeři získají více času na testování
- Tato funkce je připravena k přesunutí do výroby za kratší dobu
- Rychlá zpětná vazba
# 2) Testy jednotek / Testy komponent
Už jsem hovořil o důležitosti automatizace jednotkové vrstvy pomocí Přístup TDD v mém posledním tutoriálu .
Toto tvoří nejnižší vrstvu pyramidy, proto základ a jakýkoli základ musí být pevný jako skála. Vývojový tým by měl spolupracovat a spolupracovat, aby do této vrstvy zahrnul většinu testu.
# 3) Testování API / webové služby
Webové služby jsou médium, ve kterém si dvě aplikace vyměňují data nebo informace, pokud jde o požadavek a odpověď, aniž by se obtěžovaly se základní architekturou nebo technologií. Jednoduše řečeno - zadání požadavku a ověření odpovědi je to, co běžně děláme při testování webových služeb.
Testování webových služeb znamená psaní programů pro volání těchto metod webových služeb a ověření hodnoty, kterou vrátí. Můžeme dokonce otestovat služby pro různé obměny a kombinace. Nechte všechna data testu v listu aplikace Excel a váš program může data přečíst a zavolat na testovatelnou službu předáním dat testu jako parametru a ověřením výsledků.
Toto konkrétní testování je součástí střední vrstvy pyramidy. Většinu funkčních testů lze vložit do této vrstvy. Řešení vad, které vzniknou v této vrstvě, se snadno opraví a nebudou odloženy, dokud nebude k dispozici uživatelské rozhraní.
# 4) Testování za GUI
Automatizace testování za grafickým uživatelským rozhraním je poměrně jednodušší než automatizace skutečného grafického uživatelského rozhraní. Další výhodou je, že bez ohledu na změny uživatelského rozhraní zůstává funkčnost nedotčena. I když se některý prvek uživatelského rozhraní změní, funkčnost funkce se nezmění. Tato technika se zaměřuje hlavně na obchodní logiku a pravidla.
Testovací případy jsou většinou psány v tabulkovém formátu nebo v tabulce a jsou psány úryvky příslušenství / kódu, které přijímají vstup z těchto tabulek a vracejí výsledky. Výsledky se generují okamžitě a poskytují netechnickým zúčastněným stranám skvělou platformu pro provádění těchto testů a získání očekávaných výsledků. Jedním z nástrojů použitých k dosažení této techniky je Zdatnost .
# 5) Nefunkční testování
Tento nefunkční testovací technika v zásadě zahrnuje testování zátěže, výkonu a stresu. Na trhu jsou snadno dostupné různé nástroje, které lze použít k automatizaci těchto testů.
jak přehrávat soubory SWF v systému Windows 7
# 6) Porovnání dat
Mnoho našich testů vyžaduje, abychom porovnali datové soubory, včetně textových souborů, souborů CSV nebo souborů aplikace Excel
- Tyto soubory lze porovnat s výchozími hodnotami pro provádění ověření dat
- Porovnání může být stejných dat, ale jiného formátu. K tomu v podstatě dochází, když máme dva stejné soubory generované ze dvou různých zdrojů
Tato srovnání mohou být opakovaná, a proto automatizovaná.
# 7) Hledání
Hledání konkrétní entity z velkého množství souborů může být také zdlouhavé a Bůh nám pomáhá, pokud se jedná o opakující se úkol. Jedním příkladem je prohledávání souborů protokolu. Pokud je to také zdlouhavý a opakující se úkol, měli bychom přemýšlet o jeho automatizaci.
# 8) Opakované úkoly
Jakýkoli úkol počínaje interakcí s koncovými uživateli nebo psaní příběhů až po jeho vývoj, pokud se opakuje, by měl být považován za automatizaci. Měli bychom pochopit, že automatizace neznamená, že do ní musí být zapojen sofistikovaný nástroj / technologie. Může to být jednoduché makro VB nebo program Java s Javascriptem k vyřešení účelu.
Kde začít?
Neexistují žádné odrážky ani podrobný průvodce, který říká, kde spustit automatizaci. Zahájení automatizace pro tým vyžaduje, abyste brainstormovali a důkladně přemýšleli o tom, které aspekty chcete automatizovat, nebo jaký je konečný cíl automatizace?
Můžete začít:
- Identifikace opakujících se úkolů,
- Identifikace oblastí bolesti aplikace
- Identifikace výzev testování
Pokud nemáte v rámci projektu / týmu prohlídky žádnou automatizaci, můžete pravděpodobně přejít na vícevrstvý přístup, při kterém lze nejprve zacílit jednotkové testy na automatizaci. Získáte tak nejvyšší návratnost investic.
Současně mohou testeři začít pracovat na kouřovém obleku a poté na regresi. Jakmile tým získá dovednosti a bude se cítit pohodlně, postupně přejděte k automatizaci dalších opakujících se úkolů.
Neskočte přímo do nákupu nového nástroje bez vyhodnocení svých potřeb. Jak jsem již řekl dříve, jednoduchý program nebo makro může vyřešit váš účel automatizace některých opakujících se úkolů. Než se tedy rozhodnete koupit nástroj, udělat POC a vyhodnotit, zda by byl tento nástroj efektivní.
Projděte si tyto dokumenty, kde jsem v následujících článcích poskytl více podrobností o tom, jak vybrat správné testovací případy pro automatizaci, a některé postřehy týkající se odhadu úsilí o automatizaci manuální výzvy k procesu testování automatizace a odhad testu projektu automatizace selenu.
Po dokončení rozsahu automatizace a nástroje je dalším návrhem rámce.
Nezapomeňte, že v Agile se rámec vyvinul. NEZAMĚŘUJTE nejprve návrh celého rámce a poté implementujte. Navrhněte a implementujte pro MVP (Minimum Viable Product) a poté vylepšte stávající rámec tak, aby zahrnoval další funkce. Pokud chcete, aby vaše automatizační sada byla robustní, musíte také použít dobrou praxi kódování a vývoje.
Některé osvědčené postupy
- Nezaměřujte se na automatizaci 100% najednou. Začněte v malém. Pamatujte, že jde o vyvíjející se proces
- Postupujte podle stejných agilních postupů, jaké používáte při vývoji softwaru. Automatizace také vyžaduje řádné plánování a návrh. Při automatizaci byste nechtěli zvýšit své technické dluhy
- Vytvořte nevyřízené položky automatizace testů. Tento nevyřízený požadavek se může pohybovat od implementace nové funkce po vylepšení stávající funkce. Dejte svým identifikovaným předmětům body příběhu a podle toho je přiřaďte. Vezměte tyto nevyřízené položky do svého Sprintu a sledujte je pomocí desky Kanban
- Napište kritéria přijetí pro své příběhy o automatizaci. Tato kritéria přijetí mohou zahrnovat:
- Integrace testovací sady s CI
- Přenášení obleku na centralizované místo
- Výsledky odešlete e-mailem
- Zajištění odesílání souborů protokolu chyb, když test selže
- Jakákoli další kritéria….
- Neutrácejte čas hodnocením nového nástroje. Z nového nástroje můžete vytvořit prioritní kontrolní seznam toho, co chcete, a rozhodnout se pro časovou osu pro jeho vyhodnocení. Pokud nevidíte své výsledky ve stanoveném čase, přejděte k dalšímu
- Uvážlivě se rozhodněte, co chcete automatizovat. Ne každý kousek automatizace je efektivní a přináší pozitivní návratnost investic. Neautomatizujte jen kvůli automatizaci
- Využijte správné vývojové prostředí. Nenechávejte si kód na místním místě. Mějte úložiště, abyste si udrželi svůj kód a zvykli si na konci dne svůj kód kontrolovat
- Podobným způsobem zkuste provést automatické testy z centralizovaného umístění. Udělejte to nezávislou osobou. Mělo by se stát, že kdokoli z týmu může spouštět skripty ze svého počítače a výsledky jsou získávány prostřednictvím e-mailu
Jaké jsou agilní principy, které lze aplikovat na automatizaci?
Několik velmi jednoduchých tipů:
- Usnadněte si práci. Udělejte, co je potřeba. Viděl jsem mnoho případů, kdy dodáváme implementaci potaženou cukrem, což zbytečně komplikuje automatizaci. Vyvarujme se věcí, které nejsou potřeba
- Dělat jednoduché věci neznamená dělat ty nejjednodušší věci. To znamená podniknout dětské kroky k dosažení vašich automatizačních cílů. Můžete použít automatizovanou jednoduchou funkci, ale může se stát, že se implementace automatizace ukáže jako složitá
- Použijte přístup celého týmu . Věřím, že každý je testerem v agilním týmu. Neomezujme automatizační práci pouze s testery nebo pouze s vývojáři. Každá z disciplín si musí vzájemně vkročit, aby dosáhla automatizace projektu. Tento přístup by byl také účinný při řešení jakýchkoli technických problémů, které přicházejí s implementací
- Rámec se vyvinul v Agile . Nepokoušejte se poskytovat příliš mnoho funkcí, které mohou zbytečně zkomplikovat automatizaci
- Udělejte si čas a udělejte to správně. Věnujte nějaký čas jeho správnému návrhu, abyste předešli technickým dluhům
- Získejte častou zpětnou vazbu
- Aplikujte správné standardy a postupy pro kódování. Návrh by měl být jednoduchý, aplikovat koncepty OOPS a pokusit se udržet testy na sobě nezávislé. Zvažte faktory jako „udržovatelnost“ testovacího obleku
Vidím při automatizaci v Agile nějaké výzvy?
Automatizace v agilním světě přichází své vlastní výzvy :
- Musíme plánovat opravdu dobře. Rozhodování o vhodné testovací sadě, nástroji, rámci a přístupu vyžaduje řádnou strategii. Měli bychom si však pamatovat, NENÍ nadměrně plánovat. Mějte na paměti MVP (minimální životaschopný produkt)
- Kompromitujeme kvalitu kódu, protože chceme dodávat rychle: Musíme si uvědomit, že i v automatizaci platí technické dluhy
- Tým většinou týmy nedodržují „přístup celého týmu“ a ponechávají veškerou odpovědnost za kódování a údržbu automatizované sady pro testery, což zvyšuje odpovědnost testerů
- Automatizace funkčních testů je tvrdší než automatizace uživatelského rozhraní
Mezi všemi těmito výzvami je nejdůležitější výzvou zdokonalení dovedností testerů.
Dělat a udržovat automatizaci pro tým je téměř jako programovací (vývojová) aktivita, kterou dělají programátoři (vývojáři). Důležitá je nejen implementace, ale také integrace automatizovaného obleku do CI a vyžaduje, aby se testeři naučili a osvojili si nové dovednosti a naučili se nové nástroje a technologie.
Některé nástroje s otevřeným zdrojovým kódem, které zapadají do Agile
- Selenium WebDriver - Pro uživatelské rozhraní
- Selénová mřížka - Pro paralelní provedení
- Okurka - pro BDD
- JMeter - Pro testování výkonu
- MÝDLO - Pro webové služby
- WireMock - testování webových služeb, když služba webů není k dispozici.
- Epochy - pro mobily
Dovolte mi uzavřít slavné testovací kvadranty Agile:
Kvadrant 1 je jednotka a test komponent, které lze automatizovat pomocí přístupu TDD.
Kvadrant 2 hovoří o testování funkčnosti, kde můžeme použít přístup BDD.
Kvadrant 3 je jediným kvadrantem, který má rozsah ručního testování.
Kvadrant 4 v podstatě hovoří o testování, kterého lze dosáhnout některými nástroji. To se postará o zátěžové testy, zátěžové testy, testy objemu a testy zabezpečení.
jak volat pole v javě
Závěr
Kromě testů kouře a regresních testů existuje řada automatizace. Proto se musíme vymanit z konceptu omezování automatizace pouze na tyto typy testování, což zase znamená, že sada dovedností testeru v Agile vyžaduje více než jen hledání chyb a defektů.
Testeři musí více spolupracovat a zdokonalit své programovací / automatizační dovednosti. Pokud bude více a více testů automatizováno, poskytlo by to testerům více času, aby se mohli zapojit do složitějších a náročnějších úkolů.
O autorovi: Tento článek je od člena týmu STH Shilpa. Posledních 10 let pracuje v oblasti testování softwaru v doménách, jako je internetová reklama, investiční bankovnictví a telekomunikace.
Sdílejte prosím své komentáře a myšlenky níže.
Doporučené čtení
- Výukový program AutoIt - Stažení, instalace a základní skript AutoIt
- Ztrácejí testeři kvůli automatizaci přilnavost?
- Výzvy pro ruční a automatizované testování
- Nejlepší nástroje pro testování softwaru 2021 (QA Test Automation Tools)
- Proces automatizace testování v 10 krocích: Jak spustit testování automatizace ve vaší organizaci
- Jste odborníkem na manuální nebo automatizační testování? Pracujte na částečný úvazek pro nás!
- 11 nejlepších automatizačních nástrojů pro testování aplikací pro Android (nástroje pro testování aplikací pro Android)
- Nejlepší 10+ nejlepších knih o testování softwaru (příručky o manuálním a automatizovaném testování)