automated regression testing
Ta vadnica razlaga izzive samodejnega testiranja regresije. Spoznali bomo tudi postopek in korake za avtomatizacijo regresijskega testiranja:
Naučili se bomo, kako avtomatizirati primere regresijskih testov, začenši z njihovo identifikacijo, izbiro orodja za avtomatizacijo, analizo stroškov, časa in napora, pisanjem skriptov in končno dostavo skupini za ročni test, da bodo lahko izvedli testne primere. od kjer koli in kadar koli.
Če se sprašujete, zakaj samo regresijski testni paket, je zato, ker je regresijski testni paket glavni kandidat za avtomatizacijo, saj gre za niz testnih primerov, ki se ponavljajo in vzamejo čas. Tako bi njihova avtomatizacija res prihranila veliko virov in bi bila tudi manj zamudna.
Prejeli boste hitra poročila o primerih regresijskih testov, s temi koraki pa lahko avtomatizirate tudi druge testne pakete.
=> Kliknite tukaj za celotno serijo testiranja regresije.
Kaj se boste naučili:
- Avtomatizirano regresijsko testiranje
- Avtomatizirano testiranje: izzivi v gibčnem okolju
- Koraki za avtomatizacijo regresijskega testiranja
- Zaključek
Avtomatizirano regresijsko testiranje
Pred kratkim, ko sem hotel začeti svoj novi projekt avtomatiziranega testiranja s štirimi viri, sem pomislil na katero koli metodologijo Agile. Nisem pa mogel nadaljevati, ker se mi je v mislih pojavila vrsta vprašanj.
Vprašanja so bila:
- Ali je mogoče pri avtomatiziranem testiranju uporabiti agilne metodologije?
- Ali lahko uporabljam tradicionalna orodja?
- Bi se moral odločiti za odprtokodna orodja?
- S kakšnimi izzivi se moram soočiti, če uvajam avtomatizacijo v okretnem okolju?
V tem članku naj analiziramo nekatere izzive, s katerimi se soočamo pri izvajanju avtomatizacije z agilnimi metodologijami. Avtomatizirano regresijsko testiranje v okretnem okolju predstavlja tveganje, da postanete kaotični, nestrukturirani in nenadzorovani.
Agile Projects ekipi za avtomatizacijo predstavljajo lastne izzive. Metodologija Agile poudarja sodelovanje ekipe in pogosto dostavo izdelka. Dejavniki, kot so nejasen obseg projekta, več ponovitev, minimalna dokumentacija, zgodnje in pogoste potrebe avtomatizacije ter aktivno sodelovanje zainteresiranih strani itd., Zahtevajo od ekipe za avtomatizacijo veliko izzivov.
Avtomatizirano testiranje: izzivi v gibčnem okolju
Skupini za avtomatizacijo je na voljo več izzivov Agile. Vendar a nekaj jih je spodaj.
1. izziv:Faza zahtev
Razvijalec Test Automation zajema zahteve v obliki 'uporabniških zgodb', ki so kratki opisi uporabnikove funkcije.
Vsaka zahteva mora imeti prednost, kot sledi:
Visoka: To so kritične zahteve, ki jih je nujno treba opraviti v prvi izdaji
Srednje: To so zahteve, ki so pomembne, vendar jih je mogoče rešiti, dokler se ne uvedejo.
Nizka: To so lepe zahteve, ki pa niso ključne za delovanje programske opreme.
Ko se določijo prioritete, se načrtujejo 'ponovitve' izdaje. Običajno vsaka ponovitev sprostitve Agile traja od 1 do 3 mesece. Kupci / uporabniki programske opreme si dovolijo preveč sprememb zahtev. Včasih so te spremembe tako spremenljive, da se ponovitve odbijejo. Te spremembe so večji izzivi pri izvajanju postopka testiranja Agile Automation.
razglasitev statičnih spremenljivk v c ++
Izziv 2:Izbira pravih orodij
Tradicionalna, zadnja testna orodja s funkcijami snemanja in predvajanja prisilijo ekipe, da počakajo, dokler programska oprema ni končana. Poleg tega tradicionalna orodja za avtomatizacijo preizkusov ne delujejo v okolju Agile, ker rešujejo tradicionalne probleme, ki se razlikujejo od izzivov, s katerimi se soočajo skupine Agile Automation.
Avtomatizacija v zgodnjih fazah agilnega projekta je ponavadi zelo težka, toda ko sistem raste in se razvija, se nekateri vidiki umirijo in postane primerno uvesti avtomatizacijo. Tako izbira orodij za testiranje postane ključnega pomena za izkoriščanje prednosti in kakovosti agilnosti.
Izziv 3:Faza razvoja skript
Preizkuševalci avtomatizacije, razvijalci, poslovni analitiki in zainteresirane strani skupaj sodelujejo na uvodnih sestankih, kjer so za naslednji sprint izbrane 'Zgodbe uporabnikov'. Ko so za sprint izbrane 'Zgodbe uporabnikov', se uporabijo kot osnova za sklop testov.
Ker funkcionalnost raste z vsako ponovitvijo, je treba izvesti testiranje regresije, da zagotovimo, da uvedba nove funkcionalnosti v vsakem ciklu ponovitve ne bo vplivala na obstoječo funkcionalnost. The obseg regresijskega testiranja raste z vsakim sprintom in zagotavlja, da je to še vedno obvladljiva naloga, testna skupina pa uporablja testno avtomatizacijo za regresijsko zbirko.
Izziv 4:Upravljanje virov
Pristop Agile zahteva mešanico preizkusnih veščin, to pomeni, da bodo potrebni testni viri za opredelitev nejasnih scenarijev in testnih primerov, izvajanje Ročno testiranje skupaj z razvijalci pišite avtomatizirane regresijske teste in izvajajte avtomatizirane regresijske pakete.
Ko bo projekt napredoval, bodo potrebna tudi strokovna znanja za nadaljnja preskusna področja, ki bi lahko vključevala integracijo in preizkušanje učinkovitosti.
Obstajati mora ustrezna mešanica strokovnjakov za domene, ki načrtujejo in zbirajo zahteve. Izziven del upravljanja virov je odkriti testne vire z več znanji in jih razporediti.
Izziv 5:Komunikacija
Med ljudmi mora obstajati dobra komunikacija Testiranje avtomatizacije ekipa, razvijalci, poslovni analitiki in zainteresirane strani. Naročnik in dostavne ekipe morajo tesno sodelovati. Večja vključenost stranke pomeni več predlogov ali sprememb stranke. In pomeni več pasovne širine za komunikacijo.
Ključni izziv je, da mora biti proces sposoben zajeti in učinkovito izvajati vse spremembe, pri čemer je treba ohraniti celovitost podatkov. Pri tradicionalnih testiranjih so razvijalci in preizkuševalci podobni nafti in vodi, toda v okretnem okolju je zahtevna naloga, da morata oba doseči cilj skupaj.
Izziv 6:Dnevno srečanje
Vsakodnevno srečanje je ena ključnih dejavnosti v agilnem procesu. Ekipe se sestajajo 15 minut v stand up sejah. Kakšna je učinkovitost teh srečanj? V kolikšni meri ti sestanki pomagajo razvijalcem avtomatizacije? itd., o katerih se razpravlja na tem sestanku.
Izziv 7:Faza sprostitve
Cilj projekta Agile je čim hitreje dostaviti osnovni delovni izdelek in nato nadaljevati s postopkom nenehnega izboljševanja. To pomeni, da za izdelek ne obstaja ena faza sproščanja. Izziven del je v integracijskem preskusu in preizkusu sprejemljivosti izdelka.
Koraki za avtomatizacijo regresijskega testiranja
Postopek avtomatizacije regresije lahko natančno razdelimo na naslednje korake:
Teh 7 korakov je v nadaljevanju podrobno razloženih na preprost način za lažje razumevanje.
1. Identifikacija
# 1) Določite testni primeri ki bi moral biti del paketa za regresijski test.
- Če želite začeti avtomatizirati primere regresijskih testov, morate najprej ugotoviti in pravilno opredeliti primere regresijskih testov z vsemi koraki, podatki in predpogoji.
- Če želite zagotoviti, da imate učinkovit paket za regresijski test, ne pozabite vključiti:
- Testni primeri s ponavljajočimi se napakami.
- Preizkusite primere, ki pokrivajo scenarije od konca do konca.
- Preizkusite primere, ki so bolj vidni končnim uporabnikom.
- Testni primeri na mejnih vrednostih.
- Dobra kombinacija pozitivnih in negativnih testnih primerov.
- Kompleksni testni primeri.
#two) Določite orodja za avtomatizacijo ki so najboljše za vaše zahteve in vedenje aplikacije. Ko so testni primeri regresije prepoznani in pripravljeni na avtomatizacijo, določite orodja, ki najbolje ustrezajo vašim testnim primerom.
Najboljši način za prepoznavanje orodij je, da z orodji in vašimi zahtevami naredite matriko in nato sledite, katero orodje izpolnjuje katere zahteve.
Predlagano branje => Seznam najboljših orodij za avtomatizacijo
# 3) Določite Programski jezik ki ga želite uporabiti. S toliko orodji, ki so na voljo na trgu, ta orodja podpirajo več jezikov. Zato je pomembno, da določite programski jezik, v katerem želite napisati svoje primere za avtomatizacijo.
Primer :Predpostavimo, da imamo projekt, pri katerem želimo avtomatizirati paket za regresijski test za aplikacijo, ki temelji na brskalniku.
Kot je pojasnjeno zgoraj, bomo opredelili testne primere.
- Predpostavimo, da je naš testni primer 'Preverite, ali se lahko uporabnik uspešno prijavi z veljavnim uporabniškim imenom in geslom'.
Nato bomo prepoznali orodja za avtomatizacijo.
- Testni primer, ki temelji na brskalniku, je mogoče avtomatizirati z “ Selen ',' Ranorex «,» TestComplete «. Odločimo se za orodje Selenium, saj najbolje ustreza zahtevam.
Zdaj pa poiščimo programski jezik.
- Želimo uporabiti “ Java «Kot programski jezik kot zelo podprt jezik.
2. Analiza
# 1) Ali Stroški analiza. Zelo pomembno je, da delamo v okviru proračunskih omejitev. Tako boste po fazi identifikacije imeli idejo, koliko testnih primerov je treba avtomatizirati in katera so možna orodja, ki jih je mogoče uporabiti.
Vse ugotovitve iz faze identifikacije vam bodo pomagale, da boste prišli do približnega proračuna, tako da boste lahko po potrebi dobili kakršno koli odobritev itd.
#two) Ali virov in truda analizo, da ugotovite, ali imate vire za to. Skupaj z analizo stroškov je zelo pomembno, da naredimo analizo virov in napora za boljšo razporeditev virov in učinkovito uporabo njihovega časa na projektu.
Med ocenjevanjem virov in prizadevanj upoštevajte tveganja, na primer, če nekdo zboli ali če nekateri primeri testov potrebujejo več sredstev za izvedbo itd.
# 3) Ali Čas Analiza. Potrebna je časovna analiza, da boste lahko avtomatizacijo zaključili v okviru proračuna in rokov. Med delom na časovni analizi bi bilo koristno pripraviti časovni diagram za spremljanje napredka med razvojem.
Za boljšo časovno analizo projekta:
- Določite naloge in podopravila v svojih projektih.
- Prednostno določite naloge in podopravila.
- Narišite Ganttov diagram ali mrežni diagram za boljšo slikovnost časovne premice.
Primer :V nadaljevanju našega primera v fazi identifikacije je razlaga te faze podana spodaj:
Analiza stroškov:
Predpostavimo, da so okvirni stroški tega projekta X zneskov.
Viri in prizadevanja:
Za to je treba en testni primer avtomatizirati od konca do konca in potrebujemo en vir s polnim delovnim časom približno 24 ur, poleg tega pa še en vir za pregled dela. Tako potrebujemo 2 vira in ocena napora je približno 40 ur.
Analiza časa:
Za to narišimo majhen Ganttov grafikon, da vidimo časovnico.
3. Usposabljanje / najem
# 1) Če nekateri viri zahtevajo usposabljanje , nato načrtujte njihovo usposabljanje. Včasih imate morda nekaj virov za ročno testiranje, ki jih zanima pisanje testnih primerov za avtomatizacijo, ali pa so nekateri delali na področju avtomatizacije, vendar različna orodja in so se pripravljeni naučiti orodja, ki ste ga izbrali za svojo avtomatizacijo.
V tem primeru določite te vire in načrtujte njihovo usposabljanje, da bodo lahko začeli delati na avtomatizaciji primerov regresijskih testov.
#two) Če potrebujemo več sredstev, potem delamo na najem načrt. Ko opravite analizo virov za svoja prizadevanja in če ne morete zadovoljiti potreb z že razpoložljivimi viri, načrtujte, da boste v okviru proračuna najeli nekaj novih virov z ustreznimi znanji, ki so potrebna za projekt.
Primer:
Recimo, da že imamo vir, ki pozna koncepte Jave in se želi naučiti selena. Potem se bomo dogovorili za trening selena za to osebo.
Če nimamo na voljo nobenih virov za avtomatizacijo. Potem bomo zaposlili osebo, ki ima nekaj izkušenj pri avtomatizaciji takih testnih primerov s pomočjo selena in jave.
4. Okvir in smernice
# 1) Ko so orodje in viri pripravljeni, nadaljujte s pripravo a okvir ali odločitev, katero uporabiti iz obstoječih okvirov. Uporabite lahko več že zgrajenih okvirov ali pa jih lahko sestavite iz nič.
Med izbiro ali gradnjo ogrodja poskrbite, da boste vključili komponente o, testne primere, dnevnike, poročila, vhodne podatke, povezavo z bazo podatkov itd.
#two) Odločite se za drugo podporna orodja ki ga želite uporabiti. Ker je razvijanje skript za avtomatizacijo razvojna naloga, ki vključuje pisanje kode, bi bilo veliko bolje ugotoviti druga razvojna orodja, ki bi bila potrebna za podporo pisanju vaših skriptov.
Na primer , Nekatera orodja, ki so vam lahko v pomoč, vključujejo git, GitHub, Jenkins itd.
# 3) Oris smernice za pisanje skriptov za avtomatizacijo. Treba je opisati smernice, tako da se vsi viri, ki delajo na projektu, sinhronizirajo in uporabljajo iste konvencije o poimenovanju, enake postopke za prijavo / odjavo kode in isti programski jezik.
najboljše mesto za ogled animeja, sinhroniziranega
Primer:
Okvir: Odločimo se BDD (vedenjsko usmerjen razvoj) okvir za testiranje avtomatizacije.
Podporna orodja: Orodja, ki jih potrebujemo za popolno podporo avtomatizaciji, bodo GitHub, Jenkins, Log4J, Cucumber in JUnit.
5. Skripti za avtomatizacijo
Začnite pisati skripte za avtomatizacijo. Ko imamo vse, torej orodje, programski jezik, potrebna znanja in testne primere, ki jih je treba avtomatizirati, lahko začnemo pisati skripte za avtomatizacijo.
Med pisanjem skriptov moramo zagotoviti, da:
- Smernice se upoštevajo.
- Uporabljamo orodja.
- Testni primeri so modulirani.
- Komponente bi morali imeti možnost ponovno uporabiti, če so potrebne v več testnih primerih.
Paziti moramo tudi, da je koda pravilno vzdrževana v orodju za nadzor različic in da lahko vsi člani ekipe enostavno sodelujejo.
Primer:
Zapišimo dejanske skripte, da bo ta testni primer zagnan. Vzorec iz skriptov lahko prikažete spodaj.
Najprej bi bil scenarij za kumare za ta testni primer videti spodaj:
Funkcija: Preverite funkcijo prijave
Kot uporabnik se želim prijaviti v aplikacijo
Okvir scenarija: Prijava v aplikacijo
Glede na to, da sem odprl prijavo
Ko vnesem uporabniško ime “”
In vnesem geslo “”
In kliknem na gumb Prijava
Potem grem na domačo stran
Primeri:
| uporabniško ime | geslo |
| testuser1 | geslo1 |
| testuser2 | geslo2 |
Po datoteki funkcije bomo izvedli definicijo korakov za korake, omenjene v datoteki funkcije.
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(); } }
Na koncu bi dejanska izvedba razreda funkcionalnosti prijave izgledala spodaj:
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. Pregled
(slika vir )
# 1) Pregled kode: Ko razvijalec avtomatizacije konča s pisanjem skriptov za avtomatizacijo, je zelo pomembno, da si ogledate različne ravni pregleda kode.
Pregledi kode pomagajo v
- Ugotavljanje napačnih preverjanj.
- Iskanje točk za optimizacijo kode.
- Iskanje boljših načinov za izvajanje funkcionalnosti za učinkovito uporabo virov.
Pregledi kode razkrivajo delo razvijalca tudi drugim razvijalcem in mu dajejo tudi drugačno perspektivo in prostor za izboljšave.
# 2) Pregled testnih primerov: Skupaj s pregledom kode je zelo pomemben tudi testni primer. Poskrbeti moramo, da bodo skripti za avtomatizacijo pri izvajanju izvedli enak nabor dejanj in preverjanj, kot pričakujemo od ročnih testnih primerov.
Tako pregledovanje primerov avtomatizacije s poslovnimi analitiki ali strokovnjaki za testiranje pomaga povečati zaupanje v testiranje avtomatizacije teh testnih primerov.
Primer:
Za naš primer v razmisleku recimo, da smo za pregled kode dobili komentarje, kot je »iskati element po id in ne po imenu«. Tu bomo to upoštevali in ustrezno spremenili naš skript.
Prav tako bi lahko opravili testni pregled, da bi dodali korake za testiranje, če ste po uspešni prijavi na domači strani. Nato bi to dodali tudi našim skriptom.
7. Dostavite
Dostavite testne primere, tako da jih lahko kdorkoli kadar koli zažene. Ko so skripti za avtomatizacijo pripravljeni za uporabo, je zelo pomembno, da pripravite načrt dostave za skripte za avtomatizacijo.
Ta načrt je obvezen, saj želimo zagotoviti, da avtomatizacija testnih primerov ne bo omejila njegovega izvajanja na določen nabor ljudi ali spretnosti. Vsem članom ekipe ali projekta je treba dovoliti, da izvedejo testne primere.
Eden od možnih načrtov dostave je zagotoviti delo Jenkinsa, ki ga je mogoče sprožiti za izvajanje avtomatiziranih testnih primerov.
Primer:
V našem primeru predpostavimo, da smo testno zadevo dostavili z Jenkinsovo nalogo. To Jenkinsovo delo prevzame kodo iz GitHub-a, jo izdela in zažene testne primere na drugem računalniku.
Ko je opravilo uspešno, se prikaže ustvarjeno poročilo o preskusu. Vsakdo, ki ima dostop do Jenkinsa, lahko vodi to delo. Tudi to opravilo je mogoče načrtovati za izvajanje ob določenem času.
Zaključek
Če se lahko s temi izzivi spoprimemo na dobro optimiziran način, je avtomatizirano regresijsko testiranje v okretnem okolju odlična priložnost, da QA prevzame vodstvo gibčnih procesov. Bolje je premostiti vrzel med uporabniki in razvijalci, razumeti, kaj je potrebno, kako lahko to dosežemo in kako lahko zagotovimo pred uvedbo.
Praksa avtomatizacije bi morala biti v celoti zainteresirana za rezultat, pa tudi za nadaljnje zagotavljanje, da celoten razvijajoči se sistem izpolnjuje poslovne cilje in ustreza svojemu namenu.
Avtomatizacija regresijskega testnega primera je vedno v pomoč, saj je najboljši kandidat za začetek testiranje avtomatizacije . Zgoraj omenjenim korakom lahko sledite za avtomatizacijo katerega koli preskusnega paketa in ne le regresije.
Tudi avtomatizacijsko testiranje je zelo koristno in stroškovno učinkovito, čas vlaganja v avtomatizacijsko testiranje pa je le pisanje skriptov in njihovo vzdrževanje. Zato je treba za uspešno izvedbo projekta pravilno načrtovati in načrtovati testiranje avtomatizacije.
O avtorju: J. B. Rajkumar ima več kot 15 let izkušenj tako na področju akademikov kot preizkušanja programske opreme. Delal je kot korporativni trener, vodja preizkusov, vodja kakovosti in vodja kakovosti.
Sporočite nam svoje komentarje / predloge v zvezi s tem člankom.
=> Obiščite tukaj za celotno serijo testiranja regresije.
Priporočeno branje
- Najboljša orodja za testiranje programske opreme 2021 (QA Test Automation Tools)
- Prenos eBook knjige za preizkušanje
- 4 koraki k razvoju agilnega miselnega načina testiranja za uspešen prehod na agilni postopek
- Izzivi ročnega in avtomatiziranega preskušanja
- Razlika med ponovnim testiranjem in regresijskim preskušanjem s primerom
- 5 Izzivi in rešitve za mobilno testiranje
- Preskušanje SaaS: izzivi, orodja in pristop testiranja
- 10 najbolj priljubljenih orodij za regresijsko testiranje leta 2021