automated regression testing
Tento kurz vysvětluje výzvy automatizovaného regresního testování. Dozvíme se také o procesu a krocích k automatizaci regresního testování:
Naučíme se, jak automatizovat případy regresního testu, počínaje jejich identifikací, výběrem nástroje pro automatizaci, analýzou nákladů, času a úsilí, psaním skriptů a konečným doručením týmu ručního testu, aby mohli testovací případy provádět odkudkoli a kdykoli.
Pokud vás zajímá, proč pouze sada regresních testů, je to proto, že sada regresních testů je hlavním kandidátem na automatizaci, protože se jedná o sadu testovacích případů, které se opakují a jsou časově náročné. Jejich automatizace by vám tedy skutečně ušetřila spoustu zdrojů a také by to bylo méně časově náročné.
Získáte rychlé zprávy o případech regresního testu a pomocí těchto kroků můžete také automatizovat jakékoli další testovací sady.
=> Kliknutím sem zobrazíte kompletní sérii regresních testů.
Co se naučíte:
- Automatizované regresní testování
- Automatizované testování: výzvy v agilním prostředí
- Kroky k automatizaci regresního testování
- Závěr
Automatizované regresní testování
Nedávno, když jsem chtěl zahájit svůj nový projekt automatizovaného testování se čtyřmi zdroji, napadlo mě použít některou z metod Agile. Ale nemohl jsem pokračovat, protože mi v mysli vyvstala řada otázek.
Otázky byly jako:
- Je možné v automatizovaném testování použít agilní metodiky?
- Mohu použít tradiční nástroje?
- Měl bych jít na open-source nástroje?
- Jakým výzvám musím čelit, když implementuji automatizaci v agilním prostředí?
V tomto článku pojďme analyzovat některé z výzev, kterým čelíme při implementaci Automation with Agile metodologií. Automatizované regresní testování v agilním prostředí představuje riziko, že se stane chaotickým, nestrukturovaným a nekontrolovaným.
Agilní projekty představují pro tým automatizace své vlastní výzvy. Metodika Agile klade důraz na týmovou spolupráci a časté dodávky produktu. Faktory jako nejasný rozsah projektu, vícenásobné iterace, minimální dokumentace, časné a časté potřeby automatizace a aktivní zapojení zúčastněných stran atd. Vyžadují od automatizačního týmu spoustu výzev.
Automatizované testování: výzvy v agilním prostředí
Tým automatizace čelí několika agilním výzvám. Nicméně, a několik z nich je uvedeno níže.
Výzva 1:Fáze požadavku
Vývojář Test Automation zachycuje požadavky ve formě „uživatelských příběhů“, což jsou stručné popisy funkcí relevantních pro zákazníka.
Každý požadavek musí mít prioritu takto:
Vysoký: Toto jsou klíčové požadavky, které je bezpodmínečně nutné splnit v prvním vydání
Střední: Toto jsou požadavky, které jsou důležité, ale lze je vyřešit, dokud nebudou implementovány.
Nízký: Jedná se o požadavky, které jsou hezké, ale nejsou rozhodující pro fungování softwaru.
Jakmile jsou vytvořeny převorství, plánují se „iterace“ vydání. Obvykle trvá doručení každé agilní verze iterace 1 až 3 měsíce. Lidé se zákazníkem / softwarem si dovolují provést příliš mnoho změn požadavků. Někdy jsou tyto změny tak nestálé, že se iterace odrazí. Tyto změny představují větší výzvu při implementaci procesu testování Agile Automation.
jaký je nejlepší software pro vzdálený přístup
Výzva 2:Výběr správných nástrojů
Tradiční testovací nástroje s funkcemi záznamu a přehrávání přinutí týmy počkat, až bude software hotový. Tradiční nástroje pro automatizaci testů navíc nefungují pro agilní kontext, protože řeší tradiční problémy, které se liší od výzev, kterým čelí týmy agilní automatizace.
Automatizace v raných fázích agilního projektu je obvykle velmi náročná, ale jak systém roste a vyvíjí se, některé aspekty se usazují a je vhodné nasadit automatizaci. Volba testovacích nástrojů se tedy stává rozhodující pro využití agilních výhod efektivity a kvality.
Výzva 3:Fáze vývoje skriptu
Testeři automatizace, vývojáři, obchodní analytici a účastníci projektu společně přispívají k zahajovacím schůzkám, kde jsou pro příští sprint vybrány „Příběhy uživatelů“. Jakmile jsou pro sprint vybrány „Uživatelské příběhy“, jsou použity jako základ pro sadu testů.
Jak funkce roste s každou iterací, je třeba provést testování regrese, aby bylo zajištěno, že zavedení funkčnosti nebylo ovlivněno zavedením nové funkce v každém iteračním cyklu. The měřítko regresního testování roste s každým sprintem a zajišťuje, že to zůstane zvládnutelným úkolem a testovací tým používá automatizaci testů pro regresní sadu.
Výzva 4:Správa zdrojů
Agilní přístup vyžaduje směs testovacích dovedností, to znamená, že k definování nejasných scénářů a testovacích případů, chování budou zapotřebí testovací zdroje Ruční testování spolu s vývojáři psát automatizované regresní testy a spouštět balíčky automatizované regrese.
Jak bude projekt postupovat, budou se vyžadovat také speciální dovednosti k pokrytí dalších testovacích oblastí, které mohou zahrnovat integraci a testování výkonu.
Měla by existovat vhodná kombinace doménových specialistů, kteří plánují a shromažďují požadavky. Náročnou součástí správy zdrojů je najít testovací zdroje s více dovednostmi a přidělit je.
Výzva 5:Sdělení
Musí mezi nimi existovat dobrá komunikace Testování automatizace tým, vývojáři, obchodní analytici a zúčastněné strany. Mezi klientem a doručovacími týmy musí být vysoce spolupracující interakce. Větší zapojení klienta znamená více návrhů nebo změn od klienta. A to znamená větší šířku pásma pro komunikaci.
Klíčovou výzvou je, že proces by měl být schopen zachytit a efektivně implementovat všechny změny a je třeba zachovat integritu dat. V tradičním testování jsou vývojáři a testeři jako ropa a voda, ale v agilním prostředí je náročným úkolem to, že k dosažení cíle musí spolupracovat oba.
Výzva 6:Denní Scrum Meeting
Daily Scrum Meeting je jednou z klíčových aktivit v agilním procesu. Týmy se scházejí po dobu 15 minut v pohotovosti. Jaká je účinnost těchto setkání? Jak daleko tyto schůzky pomáhají vývojářům v praxi automatizace? na této schůzce.
Výzva 7:Uvolněte fázi
Cílem projektu Agile je dodat co nejrychleji základní pracovní produkt a poté projít procesem neustálého zlepšování. To znamená, že pro produkt neexistuje žádná jednotlivá fáze vydání. Náročná část spočívá v integračním testování a akceptačním testování produktu.
Kroky k automatizaci regresního testování
Proces, který je třeba dodržet při automatizaci regrese, lze přesně rozdělit do následujících kroků:
Těchto 7 kroků je níže vysvětleno podrobně jednoduchým způsobem pro vaše snadné pochopení.
1. Identifikace
# 1) Určete testovací případy který by měl být součástí sady regresních testů.
- Chcete-li začít automatizovat případy regresního testu, první věcí, kterou musíte udělat, je nechat identifikovat a správně definovat případy regresního testu se všemi kroky, daty a předpoklady.
- Abyste měli jistotu, že máte efektivní sadu regresních testů, nezapomeňte zahrnout:
- Testovací případy s opakujícími se vadami.
- Testovací případy, které pokrývají scénáře typu end-to-end.
- Testovací případy, které jsou viditelnější pro koncové uživatele.
- Testovací případy hraničních hodnot.
- Dobrá kombinace pozitivních a negativních testovacích případů.
- Složité testovací případy.
#dva) Určete automatizační nástroje které jsou nejlepší pro vaše požadavky a chování aplikace. Jakmile jsou regresní testovací případy identifikovány a připraveny k automatizaci, identifikujte nástroje, které nejlépe vyhovují vašim testovacím případům.
Nejlepším způsobem, jak identifikovat nástroje, je vytvořit matici s nástroji a vašimi požadavky a poté sledovat, který nástroj splňuje které požadavky.
Doporučené čtení => Seznam nejlepších automatizačních testovacích nástrojů
# 3) Určete Programovací jazyk které chcete použít. S tolika nástroji dostupnými na trhu tyto nástroje podporují více jazyků. Proto je důležité určit programovací jazyk, ve kterém chcete psát své automatizační testovací případy.
Příklad :Předpokládejme, že máme projekt, kde chceme automatizovat sadu regresních testů pro aplikaci založenou na prohlížeči.
Jak je vysvětleno výše, identifikujeme testovací případy.
- Předpokládejme, že náš testovací případ je „Ověřte, zda se uživatel může úspěšně přihlásit pomocí platného uživatelského jména a hesla“.
Dále identifikujeme Automation Tools.
- Testovací případ založený na prohlížeči lze automatizovat pomocí „ Selen „,“ Ranorex ”,“ TestComplete ”. Pojďme se rozhodnout pro nástroj selen, který nejlépe vyhovuje požadavkům.
Pojďme nyní identifikovat programovací jazyk.
- Chceme použít „ Jáva „Jako programovací jazyk jako vysoce podporovaný jazyk.
2. Analýza
# 1) Dělat Náklady analýza. Je velmi důležité pracovat v rámci rozpočtových limitů. Po fázi identifikace tedy budete mít představu o tom, kolik testovacích případů je třeba automatizovat a jaké jsou možné nástroje, které lze použít.
Všechna zjištění z identifikační fáze vám pomohou přijít s přibližným rozpočtem, a v případě potřeby tak můžete získat jakýkoli souhlas atd.
#dva) Dělat zdroje a úsilí analýza, abyste zjistili, zda máte prostředky, abyste na tom mohli pracovat. Spolu s analýzou nákladů je velmi důležité provést analýzu zdrojů a úsilí pro lepší alokaci zdrojů a efektivní využití jejich času na projektu.
Při odhadování zdrojů a úsilí nezapomeňte zohlednit rizika, jako je například to, že někdo onemocní nebo pokud některé testovací případy potřebují k provedení více zdrojů atd.
# 3) Dělat Čas Analýza. Je zapotřebí časová analýza, abyste se ujistili, že můžete dokončit projekt automatizace v rámci rozpočtu a časových linií. Při práci na časové analýze bude užitečné připravit graf časové osy ke sledování pokroku během vývoje.
Pro lepší analýzu časové osy projektu:
- Určete úkoly a dílčí úkoly ve svých projektech.
- Upřednostněte úkoly a dílčí úkoly.
- Nakreslete Ganttův diagram nebo síťový diagram pro lepší zobrazení časové osy.
Příklad :V dalším pokračování našeho příkladu s ohledem na fázi identifikace je vysvětlení této fáze uvedeno níže:
Analýza nákladů:
Předpokládejme, že přibližná cena tohoto projektu je částka X $.
Zdroj a úsilí:
Za tímto účelem musí být jeden testovací případ automatizován od začátku do konce a my potřebujeme jeden zdroj na plný úvazek po dobu přibližně 24 hodin a potřebujeme také jeden další zdroj pro kontrolu práce. Proto potřebujeme 2 zdroje a odhad úsilí je kolem 40 hodin.
Časová analýza:
Nakreslíme si tedy malý Ganttův graf, abychom viděli časovou osu.
3. Školení / nábor
# 1) Pokud to některé zdroje vyžadují výcvik , pak naplánujte jejich trénink. Někdy můžete mít nějaké zdroje pro ruční testování, kteří se zajímají o psaní testovacích případů automatizace, nebo někteří lidé pracovali na automatizaci, ale mají různé nástroje a jsou ochotni se naučit nástroj, který jste vybrali pro svou automatizaci.
V tomto případě identifikujte tyto zdroje a naplánujte jejich školení, aby mohli začít pracovat na automatizaci případů regresních testů.
#dva) Pokud potřebujeme více zdrojů, pak pracujte na najímání plán. Pokud jste provedli analýzu zdrojů pro dané úsilí a pokud nejste schopni uspokojit potřeby s již dostupnými zdroji, plánujte pronájem některých nových zdrojů se správnými dovednostmi, které jsou vyžadovány pro projekt v rámci rozpočtu.
Příklad:
Řekněme, že již máme zdroj, který je obeznámen s koncepty Java a chce se naučit selen. Pak zajistíme školení selenu pro tuto osobu.
Pokud nemáme k dispozici žádné prostředky pro automatizaci. Pak najmeme osobu, která má nějaké zkušenosti s automatizací takových testovacích případů pomocí selenu a Java.
4. Rámec a pokyny
# 1) Jakmile budou nástroj a zdroje připraveny, připravte se a rámec nebo rozhodování o tom, který z nich použít ze stávajících rámců. Lze použít několik již vytvořených rámců nebo můžete svůj rámec sestavit od nuly.
Při výběru nebo vytváření rámce se ujistěte, že zapojujete komponenty o, testovací případy, protokoly, zprávy, vstup, připojení k databázi atd.
#dva) Rozhodněte se o druhém podpůrné nástroje které chcete použít. Protože vývoj automatizačního skriptu je vývojová úloha, která zahrnuje psaní kódu, bylo by mnohem lepší zjistit další vývojové nástroje, které by byly potřebné pro podporu psaní vašich skriptů.
Například Některé nástroje, které vám mohou pomoci, zahrnují git, GitHub, Jenkins atd.
# 3) Nastínit pokyny pro psaní automatizačních skriptů. Je nutné nastínit pokyny, aby všechny zdroje pracující na projektu byly synchronizovány a používaly stejné konvence pojmenování, stejné postupy pro odbavení / odhlášení kódu a stejný programovací jazyk.
jak otevřít soubory bin v systému Windows
Příklad:
Rámec: Pojďme se rozhodnout BDD (vývoj založený na chování) rámec pro testování automatizace.
Podpůrné nástroje: Mezi nástroje, které potřebujeme k plné podpoře automatizace, patří GitHub, Jenkins, Log4J, Cucumber a JUnit.
5. Automatizační skripty
Začněte psát automatizační skripty. Jakmile máme vše, tj. Nástroj, programovací jazyk, požadované dovednosti a testovací případy, které je třeba automatizovat, můžeme začít psát automatizační skripty.
Při psaní skriptů se musíme ujistit, že:
- Pokyny jsou dodržovány.
- Používáme nástroje.
- Testovací případy jsou modularizovány.
- Měli bychom být schopni znovu použít komponenty, pokud jsou vyžadovány ve více testovacích případech.
Musíme se také ujistit, že je kód správně udržován v nástroji pro správu verzí a všichni členové týmu mohou snadno spolupracovat.
Příklad:
Abychom mohli tento testovací případ spustit, napíšeme skutečné skripty. Ukázky ze skriptů lze zobrazit níže.
Nejprve by scénář okurky pro tento testovací případ vypadal níže:
Funkce: Ověřte funkčnost přihlášení
Jako uživatel se chci přihlásit do aplikace
Scénář scénáře: Přihlášení do aplikace
Vzhledem k tomu, že otevírám aplikaci
Když zadám uživatelské jméno „“
A já zadám heslo „“
A kliknu na tlačítko Přihlásit
Pak přejdu na domovskou stránku
Příklady:
| uživatelské jméno | heslo |
| testuser1 | heslo1 |
| testuser2 | heslo2 |
Po souboru funkcí implementujeme definici kroku pro kroky uvedené v souboru funkcí.
public class Login { LoginImpl loginImpl = new LoginImpl(); @Given('^I open application$') public void i_open_application() { loginImpl.openURL('URL'); } @When('^I Enter username '((^')*)'$') public void i_Enter_username(String arg1) { loginImpl.enterUserName(arg1); } @When('^I Enter password '((^')*)'$') public void i_Enter_password(String arg1) { loginImpl.enterPassword(arg1); } @When('^I click on Login button$') public void i_click_on_Login_button() { loginImpl.clickLoginButton(); } @Then('^I go to Home page$') public void i_go_to_Home_page() { loginImpl.verifyHomePage(); } }
Nakonec bude skutečná implementace třídy funkčnosti přihlášení vypadat takto:
public class LoginImpl { WebDriver driver; public LoginImpl(){ System.setProperty('webdriver.chrome.driver', 'webdriver/chromedriver.exe'); driver = new ChromeDriver(); } public void openURL(String string) { driver.get(string); } public void enterUserName(String arg1) { driver.findElement(By.id('UserName')).sendKeys(arg1); } public void enterPassword(String arg1) { driver.findElement(By.id('Password')).sendKeys(arg1); } public void clickLoginButton() { driver.findElement(By.id('LoginButton')).click(); } public void verifyHomePage() { String currUrl = driver.getCurrentUrl(); if(currUrl.equals('homePageURL')) { System.out.println('Home page verified'); } } }
6. Zkontrolujte
(obraz zdroj )
# 1) Kontrola kódu: Jakmile vývojář automatizace dokončí psaní automatizačních skriptů, je velmi důležité projít různými úrovněmi kontroly kódu.
Nápověda ke kontrole kódu
- Identifikace nesprávných ověření.
- Hledání bodů pro optimalizaci kódu.
- Nalezení lepších způsobů implementace funkcí pro efektivní využití zdrojů.
Recenze kódu také vystavují práci vývojáře ostatním vývojářům a dávají jí také jinou perspektivu a prostor pro zlepšení.
# 2) Kontrola testovacích případů: Spolu s kontrolou kódu je také velmi důležitá kontrola testovacího případu. Musíme se ujistit, že testovací skripty automatizace při spuštění provádějí stejnou sadu akcí a ověření, jaké očekáváme od manuálních testovacích případů.
Revize testovacích případů automatizace s obchodními analytiky nebo testovacími odborníky tak pomáhá zvýšit důvěru v testování automatizace těchto testovacích případů.
Příklad:
Pro náš příklad v úvahu, řekněme, pro kontrolu kódu jsme dostali komentáře jako „vyhledávací prvek podle id a ne podle jména“. Tady to vezmeme v úvahu a odpovídajícím způsobem upravíme náš skript.
Pokud jste na domovské stránce po úspěšném přihlášení, můžete provést kontrolu a přidat kroky pro testování. Potom bychom to přidali také do našich skriptů.
7. Doručte
Dodejte testovací případy, aby je mohl kdykoli spustit kdokoli. Jakmile jsou automatizační skripty připraveny k použití, je velmi důležité přijít s plánem dodání automatizačních skriptů.
Tento plán je vyžadován, protože se chceme ujistit, že automatizace testovacích případů neomezuje jeho provedení na konkrétní skupinu lidí nebo dovedností. Každý v týmu nebo projektu by měl mít možnost provést testovací případy.
Jedním z možných plánů doručení je poskytnout úlohu Jenkinse, kterou lze spustit k provedení automatizovaných testovacích případů.
Příklad:
V našem případě předpokládejme, že jsme testovací případ doručili pomocí Jenkinsovy úlohy. Tato Jenkinsova úloha přebírá kód z GitHubu, vytváří jej a spouští testovací případy na jiném počítači.
Jakmile je úloha úspěšná, zobrazí se vygenerovaný protokol o testu. Tuto práci může spustit každý, kdo má přístup k Jenkinsovi. Tuto úlohu lze také naplánovat tak, aby byla spuštěna v určitou dobu.
Závěr
Pokud dokážeme těmto výzvám čelit dobře optimalizovaným způsobem, pak je automatizované regresní testování v agilním prostředí vynikající příležitostí pro QA převzít vedení agilních procesů. Má lepší předpoklady k překlenutí propasti mezi uživateli a vývojáři, pochopení toho, co je požadováno, jak toho lze dosáhnout a jak to lze zajistit před nasazením.
Automatizační praxe by měla mít skutečný zájem jak o výsledek, tak i nadále zajišťovat, že celý vyvíjející se systém splňuje obchodní cíle a je vhodný pro daný účel.
Automatizace případu regresního testu je vždy užitečná jako nejlepší kandidát pro zahájení testování automatizace . Podle výše uvedených kroků můžete automatizovat libovolnou testovací sadu, nejen regresi.
Testování automatizace je také velmi užitečné a nákladově efektivní a časová investice do testování automatizace spočívá pouze v psaní skriptů a jejich údržbě. Proto je třeba pro úspěšný projekt správně naplánovat a naplánovat testování automatizace.
O autorovi: J.B.Rajkumar má více než 15 let zkušeností v akademickém i softwarovém testování. Pracoval jako Corporate Trainer, Test Lead, QA Manager and QC Manager.
Sdělte nám své připomínky / návrhy k tomuto článku.
=> Navštivte zde kompletní sérii regresních testů.
Doporučené čtení
- Nejlepší nástroje pro testování softwaru 2021 (QA Test Automation Tools)
- Testování stahování e-knih Primer
- 4 kroky k vývoji agilního testování myšlení pro úspěšný přechod na agilní proces
- Výzvy pro ruční a automatizované testování
- Rozdíl mezi opakovaným testováním a regresním testováním s příkladem
- 5 výzev a řešení pro mobilní testování
- Testování SaaS: výzvy, nástroje a přístup k testování
- Top 10 nejpopulárnějších nástrojů pro regresní testování v roce 2021