how implement efficient test automation agile world
Avtomatizacija v Agile je zelo kritična.
Pomislite na številne funkcije, ki so dodane in dostavljene v vsakem Sprintu. Obstajati mora način, s katerim lahko zagotovite, da novo dodana funkcija ne vpliva na obstoječo funkcionalnost.
Zaradi kratkega trajanja Sprinta je praktično nemogoče izvesti celotno obleko vsakič, ko izdelek povečamo na koncu Sprinta. Avtomatizirana testna obleka bi tu zagotovo imela večjo vlogo.
Vendar pa bi uvajanje in dozorevanje v avtomatizaciji zagotovo trajalo nekaj časa. Začetna naložba v načrtovanje in oblikovanje avtomatizacijske dejavnosti bi se vsekakor dolgoročno izplačala.
V tem 3. delu napredne serije Agile Testing poskušam navesti nekaj napotkov, ki bi jih bilo treba upoštevati na podlagi mojih izkušenj, saj v svoj projekt vnašate avtomatizacijo.
Preberite tudi 1. del in 2. del najprej bolje razumeti temo.
Kaj se boste naučili:
Kaj avtomatizirati v okretnosti?
Kadarkoli načrtujemo, da bomo v svoje projekte uvedli avtomatizacijo, nas večina takoj glasuje za najboljšo »obleko za dimne teste« ali »regresijsko testno obleko«. kandidat za avtomatizacijo . Seveda so, toda ko pomislimo na preizkusno piramido avtomatizacije, lahko ugotovimo, da gre zgolj za zgornjo plast piramide.
Poleg zgornje plasti imamo še vedno plast storitve in enotno plast ki so pomembnejši.
kako odpreti datoteko .apk v operacijskem sistemu Windows
Kateri testi, razen testov dima in regresije, so lahko dobri kandidati za avtomatizacijo?
# 1) Zgradbe in razmestitve
V tradicionalnih okoljih imamo vnaprej določene gradnje, ki so lahko tedenske, štirinajstdnevne ali včasih celo mesečne. Eden od razlogov je, da te razmestitve zahtevajo čas. Težava tega pristopa je v tem, da moramo počakati na vnaprej določene datume, da odpravimo napake ali uvedemo nove funkcije, zato pride do zamude.
Drugi razlog je bil - ko preizkuševalci končajo s testiranjem in odkrijejo napake in napake, so programerji prešli na različne dele izvajanja in jih manj zanima odpravljanje napak starejše aplikacije. Ta pristop tudi zamuja s časom, ko je funkcija na voljo v proizvodnji.
Gradnja in uvajanje so entitete, ki se ponavljajo in so včasih dolgočasne. Uvajanje gradnje lahko traja tudi ure, kar odloži testiranje in sčasoma povratne informacije. Ker se uvajanja ponavljajo, postane dober kandidat za avtomatizacijo.
Preberite tudi=> Postopek upravljanja izdaje in uvajanja
Nekaj prednosti avtomatiziranega uvajanja gradnje je:
- Ni možnosti za napake pri uvajanju (izogniti se je mogoče človeškim napakam, kot je kopiranje napačne datoteke ali kopiranje datoteke na napačno mesto)
- Napake / funkcije so na voljo za preizkus takoj, ko so odpravljene
- Preizkuševalci dobijo več časa za testiranje
- Funkcija je pripravljena na selitev v manjši čas
- Hitre povratne informacije
# 2) Preizkusi enot / preskusi komponent
Sem že govoril o pomembnosti avtomatizacije sloja enote z uporabo TDD pristop v moji zadnji vadnici .
To tvori najnižjo plast piramide, zato mora biti temelj in vsak temelj trden. Razvojna skupina bi morala sodelovati in sodelovati, da bi večino testa prilagodila tej plasti.
# 3) Testiranje API / spletnih storitev
Spletne storitve so medij, v katerem si dve aplikaciji izmenjata podatke ali informacije v smislu zahteve in odziva, ne da bi se trudila z osnovno arhitekturo ali tehnologijo. Preprosteje povedano - oddajanje zahteve in potrditev odziva je tisto, kar običajno počnemo pri testiranju spletnih storitev.
Testiranje spletnih storitev vključuje pisanje programov za klic teh metod spletnih storitev in preverjanje vrednosti / vrednosti, ki jih vrne. Storitve lahko preizkusimo celo za različne permutacije in kombinacije. Vse podatke o preskusu imejte v Excelovem listu in vaš program lahko prebere podatke in pokliče preizkusno službo tako, da preskusne podatke posreduje kot parameter in potrdi rezultate.
To posebno testiranje je del srednje plasti piramide. Večino funkcionalnih preizkusov lahko potisnemo v to plast. Odpravljanje napak, ki se pojavijo v tej plasti, je enostavno odpraviti in se ne odložijo, dokler ni na voljo uporabniški vmesnik.
# 4) Testiranje za GUI
Avtomatizacija testiranja za grafičnim uporabniškim vmesnikom je sorazmerno enostavnejša od avtomatizacije dejanskega GUI. Druga prednost je, da ne glede na spremembe uporabniškega vmesnika funkcionalnost ostane nedotaknjena. Tudi če se spremeni kakšen element uporabniškega vmesnika, se funkcionalnost funkcije ne spremeni. Ta tehnika se osredotoča predvsem na poslovno logiko in pravila.
Preizkusni primeri so večinoma napisani v tabelarni obliki ali v preglednici, napisani pa so pripomočki / delčki kode, ki sprejmejo vhodne podatke iz teh tabel in vrnejo rezultate. Rezultati se ustvarijo takoj in nudijo odlično platformo za netehnične zainteresirane strani za izvajanje teh testov in pridobivanje pričakovanih rezultatov. Eno od orodij za dosego te tehnike je Fitnes .
# 5) Nefunkcionalno testiranje
To nefunkcionalna tehnika testiranja v bistvu vključuje testiranje obremenitve, zmogljivosti in obremenitve. Na trgu so na voljo različna orodja, ki jih je mogoče uporabiti za avtomatizacijo teh testov.
# 6) Primerjave podatkov
Številna testiranja zahtevajo primerjavo podatkovnih datotek, vključno z besedilnimi datotekami, datotekami CSV ali excel
Vprašanja in odgovori za intervju za mobilno testiranje
- Te datoteke lahko primerjate z osnovnimi črtami za preverjanje veljavnosti podatkov
- Primerjave so lahko enakih podatkov, vendar drugačne oblike. To se v bistvu zgodi, če imamo dve isti datoteki, ustvarjeni iz dveh različnih virov
Te primerjave se lahko ponavljajo, zato so avtomatizirane.
# 7) Iskanje
Iskanje določene entitete iz velikega števila datotek je lahko tudi dolgočasno in Bog nam pomaga, če je to ponavljajoča se naloga. En primer je iskanje po dnevniških datotekah. Če je to tudi dolgočasna in ponavljajoča se naloga, bi morali razmisliti o avtomatizaciji.
# 8) Ponavljajoče se naloge
Vsako nalogo, ki se začne z interakcijo s končnimi uporabniki ali pisanjem zgodb, da bi jo razvili, če je ponavljajoča, je treba upoštevati pri avtomatizaciji. Morali bi razumeti, da avtomatizacija ne pomeni, da mora biti v njej vključeno sofisticirano orodje / tehnologija. Za rešitev je lahko preprost makro VB ali program Java z Javascriptom.
Kje začeti?
Ne obstajajo nobene točke ali vodnik po korakih, ki pravi, kje začeti avtomatizacijo. Za začetek avtomatizacije za ekipo morate razmisliti in temeljito razmisliti o tem, katere vidike želite avtomatizirati, ali kaj je končni cilj avtomatizacije?
Začnete lahko z:
- Prepoznavanje ponavljajočih se nalog,
- Prepoznavanje bolečih področij uporabe
- Ugotavljanje preizkusnih izzivov
Če v projektu / ekipi turneje nimate avtomatizacije, se verjetno lahko odločite za večplastni pristop, pri katerem je mogoče najprej avtomatizirati enotne teste. To bi vam zagotovilo najvišjo donosnost naložbe.
Hkrati lahko preizkuševalci začnejo delati na dimni preizkusni obleki in nato na regresiji. Ko ekipa pridobi sposobnosti in se počuti udobno, postopoma preidite na avtomatizacijo drugih ponavljajočih se nalog.
Ne poskušajte neposredno kupiti novega orodja, ne da bi ocenili svoje potrebe. Kot sem že rekel, vam preprost program ali makro lahko reši namen avtomatizacije nekaterih ponavljajočih se nalog. Torej, preden se odločite za nakup orodja, naredite POC in ocenite, ali bi bilo to orodje učinkovito.
Prosimo, preberite te dokumente, kjer sem v naslednjih člankih navedel več podrobnosti o izbiri pravilnih testnih primerov za avtomatizacijo in nekaj vpogledov v oceno prizadevanj za avtomatizacijo. priročnik za izzive procesa avtomatizacije in testna ocena projekta avtomatizacije selena.
Ko je obseg avtomatizacije in orodja dokončan, je naslednje oblikovanje okvira.
Ne pozabite, da se v Agileu razvija okvir. Najprej NE ciljajte na oblikovanje celotnega ogrodja in nato na njegovo izvedbo. Načrtujte in izvedite MVP (minimalno izvedljiv izdelek), nato pa izboljšajte obstoječi okvir in vključite več funkcij. Prav tako morate uporabiti dobro prakso kodiranja in razvoja, če želite, da je vaš komplet za avtomatizacijo zanesljiv.
Nekaj najboljših praks
- Ne ciljajte na avtomatizacijo 100% naenkrat. Začnite z majhnimi. Ne pozabite, da gre za proces, ki se razvija
- Upoštevajte iste agilne prakse, ki jih upoštevate pri vsakem razvoju programske opreme. Avtomatizacija zahteva tudi pravilno načrtovanje in načrtovanje. Med avtomatizacijo ne bi želeli povečati svojih tehničnih dolgov
- Ustvarite zaostanek za avtomatizacijo preskusov. Ta zaostanek lahko sega od izvajanja nove funkcije do izboljšanja obstoječe funkcije. Postavite točke zgodb svojim identificiranim predmetom in jih ustrezno dodelite. Odnesite te zaostanke na svoj Sprint in jim sledite s pomočjo Kanban plošče
- Napišite kriterije sprejemljivosti za svoje zgodbe o avtomatizaciji. Ta merila sprejemljivosti lahko vključujejo:
- Integracija testne zbirke s CI
- Prenos obleke na centralizirano mesto
- Rezultate pošljite po e-pošti
- Zagotavljanje pošiljanja datotek dnevnika napak, kadar test ne uspe
- Vsa druga merila….
- Ne porabite časa za ocenjevanje novega orodja. Ustvarite lahko prednostni kontrolni seznam, kaj vse želite od novega orodja, in določite časovni načrt za njegovo oceno. Če rezultatov ne vidite v predvidenem času, pojdite na naslednjega
- Preudarno se odločite, kaj avtomatizirati. Vsak del avtomatizacije ni učinkovit in prinaša pozitiven donosnost naložbe. Ne avtomatizirajte samo zaradi avtomatizacije
- Izkoristite pravilno razvojno okolje. Kode ne hranite pri svojem lokalnem. Imejte skladišče, v katerem boste obdržali svojo kodo in si navadili, da jo ob koncu dneva preverite
- Na podoben način poskusite izvajati svoje avtomatizirane teste s centraliziranega mesta. Naj bo oseba neodvisna. Moral bi biti, da lahko kdor koli iz ekipe sproži skripte s svojega računalnika, rezultati pa se dobijo po e-pošti
Katera agilna načela je mogoče uporabiti za avtomatizacijo?
Nekaj zelo preprostih nasvetov:
- Naj bodo stvari preproste. Naredi, kar je treba. Velikokrat sem videl primere, v katerih izvajamo prevleko s sladkorjem, zaradi česar je avtomatizacija po nepotrebnem zapletena. Izogibajmo se stvarem, ki niso potrebne
- Če počnete preproste stvari, to ne pomeni, da boste počeli najlažje. To pomeni, da sprejmete otroške korake za dosego svojih ciljev avtomatizacije. Za avtomatizacijo lahko uporabite preprosto funkcijo, vendar se lahko zgodi, da se izvajanje avtomatizacije izkaže za zapleteno
- Uporabite pristop celotne ekipe . Verjamem, da so vsi preizkuševalci v gibčni ekipi. Ne omejujmo dela avtomatizacije niti pri preizkuševalcih niti le pri razvijalcih. Vsaka od disciplin mora stopiti drug v drugega, da doseže avtomatizacijo projekta. Ta pristop bi bil učinkovit tudi za reševanje tehničnih vprašanj, ki jih prinaša izvedba
- Okvir je razvit v storitvi Agile . Ne poskušajte zagotoviti preveč funkcij, ki bi lahko avtomatizacijo po nepotrebnem zapletele
- Vzemite si čas, da to storite pravilno. Vzemite si nekaj časa, da ga pravilno oblikujete, da se izognete tehničnim dolgovom
- Prejemajte pogoste povratne informacije
- Uporabite ustrezne standarde kodiranja in vadite. Načrtovanje naj bo preprosto, uporabljajte koncepte OOPS in poskušajte teste ohranjati neodvisno drug od drugega. Upoštevajte dejavnike, kot je 'vzdrževalnost' testne obleke
Ali med avtomatizacijo v Agile vidim kakšne izzive?
Avtomatizacija v gibčnem svetu resnično prihaja lastne izzive :
- Načrtovati moramo res dobro. Odločitev o ustreznem testnem paketu, orodju, okviru in pristopu potrebuje ustrezno strategijo. Vendar ne smemo pozabiti, da NE načrtujemo preveč. Upoštevajte MVP (minimalno izvedljiv izdelek)
- Kompromis glede kakovosti kode, ker želimo hitro doseči: Ne smemo pozabiti, da se tehnični dolgovi dobro držijo tudi pri avtomatizaciji
- Skupine večino časa ne upoštevajo 'pristopa celotne ekipe' in prepustijo vso odgovornost kodiranju in vzdrževanju avtomatizirane zbirke za preizkuševalce, kar povečuje odgovornost preizkuševalcev
- Avtomatizacija funkcionalnih testov je težja od avtomatizacije uporabniškega vmesnika
Med vsemi temi izzivi je najbolj kritičen izpopolnjevanje spretnosti preizkuševalcev.
Izvajanje in vzdrževanje avtomatizacije za ekipo je skoraj kot programska (razvojna) dejavnost, ki jo izvajajo programerji (razvijalci). Pomembna je ne samo izvedba, temveč tudi integracija avtomatizirane obleke v CI, ki zahteva, da se preizkuševalci naučijo in sprejmejo nova znanja ter se naučijo novih orodij in tehnologij.
Nekaj odprtokodnih orodij, ki se prilega Agile
- Selen WebDriver - Za uporabniški vmesnik
- Selen mreža - Za vzporedno izvedbo
- Kumara - za BDD
- JMeter - Za preizkušanje zmogljivosti
- MILO - Za spletne storitve
- WireMock - Preskušanje spletnih storitev, kadar spletna storitev ni na voljo.
- Epohe - za mobilne naprave
Naj zaključim s slavnimi testnimi kvadranti Agile:
Kvadrant 1 je preizkus enote in komponent, ki ga je mogoče avtomatizirati s pristopom TDD.
Kvadrant 2 govori o testiranju funkcionalnosti, kjer lahko uporabimo pristop BDD.
Kvadrant 3 je edini kvadrant, ki ima obseg ročnega preskušanja.
Kvadrant 4 v bistvu govori o testiranju, ki ga lahko dosežemo z nekaterimi orodji. To skrbi za obremenitvene teste, stresne teste, glasnostne teste in varnostne teste.
Zaključek
Poleg preskusov dima in regresije je veliko področja avtomatizacije. Zato se moramo osvoboditi koncepta omejevanja avtomatizacije le na te vrste testiranj, kar posledično pomeni, da nabor spretnosti preizkuševalca v storitvi Agile zahteva več kot le iskanje napak in napak.
c ++ širina prvo iskanje
Preizkuševalci morajo biti bolj sodelovalni in izostriti svoje znanje programiranja / avtomatizacije. Če je vedno več testov avtomatiziranih, bi preskuševalcem dalo več časa, da se vključijo v bolj dovršena in zahtevna opravila.
O avtorju: Ta članek je član ekipe STH Shilpa. V zadnjih 10+ letih dela na področju testiranja programske opreme na področjih, kot so internetno oglaševanje, investicijsko bančništvo in telekomunikacije.
Prosimo, delite svoje komentarje in misli spodaj.
Priporočeno branje
- Vadnica za AutoIt - Samodejni prenos, namestitev in osnovni skript AutoIt
- Ali preizkuševalci zaradi avtomatizacije izgubljajo oprijem zaradi preskušanja?
- Izzivi ročnega in avtomatiziranega preskušanja
- Najboljša orodja za testiranje programske opreme 2021 (QA Test Automation Tools)
- 10-stopenjski postopek samodejnega testiranja: Kako začeti samodejno testiranje v svoji organizaciji
- Ste strokovnjak za ročno ali avtomatizirano testiranje? Delo s krajšim delovnim časom za nas!
- 11 najboljših orodij za avtomatizacijo za testiranje aplikacij za Android (orodja za testiranje aplikacij za Android)
- 10 najboljših najboljših knjig za testiranje programske opreme (knjige za ročno in avtomatizacijsko testiranje)