automated regression testing
Tento tutoriál vysvetľuje výzvy automatizovaného regresného testovania. Dozvieme sa tiež o Procese a krokoch automatizácie regresného testovania:
Naučíme sa, ako automatizovať prípady regresného testu, počnúc ich identifikáciou, výberom nástroja na automatizáciu, analýzou nákladov, času a úsilia, písaním skriptov až po jeho doručenie tímu pre ručné testovanie, aby mohol testovacie prípady vykonať odkiaľkoľvek a kedykoľvek.
Ak vás zaujíma, prečo iba sada regresných testov, je to preto, lebo sada regresných testov je hlavným kandidátom na automatizáciu, pretože ide o množinu opakujúcich sa a časovo náročných testovacích prípadov. Ich automatizácia by vám teda skutočne ušetrila veľa zdrojov a bolo by to tiež menej časovo náročné.
Dostanete rýchle správy o prípadoch regresného testu a pomocou týchto krokov môžete automatizovať aj akékoľvek ďalšie testovacie súbory.
=> Kliknite sem pre kompletnú sériu regresných testov.
Čo sa dozviete:
- Automatizované regresné testovanie
- Automatizované testovanie: Výzvy v agilnom prostredí
- Kroky na automatizáciu regresného testovania
- Záver
Automatizované regresné testovanie
Nedávno, keď som chcel zahájiť svoj nový projekt automatizovaného testovania so štyrmi zdrojmi, napadlo mi použiť ktorúkoľvek z metodík Agile. Ale nebol som schopný pokračovať, pretože mi v mysli vyvolala sériu otázok.
Otázky boli ako:
- Je možné v automatizovanom testovaní použiť agilné metodiky?
- Môžem použiť tradičné nástroje?
- Mám si musieť vyhľadať nástroje s otvoreným zdrojovým kódom?
- Akým výzvam musím čeliť, ak implementujem automatizáciu v agilnom prostredí?
V tomto článku poďme analyzovať niektoré výzvy, ktorým čelíme pri implementácii automatizácie s metodikami Agile. Automatizované regresné testovanie v agilnom prostredí predstavuje riziko, že sa stanete chaotickými, neštruktúrovanými a nekontrolovanými.
Agilné projekty predstavujú pre tím automatizácie svoje vlastné výzvy. Metodika Agile kladie dôraz na tímovú spoluprácu a časté dodanie produktu. Faktory ako nejasný rozsah projektu, viacnásobné iterácie, minimálna dokumentácia, skoré a časté potreby automatizácie a aktívne zapojenie zainteresovaných strán atď. Vyžadujú od automatizačného tímu veľa výziev.
Automatizované testovanie: Výzvy v agilnom prostredí
Tím automatizácie čelí niekoľkým agilným výzvam. Avšak a niekoľko z nich je stručne informovaných nižšie.
Výzva 1:Fáza požiadavky
Vývojár Test Automation zachytáva požiadavky vo forme „užívateľských príbehov“, ktoré sú stručnými popismi funkcií relevantných pre zákazníka.
Každá požiadavka musí mať nasledujúce priority:
Vysoká: Toto sú kľúčové požiadavky, ktoré je nevyhnutné splniť pri prvom vydaní
Stredné: Toto sú požiadavky, ktoré sú dôležité, ale je možné ich vyriešiť, kým nebudú implementované.
Nízka: Toto sú požiadavky, ktoré sú pekné, ale nie sú rozhodujúce pre fungovanie softvéru.
Po zriadení priorít sa plánujú „iterácie“ vydania. Zvyčajne každá iterácia vydania Agilného vydania trvá 1 až 3 mesiace. Zákazníci / zákazníci softvéru si môžu dovoliť vykonať príliš veľa zmien v požiadavkách. Niekedy sú tieto zmeny také nestále, že sa iterácie odrazia. Tieto zmeny predstavujú väčšie výzvy pri implementácii testovacieho procesu Agile Automation.
ako prezerať súbory SWF na PC
Výzva 2:Výber správnych nástrojov
Tradičné nástroje na testovanie s funkciami nahrávania a prehrávania nútia tímy čakať až po dokončení softvéru. Tradičné nástroje na automatizáciu testov navyše nefungujú pre agilný kontext, pretože riešia tradičné problémy, ktoré sa líšia od výziev, ktorým čelia tímy agilnej automatizácie.
Automatizácia v raných fázach agilného projektu je zvyčajne veľmi náročná, ale ako systém rastie a vyvíja sa, niektoré aspekty sa vyrovnávajú a je vhodné nasadiť automatizáciu. Takže výber testovacích nástrojov sa stáva rozhodujúcim pre využitie agilných výhod efektívnosti a kvality.
Výzva 3:Fáza vývoja skriptu
Testéri automatizácie, vývojári, obchodní analytici a účastníci projektu spolu prispievajú k úvodným stretnutiam, na ktorých sa pre ďalší šprint vyberú „Príbehy používateľov“. Len čo sa pre sprint vyberú „Príbehy používateľov“, použijú sa ako základ pre sadu testov.
Pretože funkčnosť rastie s každou iteráciou, je potrebné vykonať regresné testovanie, aby sa zabezpečilo, že zavedenie novej funkcionality v každom iteračnom cykle neovplyvní existujúce funkcie. The stupnica regresného testovania rastie s každým šprintom a zaisťuje, že to zostane zvládnuteľnou úlohou, a testovací tím používa automatizáciu testov pre regresnú sadu.
Výzva 4:Riadenie zdrojov
Agilný prístup vyžaduje kombináciu testovacích schopností, to znamená, že na definovanie nejasných scenárov a testovacích prípadov, vykonania testov budú potrebné zdroje na testovanie. Ručné testovanie spolu s vývojármi píšte automatizované regresné testy a spúšťajte automatizované regresné balíčky.
Ako bude projekt postupovať, budú sa vyžadovať aj odborné zručnosti potrebné na pokrytie ďalších testovacích oblastí, ktoré môžu zahŕňať integráciu a testovanie výkonu.
Mala by existovať vhodná kombinácia doménových špecialistov, ktorí plánujú a zhromažďujú požiadavky. Náročnou súčasťou správy zdrojov je vyhľadať testovacie zdroje s viacerými zručnosťami a prideliť ich.
Výzva 5:Komunikácia
Musí existovať dobrá komunikácia medzi Automatizačné testovanie tím, vývojári, obchodní analytici a zainteresované strany. Medzi klientom a doručovacími tímami musí existovať vysoko kolaboratívna interakcia. Viac zapojenia klienta znamená viac návrhov alebo zmien od klienta. A znamená to väčšiu šírku pásma pre komunikáciu.
Kľúčovou výzvou je, že proces by mal byť schopný zachytiť a efektívne implementovať všetky zmeny a je potrebné zachovať integritu údajov. Pri tradičnom testovaní sú vývojári a testeri ako ropa a voda, ale v agilnom prostredí je náročnou úlohou to, že obaja musia na dosiahnutí cieľa spolupracovať.
Výzva 6:Denné stretnutie v skrumáži
Denné Scrum stretnutie je jednou z kľúčových aktivít v agilnom procese. Tímy sa stretávajú počas 15 minút v stojkách. Aká je účinnosť týchto stretnutí? Ako ďaleko tieto stretnutia pomáhajú vývojárom pri automatizácii? na tomto stretnutí.
Výzva 7:Uvoľnite fázu
Cieľom projektu Agile je čo najrýchlejšie dodať základný pracovný produkt a potom prejsť procesom neustáleho zlepšovania. To znamená, že pre produkt neexistuje jediná fáza uvoľnenia. Náročná časť spočíva v integračnom testovaní a akceptačnom testovaní produktu.
Kroky na automatizáciu regresného testovania
Proces automatizácie regresie je možné presne rozdeliť do nasledujúcich krokov:
Týchto 7 krokov je v nasledujúcom texte podrobne vysvetlených jednoduchým spôsobom, aby ste ich ľahšie pochopili.
1. Identifikácia
# 1) Identifikujte testovacie prípady ktorá by mala byť súčasťou sady regresných testov.
- Ak chcete začať automatizovať prípady regresného testu, úplne prvou vecou, ktorú musíte urobiť, je získať identifikáciu a správne definovanie prípadov regresného testu so všetkými krokmi, údajmi a predpokladmi.
- Aby ste sa ubezpečili, že máte k dispozícii sadu efektívnych regresných testov, nezabudnite uviesť:
- Testovacie prípady s opakujúcimi sa chybami.
- Testovacie prípady, ktoré sa týkajú scenárov typu end to end.
- Testovacie prípady, ktoré sú viditeľnejšie pre koncových používateľov.
- Testovacie prípady na hraničných hodnotách.
- Dobrá kombinácia pozitívnych a negatívnych testovacích prípadov.
- Zložité testovacie prípady.
#dva) Identifikujte automatizačné nástroje ktoré sú najlepšie pre vaše požiadavky a správanie aplikácie. Keď sú identifikované regresné testovacie prípady a sú pripravené na automatizáciu, identifikujte nástroje, ktoré najlepšie vyhovujú vašim testovacím prípadom.
Najlepším spôsobom, ako identifikovať nástroje, je vytvoriť maticu s nástrojmi a vašimi požiadavkami a potom sledovať, ktorý nástroj spĺňa dané požiadavky.
Navrhované čítanie => Zoznam najlepších nástrojov na automatizáciu
# 3) Identifikujte Programovací jazyk ktoré chcete použiť. Na trhu je k dispozícii toľko nástrojov, ktoré tieto nástroje podporujú. Preto je dôležité určiť programovací jazyk, v ktorom chcete písať svoje automatizované testovacie prípady.
Príklad :Predpokladajme, že máme projekt, kde chceme automatizovať sadu regresných testov pre aplikácie založené na prehliadačoch.
Ako je vysvetlené vyššie, identifikujeme testovacie prípady.
- Predpokladajme, že náš testovací prípad je „Overte, či sa používateľ môže úspešne prihlásiť pomocou platného používateľského mena a hesla“.
Ďalej identifikujeme Automation Tools.
- Testovací prípad založený na prehliadači je možné automatizovať pomocou „ Selén „,“ Ranorex ”,“ TestComplete ”. Poďme sa rozhodnúť pre nástroj selén, ktorý najlepšie vyhovuje požiadavkám.
Poďme si určiť programovací jazyk.
- Chceme použiť „ Java ”Ako programovací jazyk ako vysoko podporovaný jazyk.
2. Analýza
# 1) Urob Náklady analýza. Je veľmi dôležité pracovať v medziach rozpočtu. Po fáze identifikácie teda získate predstavu o tom, koľko testovacích prípadov je potrebné automatizovať, a ktoré sú možné nástroje, ktoré je možné použiť.
Všetky zistenia z fázy identifikácie vám pomôžu prísť s približným rozpočtom, a teda môžete v prípade potreby získať akýkoľvek súhlas atď.
#dva) Urob zdrojov a úsilia analýzu, aby ste zistili, či máte prostriedky na to, aby ste na tom mohli pracovať Spolu s analýzou nákladov je veľmi dôležité vykonať analýzu zdrojov a úsilia pre lepšie alokovanie zdrojov a efektívne využitie ich času na projekte.
Pri odhadovaní zdrojov a úsilia nezabudnite brať na vedomie riziká ako napríklad to, že niekto ochorie alebo či niektoré testovacie prípady potrebujú na vykonanie viac zdrojov atď.
# 3) Urob Čas Analýza. Vyžaduje sa časová analýza, aby bolo možné dokončiť projekt automatizácie v rámci rozpočtu a časových harmonogramov. Pri práci na časovej analýze bude užitočné pripraviť graf časovej osi na sledovanie pokroku počas vývoja.
Pre lepšiu časovú os projektu:
- Identifikujte úlohy a čiastkové úlohy vo svojich projektoch.
- Stanovte priority úloh a čiastkových úloh.
- Nakreslite Ganttov diagram alebo sieťový diagram, aby ste lepšie zobrazili časovú os.
Príklad :V ďalšom postupe s prihliadnutím na príklad z fázy identifikácie je vysvetlenie tejto fázy uvedené nižšie:
Analýza nákladov:
Predpokladajme, že približná cena tohto projektu je X dolárov.
Zdroje a úsilie:
Za týmto účelom musí byť jeden testovací prípad automatizovaný od konca k druhému a potrebujeme jeden zdroj na plný úväzok po dobu približne 24 hodín a tiež potrebujeme jeden ďalší zdroj na kontrolu práce. Preto potrebujeme 2 zdroje a odhad úsilia je okolo 40 hodín.
Časová analýza:
Z tohto dôvodu nakreslíme malý Ganttov diagram, aby sme videli časovú os.
3. Školenie / prijímanie do zamestnania
# 1) Ak to niektoré zdroje vyžadujú školenia , potom naplánujte svoje školenie. Niekedy môžete mať nejaké zdroje na ručné testovanie, ktoré majú záujem o písanie testovacích prípadov automatizácie, alebo niektorí ľudia pracovali na automatizácii, ale majú rôzne nástroje a sú ochotní sa naučiť nástroj, ktorý ste vybrali pre svoju automatizáciu.
V takom prípade identifikujte tieto zdroje a naplánujte ich školenie, aby mohli začať pracovať na automatizácii prípadov regresných testov.
#dva) Ak potrebujeme viac zdrojov, pracujte na najímanie plán. Ak ste vykonali analýzu zdrojov pre dané úsilie a ak nie ste schopní uspokojiť potreby už dostupnými prostriedkami, naplánujte si prenájom niektorých nových zdrojov so zodpovedajúcimi zručnosťami, ktoré sú potrebné pre projekt v rámci rozpočtu.
Príklad:
Povedzme, že už máme zdroj, ktorý je oboznámený s konceptmi Java a chce sa naučiť selén. Potom zabezpečíme pre túto osobu školenie selénu.
Ak nemáme k dispozícii žiadne prostriedky na automatizáciu. Potom prijmeme osobu, ktorá má určité skúsenosti s automatizáciou takýchto testovacích prípadov pomocou selénu a javy.
4. Rámec a usmernenia
# 1) Keď budú nástroj a zdroje pripravené, pripravte si a rámec alebo rozhodovanie o tom, ktorý z existujúcich rámcov použiť. Môžete použiť niekoľko už postavených rámcov alebo môžete svoj rámec zostaviť úplne od začiatku.
Pri výbere alebo budovaní rámca sa uistite, že ste zapojili všetky komponenty, testovacie prípady, protokoly, správy, vstupy, pripojenie k databáze atď.
#dva) Rozhodnite sa pre druhého podporné nástroje ktoré chcete použiť. Pretože vývoj automatizačného skriptu je vývojová úloha, ktorá zahŕňa písanie kódu, bolo by oveľa lepšie vymyslieť ďalšie vývojové nástroje, ktoré by boli potrebné na podporu písania vašich skriptov.
Napríklad , Medzi nástroje, ktoré vám môžu pomôcť, patria git, GitHub, Jenkins atď.
# 3) Načrtnite usmernenia na písanie automatizačných skriptov. Je potrebné načrtnúť pokyny, aby všetky zdroje pracujúce na projekte boli synchronizované a používali rovnaké konvencie pomenovania, rovnaké postupy pri prihlasovaní / odhlasovaní kódu a rovnaký programovací jazyk.
ako otvárať súbory .eps
Príklad:
Rámec: Poďme sa rozhodnúť BDD (vývoj založený na správaní) rámec pre testovanie automatizácie.
Podporné nástroje: Medzi nástroje, ktoré potrebujeme na úplnú podporu automatizácie, patria GitHub, Jenkins, Log4J, Cucumber a JUnit.
5. Automatizačné skripty
Začnite písať automatizačné skripty. Keď máme všetko, t. J. Nástroj, programovací jazyk, požadované zručnosti a testovacie prípady, ktoré je potrebné automatizovať, môžeme začať písať automatizačné skripty.
Pri písaní skriptov sa musíme uistiť, že:
- Pokyny sa dodržiavajú.
- Používame tieto nástroje.
- Testovacie prípady sú modulované.
- Mali by sme byť schopní opakovane použiť komponenty, ak sú požadované vo viacerých testovacích prípadoch.
Musíme sa tiež ubezpečiť, že kód je v nástroji na správu verzií správne udržiavaný a že všetci členovia tímu môžu ľahko spolupracovať.
Príklad:
Napíšeme skutočné skripty, aby bol tento testovací prípad spustený. Ukážka zo skriptov môže byť uvedená nižšie.
Po prvé, scenár s uhorkami pre tento testovací prípad bude vyzerať takto:
Funkcia: Overte funkčnosť prihlásenia
Ako užívateľ sa chcem prihlásiť do aplikácie
Osnova scenára: Prihlásenie do aplikácie
Vzhľadom na to, že otvorím aplikáciu
Keď zadám používateľské meno „“
A ja zadám heslo “”
A kliknem na tlačidlo Prihlásiť sa
Potom prejdem na domovskú stránku
Príklady:
| používateľské meno | heslo |
| testuser1 | heslo1 |
| testuser2 | heslo2 |
Po súbore prvkov budeme implementovať definíciu kroku pre kroky uvedené v súbore prvkov.
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(); } }
Samotná implementácia triedy prihlasovacích funkcií by nakoniec vyzerala 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. Preskúmanie
(obrázok zdroj )
# 1) Kontrola kódu: Keď vývojár automatizácie dokončí písanie automatizačných skriptov, je veľmi dôležité prejsť rôznymi úrovňami kontroly kódu.
Recenzie na kódy pomáhajú v
- Identifikácia nesprávnych overení.
- Hľadanie bodov na optimalizáciu kódu.
- Hľadanie lepších spôsobov implementácie funkcií na efektívne využitie zdrojov.
Recenzie kódu tiež vystavujú prácu vývojára ostatným vývojárom a poskytujú im tiež inú perspektívu a priestor na zlepšenie.
# 2) Kontrola testovacích prípadov: Spolu s kontrolou kódu je veľmi dôležitá aj kontrola testovacieho prípadu. Musíme sa uistiť, že testovacie skripty automatizácie pri spustení vykonávajú rovnakú sadu akcií a overení, aké očakávame od prípadov manuálneho testovania.
Preto preskúmanie automatizačných testovacích prípadov s obchodnými analytikmi alebo testovacími odborníkmi pomáha zvýšiť dôveru v testovanie automatizácie týchto testovacích prípadov.
Príklad:
Pre náš uvažovaný príklad, povedzme pri kontrole kódu, sme dostali komentáre ako „vyhľadávací prvok podľa ID a nie podľa názvu“. Tu to vezmeme do úvahy a podľa toho upravíme náš skript.
Ak ste na domovskej stránke po úspešnom prihlásení, je možné vykonať kontrolu testu a pridať ďalšie kroky na testovanie. Potom by sme to pridali aj do našich skriptov.
7. Doručiť
Dodať testovacie prípady, aby ich mohol ktokoľvek kedykoľvek spustiť. Keď sú automatizačné skripty pripravené na použitie, je veľmi dôležité vymyslieť plán dodávok automatizačných skriptov.
Tento plán je potrebný, pretože sa chceme uistiť, že automatizácia testovacích prípadov neobmedzuje jeho vykonávanie na konkrétny súbor ľudí alebo zručností. Každý v tíme alebo v projekte by mal mať možnosť vykonať testovacie prípady.
Jedným z možných plánov doručenia je poskytnúť úlohu Jenkins, ktorú je možné spustiť na vykonanie automatizovaných testovacích prípadov.
Príklad:
V našom prípade predpokladajme, že sme testovací prípad doručili pomocou Jenkinsovej úlohy. Táto úloha Jenkinsa, vezme kód z GitHubu, zostaví ho a spustí testovacie prípady na inom počítači.
Po úspešnom dokončení úlohy sa zobrazí vygenerovaný protokol o teste. Túto prácu môže vykonávať každý, kto má prístup k Jenkinsovi. Taktiež je možné naplánovať spustenie tejto úlohy v konkrétny čas.
Záver
Ak dokážeme tieto výzvy splniť dobre optimalizovaným spôsobom, potom je automatické testovanie regresie v agilnom prostredí vynikajúcou príležitosťou pre QA prevziať vedenie agilných procesov. Má lepšiu pozíciu na preklenutie priepasti medzi používateľmi a vývojármi, pochopenie toho, čo sa vyžaduje, ako to možno dosiahnuť a ako to možno zabezpečiť pred nasadením.
Automatizačná prax by mala mať skutočný záujem o výsledok, ako aj o ďalšie zabezpečenie toho, aby celý vyvíjajúci sa systém spĺňal obchodné ciele a zodpovedal danému účelu.
Automatizácia regresného testovacieho prípadu je vždy užitočná ako najlepší kandidát na začatie automatizované testovanie . Podľa vyššie uvedených krokov môžete automatizovať ľubovoľnú testovaciu sadu, nielen regresiu.
Automatizačné testovanie je tiež veľmi užitočné a nákladovo efektívne a časová náročnosť automatizačného testovania je iba pri písaní skriptov a ich údržbe. Pre úspešný projekt je teda potrebné správne naplánovať a naplánovať testovanie automatizácie.
O autorovi: J.B.Rajkumar má viac ako 15 rokov skúseností v odbore akademikov a testovania softvéru. Pracoval ako korporátny tréner, testovací vedúci, manažér QA a manažér QC.
Dajte nám vedieť vaše komentáre / návrhy týkajúce sa tohto článku.
=> Navštívte tu kompletnú sériu regresných testov.
Odporúčané čítanie
- Najlepšie nástroje na testovanie softvéru 2021 (QA Test Automation Tools)
- Stiahnutie e-knihy Testing Primer
- 4 kroky k vývoju agilného testovania myslenia pre úspešný prechod na agilný proces
- Výzvy na manuálne a automatizované testovanie
- Rozdiel medzi opakovaným testovaním a regresným testovaním s príkladom
- 5 výziev a riešení pre mobilné testovanie
- Testovanie SaaS: Výzvy, nástroje a prístup k testovaniu
- Top 10 najpopulárnejších nástrojov na regresné testovanie v roku 2021