automated regression testing
Ovaj vodič objašnjava izazove automatiziranog testiranja regresije. Također ćemo naučiti o postupku i koracima za automatizaciju regresijskog ispitivanja:
Naučit ćemo kako automatizirati regresijske test slučajeve počevši od njihove identifikacije, odabira alata za automatizaciju, analize troškova, vremena i napora, pisanja skripti i konačno dostavljanja timu za ručni test kako bi mogli izvršiti test slučajeve s bilo kojeg mjesta bilo kad.
Ako se pitate zašto samo paket za regresijski test, to je zato što je paket za regresijski test glavni kandidat za automatizaciju, jer je to niz testnih slučajeva koji se ponavljaju i oduzimaju vrijeme. Stoga bi njihova automatizacija doista uštedjela puno resursa, a bilo bi i manje vremena.
Dobit ćete brza izvješća o slučajevima regresijskih testova, a ove korake možete koristiti i za automatizaciju bilo kojeg drugog testnog kompleta.
=> Kliknite ovdje za kompletnu seriju ispitivanja regresije.
Što ćete naučiti:
- Automatizirano regresijsko ispitivanje
- Automatizirano testiranje: izazovi u agilnom okruženju
- Koraci za automatizaciju regresijskog ispitivanja
- Zaključak
Automatizirano regresijsko ispitivanje
Nedavno, kad sam želio započeti svoj novi projekt automatskog testiranja s četiri resursa, mislio sam primijeniti bilo koju od agilnih metodologija. Ali nisam uspio nastaviti jer mi je u mislima pokrenut niz pitanja.
Pitanja su bila poput:
- Je li moguće koristiti agilne metodologije u automatiziranom testiranju?
- Mogu li koristiti tradicionalne alate?
- Trebam li se odlučiti za alate otvorenog koda?
- Koji su izazovi s kojima se moram suočiti ako implementiram automatizaciju u okretnom okruženju?
U ovom ćemo članku analizirati neke izazove s kojima se suočavamo tijekom primjene automatizacije s agilnim metodologijama. Automatizirano regresijsko testiranje u okretnom okruženju predstavlja rizik da postanete kaotični, nestrukturirani i nekontrolirani.
Agile Projects predstavljaju vlastite izazove timu za automatizaciju. Agile metodologija naglašava suradnju u timu i čestu isporuku proizvoda. Čimbenici poput nejasnog opsega projekta, višestrukih ponavljanja, minimalne dokumentacije, ranih i čestih potreba za automatizacijom i aktivnog uključivanja dionika, itd., Zahtijevaju puno izazova od tima za automatizaciju.
Automatizirano testiranje: izazovi u agilnom okruženju
Nekoliko je agilnih izazova za tim automatizacije. Međutim, a malo je njih u nastavku ukratko.
Izazov 1:Faza zahtjeva
Razvojni programer Test Automation bilježi zahtjeve u obliku 'korisničkih priča', što su kratki opisi korisničkih funkcija.
Svaki zahtjev mora imati prioritet na sljedeći način:
Visoka: To su kritični zahtjevi koje je nužno učiniti u prvom izdanju
Srednji: To su zahtjevi koji su važni, ali se s njima može raditi dok se ne provedu.
Niska: To su zahtjevi koje je lijepo imati, ali nisu presudni za rad softvera.
Jednom kada se uspostave prioriteti, planiraju se 'ponavljanja' izdanja. Uobičajeno je potrebno da svaka izvedba Agile izdanja traje između 1 i 3 mjeseca. Kupci / korisnici softvera imaju slobodu napraviti previše promjena u zahtjevima. Ponekad su ove promjene toliko nestabilne da se iteracije odbiju. Te su promjene veći izazov u provedbi procesa testiranja Agile Automation.
kako pregledati swf datoteke na računalu
Izazov 2:Odabir pravih alata
Tradicionalni, zadnji testni alati sa značajkama snimanja i reprodukcije prisiljavaju timove da pričekaju dok softver ne bude gotov. Štoviše, tradicionalni alati za automatizaciju ispitivanja ne rade za Agile kontekst jer rješavaju tradicionalne probleme koji se razlikuju od izazova s kojima se suočavaju timovi Agile Automation.
Automatizacija u ranim fazama agilnog projekta obično je vrlo teška, ali kako sustav raste i razvija se neki se aspekti smiruju i postaje prikladno primijeniti automatizaciju. Dakle, izbor alata za testiranje postaje presudan za postizanje učinkovitosti i prednosti agile u kvaliteti.
Izazov 3:Faza razvoja skripte
Ispitivači automatizacije, programeri, poslovni analitičari i dionici projekta zajedno doprinose početnim sastancima na kojima su za sljedeći sprint odabrane 'Priče o korisnicima'. Nakon što se za sprint odaberu 'Priče o korisniku', oni se koriste kao osnova za niz testova.
Kako funkcionalnost raste sa svakom iteracijom, mora se izvesti testiranje regresije kako bi se osiguralo da uvođenje nove funkcionalnosti u svaki ciklus ponavljanja ne utječe na postojeću funkcionalnost. The skala Ispitivanja regresije raste sa svakim sprintom i osigurava da ovo ostane izvodljiv zadatak, a testni tim koristi testnu automatizaciju za regresijski paket.
Izazov 4:Upravljanje resursima
Agile pristup zahtijeva mješavinu vještina testiranja, odnosno resursi za testiranje bit će potrebni za definiranje nejasnih scenarija i test slučajeva, provođenje Ručno ispitivanje zajedno s programerima, pišite automatizirane regresijske testove i izvršavajte automatizirane regresijske pakete.
Kako projekt bude napredovao, tako će biti potrebne specijalističke vještine za pokrivanje daljnjih područja ispitivanja koja bi mogla uključivati integraciju i testiranje izvedbe.
Trebala bi postojati odgovarajuća kombinacija stručnjaka za domene koji planiraju i prikupljaju zahtjeve. Izazovan dio upravljanja resursima je otkriti testne resurse s više vještina i rasporediti ih.
Izazov 5:Komunikacija
Među ljudima mora postojati dobra komunikacija Ispitivanje automatizacije tim, programeri, poslovni analitičari i dionici. Mora postojati vrlo suradnička interakcija između klijenta i dostavnih timova. Veće sudjelovanje klijenta podrazumijeva više prijedloga ili promjena od strane klijenta. A to podrazumijeva veću propusnost za komunikaciju.
Ključni je izazov taj proces da treba biti u stanju obuhvatiti i učinkovito provesti sve promjene, a integritet podataka treba zadržati. U tradicionalnom testiranju programeri i testeri su poput nafte i vode, ali u agilnom okruženju izazovni je zadatak da oboje moraju zajedno raditi na postizanju cilja.
Izazov 6:Dnevni Scrum sastanak
Svakodnevni Scrum sastanak jedna je od ključnih aktivnosti u agilnom procesu. Timovi se sastaju na stand-up sjednicama od 15 minuta. Koja je učinkovitost ovih sastanaka? Koliko ti sastanci pomažu programerima u praksi automatizacije? itd., raspravlja se na ovom sastanku.
Izazov 7:Faza puštanja
Cilj projekta Agile je isporučiti osnovni radni proizvod što je brže moguće, a zatim proći kroz proces stalnog poboljšanja. To znači da ne postoji pojedinačna faza puštanja proizvoda. Izazovan dio leži u integracijskom ispitivanju i ispitivanju prihvatljivosti proizvoda.
Koraci za automatizaciju regresijskog ispitivanja
Postupak koji treba slijediti za automatizaciju regresije može se precizno podijeliti u sljedeće korake:
Ovih 7 koraka detaljno su objašnjeni u nastavku jednostavnim pojmovima radi lakšeg razumijevanja.
1. Identifikacija
# 1) Identificirajte test slučajevi koji bi trebao biti dio paketa za regresijski test.
- Da biste započeli s automatizacijom slučajeva regresijskih testova, prvo što trebate učiniti je identificirati i pravilno definirati slučajeve regresijskih testova sa svim koracima, podacima i preduvjetima.
- Da biste bili sigurni da imate učinkovit paket za regresijsko testiranje, ne zaboravite uključiti:
- Test slučajevi s ponavljajućim nedostacima.
- Test slučajevi koji pokrivaju scenarije od kraja do kraja.
- Test slučajevi koji su vidljiviji krajnjim korisnicima.
- Ispitni slučajevi na graničnim vrijednostima.
- Dobra kombinacija pozitivnih i negativnih test slučajeva.
- Složeni testni slučajevi.
#dva) Identificirajte alati za automatizaciju koji su najbolji za vaše zahtjeve i ponašanje aplikacije. Jednom kada su slučajevi regresijskih testova identificirani i spremni za automatizaciju, prepoznajte alate koji najbolje odgovaraju vašim test slučajevima.
Najbolji način za prepoznavanje alata je napraviti matricu s alatima i vašim zahtjevima, a zatim pratiti koji alat udovoljava kojim zahtjevima.
Predloženo čitanje => Popis najboljih alata za ispitivanje automatizacije
# 3) Identificirajte Programski jezik koje želite koristiti. S toliko alata dostupnih na tržištu, ovi alati podržavaju više jezika. Stoga je važno prepoznati programski jezik u koji želite napisati svoje slučajeve automatizacije.
Primjer :Pretpostavimo da imamo projekt u kojem želimo automatizirati paket za regresijsko testiranje za aplikaciju koja se temelji na pregledniku.
Kao što je gore objašnjeno, identificirat ćemo ispitne slučajeve.
- Pretpostavimo da je naš testni slučaj 'Provjerite može li se korisnik uspješno prijaviti koristeći važeće korisničko ime i lozinku'.
Zatim ćemo identificirati alate za automatizaciju.
- Test slučaj temeljen na pregledniku može se automatizirati s “ Selen ',' Ranorex ”,„ TestComplete ”. Odlučimo se za alat Selenium jer on najbolje odgovara zahtjevima.
Idemo sada identificirati programski jezik.
- Želimo koristiti “ Java ”Kao programski jezik kao vrlo podržani jezik.
2. Analiza
# 1) Čini Trošak analiza. Vrlo je važno raditi u okvirima proračuna. Dakle, nakon faze identifikacije imat ćete ideju koliko testnih slučajeva treba automatizirati i koji su mogući alati koji se mogu koristiti.
Svi nalazi iz faze identifikacije pomoći će vam da napravite približni proračun i prema tome možete dobiti bilo koje odobrenje itd., Ako je potrebno.
#dva) Čini resursa i truda analizu kako biste vidjeli imate li resursa za rad na ovome. Zajedno s analizom troškova, vrlo je važno napraviti analizu resursa i napora radi bolje raspodjele resursa i učinkovitog korištenja njihovog vremena na projektu.
Dok procjenjujete resurse i napore, vodite računa o rizicima poput, ako se netko razboli ili ako neki slučajevi testova trebaju više resursa za izvršenje itd.
# 3) Čini Vrijeme Analiza. Potrebna je vremenska analiza kako biste bili sigurni da projekt automatizacije možete završiti u okviru proračuna i rokova. Tijekom rada na vremenskoj analizi bilo bi korisno pripremiti vremensku liniju za praćenje napretka tijekom razvoja.
Za bolju vremensku analizu projekta:
- Utvrdite zadatke i podzadate u svojim projektima.
- Odredite prioritete zadataka i podzadataka.
- Nacrtajte Ganttov grafikon ili mrežni dijagram za bolju slikovitost vremenske trake.
Primjer :Nastavljajući s našim primjerom u razmatranju iz faze identifikacije, objašnjenje ove faze dano je u nastavku:
Analiza troškova:
Pretpostavimo da je približni trošak za ovaj projekt iznos od X USD.
Resurs i napor:
Za to se jedan testni slučaj mora automatizirati od kraja do kraja, a potreban nam je jedan resurs s punim radnim vremenom otprilike 24 sata, a također nam treba još jedan resurs za pregled rada. Stoga su nam potrebna dva resursa, a procjena napora je oko 40 sati.
Analiza vremena:
Za ovo nacrtajmo mali Ganttov grafikon da bismo vidjeli vremensku traku.
3. Trening / zapošljavanje
# 1) Ako neki resursi zahtijevaju trening , zatim planirajte njihov trening. Ponekad imate neke resurse za ručno testiranje koje zanima pisanje slučajeva automatizacije ili su neki ljudi radili na automatizaciji, ali na različitim alatima i spremni su naučiti alat koji ste odabrali za svoju automatizaciju.
U ovom slučaju, identificirajte ove resurse i planirajte njihovo osposobljavanje kako bi mogli početi raditi na automatizaciji slučajeva regresijskih testova.
#dva) Ako nam treba više resursa, radite na zapošljavanje plan. Kada napravite analizu resursa za svoje napore i ako ne možete zadovoljiti potrebe već dostupnim resursima, planirajte zaposliti neke nove resurse s odgovarajućim vještinama koje su potrebne za projekt u okviru proračuna.
Primjer:
Recimo da već imamo resurs koji je upoznat s Java konceptima i želi naučiti Selenium. Tada ćemo organizirati trening selena za tu osobu.
Ako nemamo dostupnih resursa za automatizaciju. Tada ćemo zaposliti osobu koja ima iskustva u automatizaciji takvih testnih slučajeva pomoću selena i jave.
4. Okvir i smjernice
# 1) Nakon što su alat i resursi spremni, poradite na smišljanju a okvir ili odlučivanje o tome koji će se koristiti iz postojećih okvira. Možete koristiti višestruko već izgrađene okvire ili svoj okvir od početka.
Tijekom odabira ili izrade okvira, pobrinite se da uključite komponente o, test slučajeve, zapisnike, izvješća, unos, vezu s bazom podataka itd.
#dva) Odlučite se za drugu pomoćni alati koje želite koristiti. Kako je razvoj skripte za automatizaciju razvojni zadatak koji uključuje pisanje koda, bilo bi puno bolje shvatiti ostale razvojne alate koji bi bili potrebni za podršku pisanju vaših skripti.
Na primjer , Neki alati koji mogu biti od pomoći uključuju git, GitHub, Jenkins itd.
# 3) Ucrtajte smjernice za pisanje skripti za automatizaciju. Potrebno je iznijeti smjernice tako da se svi resursi koji rade na projektu sinkroniziraju i koriste iste konvencije imenovanja, iste postupke za prijavu / odjavu koda i isti programski jezik.
vrste ispitivanja u softverskom inženjerstvu
Primjer:
Okvir: Odlučimo o BDD (razvoj usmjeren na ponašanje) okvir za ispitivanje automatizacije.
Pomoćni alati: Alati koji su nam potrebni za potpunu podršku automatizaciji bit će GitHub, Jenkins, Log4J, Cucumber i JUnit.
5. Skripte za automatizaciju
Počnite pisati skripte za automatizaciju. Nakon što imamo sve, tj. Alat, programski jezik, potrebne vještine i ispitne slučajeve koji trebaju biti automatizirani, možemo početi pisati skripte za automatizaciju.
Tijekom pisanja skripti moramo biti sigurni da:
- Upute se slijede.
- Koristimo alate.
- Ispitni slučajevi su modularizirani.
- Morali bismo biti u mogućnosti ponovno upotrijebiti komponente ako su potrebne u više testnih slučajeva.
Također se moramo pobrinuti da se kôd pravilno održava u alatu za kontrolu verzija i da svi članovi tima mogu lako surađivati.
Primjer:
Napišimo stvarne skripte kako bismo pokrenuli ovaj testni slučaj. Uzorak iz skripti može se prikazati kao dolje.
Prvo, scenarij krastavca za ovaj testni slučaj izgledao bi kao u nastavku:
Značajka: Provjera funkcionalnosti prijave
Kao korisnik želim se prijaviti u aplikaciju
Pregled scenarija: Prijava u aplikaciju
S obzirom na to da otvaram prijavu
Kada unesem korisničko ime ''
I unosim lozinku ''
I ja kliknem na gumb Prijava
Zatim idem na početnu stranicu
Primjeri:
| korisničko ime | lozinka |
| testuser1 | lozinka1 |
| testuser2 | lozinka2 |
Nakon datoteke značajke, implementirat ćemo definiciju koraka za korake spomenute u datoteci značajke.
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 kraju, stvarna implementacija klase funkcionalnosti prijave izgledala bi dolje:
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 izvor )
# 1) Pregled koda: Nakon što programer automatizacije završi s pisanjem skripti za automatizaciju, vrlo je važno proći kroz različite razine pregledavanja koda.
Pregledi koda pomažu u
- Utvrđivanje pogrešnih provjera.
- Pronalaženje točaka za optimizaciju koda.
- Pronalaženje boljih načina za implementaciju funkcionalnosti za učinkovito korištenje resursa.
Pregledi koda također izlažu rad programera ostalim programerima i daju mu drugačiju perspektivu i prostor za poboljšanje.
# 2) Pregled testnih slučajeva: Uz pregled koda, i preskusni slučaj je vrlo važan. Moramo biti sigurni da skripte za automatizaciju pri izvršavanju izvode isti skup radnji i provjera kao što očekujemo od slučajeva ručnog testiranja.
Stoga, pregled slučajeva automatizacije s poslovnim analitičarima ili stručnjacima za ispitivanje pomaže u jačanju povjerenja u automatizaciju testiranja tih slučajeva.
Primjer:
Za naš primjer u razmatranju, recimo da smo za pregled koda dobili komentare poput 'element pretraživanja prema ID-u, a ne imenu'. Ovdje ćemo to uzeti u obzir i u skladu s tim izmijeniti našu skriptu.
Također, mogao bi se izvršiti testni pregled kako bi se dodali koraci za testiranje ako ste nakon uspješne prijave na početnoj stranici. Zatim bismo to dodali i našim skriptama.
7. Dostaviti
Dostavite test slučajeve, tako da ih bilo tko može pokrenuti u bilo koje vrijeme. Jednom kada su skripte za automatizaciju spremne za upotrebu, vrlo je važno izraditi plan isporuke za skripte za automatizaciju.
Ovaj je plan potreban jer želimo biti sigurni da automatizacija testnih slučajeva ne ograničava njegovo izvršavanje na određeni skup ljudi ili vještina. Svima u timu ili projektu treba omogućiti provođenje test slučajeva.
Jedan od mogućih planova isporuke je pružanje Jenkinsovog posla koji se može pokrenuti za izvršavanje automatiziranih test slučajeva.
Primjer:
U našem slučaju, pretpostavimo da smo testni slučaj isporučili pomoću Jenkinsovog posla. Ovaj Jenkinsov posao uzima kôd s GitHub-a, gradi ga i pokreće test slučajeve na drugom stroju.
Kad je posao uspješan, prikazuje vam generirano izvješće o ispitivanju. Svatko tko ima pristup Jenkinsu može voditi ovaj posao. Također, ovaj posao može se zakazati za izvođenje u određeno vrijeme.
Zaključak
Ako se s tim izazovima možemo suočiti na dobro optimiziran način, tada je automatizirano regresijsko testiranje u agilnom okruženju izvrsna prilika za QA da preuzme vodstvo u agilnim procesima. Bolje je premostiti jaz između korisnika i programera, razumjeti što je potrebno, kako se to može postići i kako se može osigurati prije implementacije.
Praksa automatizacije trebala bi imati glavni interes i za jedan i za drugi rezultat, kao i za kontinuirano osiguravanje da cijeli sustav koji se razvija zadovoljava poslovne ciljeve i odgovara svojoj svrsi.
Automatizacija slučaja regresijskog testa uvijek je korisna jer je najbolji kandidat za početak ispitivanje automatizacije . Možete slijediti gore spomenute korake za automatizaciju bilo kojeg paketa za testiranje, a ne samo regresiju.
Automatizirano testiranje također je vrlo korisno i isplativo, a ulaganje vremena u automatsko testiranje samo je u pisanju skripti i njihovom održavanju. Stoga ispitivanje automatizacije treba pravilno planirati i zakazati za uspješan projekt.
O autoru: J.B.Rajkumar ima više od 15 godina iskustva i u akademskoj nastavi i u ispitivanju softvera. Radio je kao korporativni trener, voditelj ispitivanja, QA Manager i QC Manager.
Javite nam svoje komentare / prijedloge u vezi s ovim člankom.
=> Posjetite ovdje za kompletnu seriju ispitivanja regresije.
Preporučena literatura
- Najbolji alati za testiranje softvera 2021. (Alati za automatizaciju ispitivanja kvalitete)
- Testiranje e-knjige za preuzimanje priručnika
- 4 koraka prema razvoju agilnog načina testiranja za uspješan prijelaz na agilni proces
- Izazovi ručnog i automatiziranog ispitivanja
- Razlika između ponovnog testiranja i regresivnog ispitivanja s primjerom
- 5 Izazovi i rješenja za mobilno testiranje
- SaaS testiranje: izazovi, alati i pristup testiranju
- 10 najpopularnijih alata za regresijsko ispitivanje 2021