Agilni okvir za automatizaciju testiranja

⚡ Pametni sažetak

Agilna automatizacija testiranja primjenjuje automatizirane provjere unutar kratkih sprintova, gdje se zahtjevi mijenjaju tjedno, a paket izgrađen za stabilno izdanje u vodopadnom obliku brzo postaje teret održavanja, a ne sigurnosna mreža.

  • 🔘 Napetost jezgre: Automatizacija nagrađuje stabilnost, dok agilni pristup nagrađuje promjene, pa je odabir testova važniji od pokrivenosti.
  • ☑️ Kontrast vodopada: Tradicionalna automatizacija pretpostavlja stabilnu aplikaciju, stručne skriptare i visoke troškove postavljanja.
  • Sprint stvarnost: Sprint od jednog do četiri tjedna rijetko odgovara dizajniranju, kodiranju i validaciji velikih skripti.
  • 🧪 Nije istraživačko: Automatizirani testovi potvrđuju poznato ponašanje; oni ne otkrivaju nove i inovativne nedostatke.
  • 🛠️ Izbor alata: Ograničeni licencirani alati sukobljavaju se s otvorenom suradnjom na koju se oslanjaju agilni timovi.
  • 📈 Najbolje odgovara: Ponavljajuće regresijske provjere s puno podataka i jasnim rezultatima prolaza ili pada dobro se automatiziraju.

Agilni okvir za automatizaciju testiranja

Agilno testiranje automatizacije

Agilno automatizirano testiranje je praksa korištenja automatizacije testiranja unutar agilnog procesa isporuke. Njegova je svrha učiniti razvoj softvera učinkovitijim i efikasnijim, a istovremeno zaštititi kvalitetu i kontrolirati vrijeme i resurse koje izdanje troši. Budući da se testovi pišu uz rad na značajkama, praksa uvelike ovisi o koordinaciji između programera i testera.

Otkad je agilna metodologija krenula u uklanjanje mukotrpnih realnosti modela vodopada, njezin utjecaj se osjetio u ispitivanje automatizacije također. Dvije discipline moraju se namjerno kombinirati:

Agile plus automatizacija kombiniraju se u automatizaciju u Agileu

Automatizacija u Waterfallu vs. automatizacija u Agileu

U tradicionalnom životnom ciklusu testiranja softvera, automatizirano testiranje postaje izvedivo nakon što je aplikacija stabilno i zahtjevi su riješeniPretpostavlja se znatnu količinu vremena, visokokvalificirani stručnjaci za automatizaciju i značajni troškovi postavljanja. Osnovna svrha je dugoročno smanjenje troškova i potvrda da nisu uvedeni novi nedostaci oko postojećih testnih slučajeva.

Automatizirano testiranje nije istraživačke prirode, jer mu je glavna uloga uštedjeti vrijeme i smanjiti troškove. Nije osmišljen za otkrivanje novih i inovativnih nedostataka. Automatizirano testiranje uglavnom potvrđuje ponašanje koje već postoji.

Stoga dva okruženja postavljaju vrlo različite zahtjeve pred testni paket:

Faktor Automatizacija u vodopadu Automatizacija u agilnom okruženju
Stanje aplikacije Stabilno i potpisano prije početka skriptiranja Mijenja se svaki sprint, često tijekom skriptiranja
Dostupno vrijeme Namjenska faza automatizacije Što god stane u sprint od jednog do četiri tjedna
Tko skriptira Odvojeni tim stručnjaka za automatizaciju Tim za isporuku, testeri i programeri zajedno
Primarni cilj Dugoročno smanjenje troškova u velikom regresijskom paketu Brze povratne informacije o upravo izgrađenom prirastu
Rizik održavanja Nisko, jer se zahtjevi sporo mijenjaju Visoko, jer se zahtjevi stalno mijenjaju

Kako automatizirati u agilnoj metodologiji

Po vlastitoj definiciji, agilna metodologija uklanja zamornu dokumentaciju kako bi se nove ideje mogle brzo implementirati i ljudi mogli slobodno komunicirati. Ona favorizira istraživački rad u odnosu na papirologiju:

Agilni pristup odbacuje zamornu dokumentaciju i favorizira istraživačko testiranje

Postoji stvarna kontradikcija između temeljnih filozofija agilne metodologije i automatiziranog testiranja. Agilni timovi to rješavaju sužavanjem onoga što automatiziraju, umjesto da automatiziraju manje: provjere se pišu u istom sprintu kao i značajka, spuštaju se na razinu jedinice i API-ja gdje ih je najjeftinije održavati te se pokreću na svakoj izgradnji.

Osnovne točke za agilnu automatizaciju testiranja

Prije nego što se kapacitet sprinta preda automatizaciji, odvagnite točke koje odlučuju hoće li se skripta uopće moći dovršiti:

  • Vrijeme dizajniranja i kodiranja: Svaki scenarij mora biti dizajniran, kodiran i pregledan poput produkcijskog koda.
  • Validacija u odnosu na testne podatke: Gotov skript mora biti validiran s postojećim testnim podacima prije nego što mu itko može vjerovati.
  • Svrha testa: Funkcionalni i regresijski testovi imaju različite troškove održavanja i različite vijekove trajanja.
  • Sprint Duljina: Sprint traje jedan do četiri tjedna, najčešće dva, što rijetko ostavlja prostora za veliki napor u pisanju skripti.

Drugi faktor je promjena zahtjeva. Agilni pristup je, po definiciji, tehnika reagiranja na promjene koje pokreću kupci, pa se stoga lako prilagođava tijekom razvoja.

Automatizirano testiranje, nasuprot tome, najkorisnije je za stabilne zahtjeve. Ne uklapa se dobro u stalne promjene agilne metodologije, zbog čega izbor onoga što automatizirati nosi veću težinu od količine automatizacije.

Agilni alati za automatizaciju

Odabir relevantnog alat za automatizaciju je još jedan važan faktor u prihvaćanju automatiziranog testiranja unutar agilne metodologije. Licencirani alati za automatizaciju, na primjer, nameću stroge kriterije sigurnosnog pristupa različitim vrstama i razinama korisnika, što ograničava tko može pristupiti resursima koji pripadaju tom okviru za automatizaciju testiranja.

Licencirani alati za automatizaciju zaključavaju resurse dok agilna metodologija ostaje manje restriktivna

Agilna metodologija, nasuprot tome, naglašava otvorenu suradnju i interakciju između članova tima. Politike restriktivnog pristupa djeluju protiv te kohezije i mogu proizvesti rezultate koji nisu ni korisni ni pogoduju uspjehu projekta.

Prioritet je isporučiti kvalitetne skripte za automatizaciju unutar vremena koje dopušta agilni proces. Pažljivo odaberite kandidate za testne slučajeve kako bi se rezultirajuće skripte mogle ponovno koristiti kasnije i dalje biti dovršene unutar zadanog vremena.

Čak i u agilnom okruženju neki testovi i dalje moraju biti pokriveni - posebno regresijski testovi. Sljedeći odjeljak razmatra situacije u kojima se automatizirano testiranje uklapa i kako se svako od njih preslikava na agilno testiranje.

Testiranje automatizacije Concepts Kada se primjenjuje na agilni pristup

Donja tablica uzima sedam klasičnih uvjeta koji opravdavaju automatizaciju testa i daje agilni odgovor za svaki od njih. Samo se tri jasno prevode u agilni sprint, a sva tri su regresijskog oblika:

# Koncept automatiziranog testiranja Odgovor o agilnoj metodologiji
1 Test se mora često ponavljati. Tu dolazi do izražaja koncept regresijskog testiranja.
2 Tijek rada testa i njegova validacija razvijaju se i mijenjaju polako tijekom vremena. Nije korisno za agilno testiranje, jer agilno testiranje znači česte promjene zahtjeva.
3 Test validira poslovni proces ili tijek rada, a ne izgled i dojam, boju ili raspored tablice. Ovaj scenarij se može smatrati dijelom ručnog testiranja.
4 Test daje rezultate za regulatorno tijelo koje zahtijeva da se ti rezultati elektronički zabilježe i arhiviraju kao formalni dokaz usklađenosti. Nije prikladno za agilu metodologiju, jer iscrpna razina dokumentacije nije dio agilne metodologije.
5 Test je vrlo repetitivan ili ima mnogo koraka koji se moraju izvesti svaki put na potpuno isti način, pri čemu se mora izbjeći ručni zamor ispitivača. Nije prikladno za agilnu metodologiju.
6 Rezultat prolaza ili pada testa je relativno lako odrediti i zabilježiti pomoću odabranog alata za automatizaciju. Pogodno za regresijske testove tijekom agilnog testiranja koji zahtijevaju repetitivne i naporne sposobnosti.
7 Test mora unijeti značajnu količinu podataka u aplikaciju. Može se uključiti kao regresijsko testiranje.

Sedam koncepata automatizacijskog testiranja uparenih s odgovarajućim odgovorima agilne metodologije

Pitanja i odgovori

Pravilo slojevitosti: mnogo brzih jediničnih testova u osnovi, manje integracijskih i API testova u sredini i tanki sloj end-to-end UI testova na vrhu. To održava paket veličine sprinta brzim i jeftinim za održavanje.

Automatizirane provjere za priču pišu se u istom sprintu kao i priča. Timovi obično počinju u prvom sprintu s jediničnim testovima, jer čekanje dok proizvod ne postane dovoljno stabilan stvara zaostatak u ručnom testiranju.

Poredajte faze kako bi odgovarale piramidi. Jedinični testovi se izvode prvi jer su najbrži, zatim integracijski i API testovi, a na kraju mali skup od početka do kraja. Kvarovi se prvo pojavljuju na najjeftinijoj razini. Guru99 pokriva mehaniku u kontinuirana integracija.

Najčešće zato što je piramida obrnuta - velika ulaganja u spore, krhke UI testove i gotovo nikakva ulaganja na razini jedinice. Drugi uzroci su automatizacija izostavljena iz procjena priča i paketi kojima nitko dovoljno ne vjeruje da bi blokirali izdanje.

Cijeli tim za isporuku. Razvojni programeri posjeduju jedinične testove, testeri posjeduju API i end-to-end slojeve te međusobno pregledavaju rad. Odvojeni nizvodni tim za automatizaciju ponovno uvodi kašnjenje primopredaje koje Scrum treba ukloniti.

Izdvojite ga iz blokirajućeg cjevovoda, pokrenite defekt i ispravite ili izbrišite unutar sprinta. Ostavljanje nestabilnog testa u glavnom izvođenju uči tim da ignorira crvene verzije, što košta više od nedostajućeg pokrića.

Samoobnavljajući lokatori ponovno identificiraju premješteni element iz njegovog konteksta umjesto kvarova, što smanjuje kvarove uzrokovane održavanjem. Modeli također generiraju testne podatke, određuju prioritete testova za pokretanje u odnosu na razliku i grupiraju duplicirane kvarove tako da sprint tim trijažira jednom.

Brzo ih izrađuje. GitHub kopilot scaffoldira objekte stranice, učvršćenja i tvrdnje iz postojećeg koda, što uklanja velik dio typing. Revpregledajte svaki nacrt, jer generirani test može potvrditi trenutno ponašanje, a ne potrebno ponašanje.

Sažmite ovu objavu uz: