Agile Test Automation Framework

โšก ร„lykรคs yhteenveto

Ketterรค testiautomaatio soveltaa automatisoituja tarkistuksia lyhyiden sprinttien sisรคllรค, joissa vaatimukset muuttuvat viikoittain ja vakaalle vesiputousjulkaisulle rakennettu ohjelmistopaketti muuttuu nopeasti yllรคpitotaakaksi turvaverkon sijaan.

  • ๐Ÿ”˜ Ytimen jรคnnitys: Automaatio palkitsee vakautta, kun taas ketterรคt menetelmรคt palkitsevat muutosta, joten testien valinta on tรคrkeรคmpรครค kuin niiden kattavuus.
  • โ˜‘๏ธ Vesiputouksen kontrasti: Perinteinen automaatio edellyttรครค vakaata sovellusta, asiantuntevia skriptien kirjoittajia ja korkeita kรคyttรถรถnottokustannuksia.
  • โœ… Sprint todellisuus: Yhdestรค neljรครคn viikkoon kestรคvรค sprintti harvoin sopii suurten skriptien suunnitteluun, koodaamiseen ja validointiin.
  • ๐Ÿงช Ei tutkiva: Automatisoidut testit vahvistavat tunnettua toimintaa; ne eivรคt lรถydรค uusia ja innovatiivisia vikoja.
  • ๐Ÿ› ๏ธ Tyรถkalun valinta: Rajoitetut lisensoidut tyรถkalut ovat ristiriidassa ketterรคn tiimin kรคyttรคmรคn avoimen yhteistyรถn kanssa.
  • ๐Ÿ“ˆ Parhaiten sopiva: Toistuvat, dataa sisรคltรคvรคt regressiotarkistukset, joissa on selkeรคt hyvรคksymis- tai hylkรคystulokset, automatisoituvat hyvin.

Agile Test Automation Framework

Ketterรค automaatiotestaus

Ketterรค automaatiotestaus on testiautomaation hyรถdyntรคmistรค ketterรคssรค toimitusprosessissa. Sen tarkoituksena on tehostaa ohjelmistokehitystรค samalla, kun se suojaa laatua ja hallitsee julkaisun kuluttamaa aikaa ja resursseja. Koska testit kirjoitetaan ominaisuuksien kehittรคmisen rinnalla, kรคytรคntรถ on erittรคin riippuvainen kehittรคjien ja testaajien vรคlisestรค koordinoinnista.

Siitรค lรคhtien, kun ketterรค menetelmรค pyrki pรครคsemรครคn eroon vesiputousmallin tyรถlรครคstรค realiteeteista, sen vaikutus on tuntunut automaatiotestaus myรถs. Nรคmรค kaksi tieteenalaa on yhdistettรคvรค tarkoituksella:

Ketterรค ja automaatio yhdistyvรคt automaatioksi ketterรคssรค menetelmรคssรค

Automaatio vesiputousmenetelmรคssรค vs. automaatio ketterรคssรค menetelmรคssรค

Perinteisessรค ohjelmistotestauksen elinkaaressa automaatiotestaus on mahdollista, kun sovellus on vakaa ja vaatimukset on tรคytettySe olettaa a huomattavan mรครคrรคn aikaa, erittรคin ammattitaitoisia automaatioasiantuntijoita ja huomattavat kรคyttรถรถnottokustannukset. Perustavoitteena on vรคhentรครค kustannuksia pitkรคllรค aikavรคlillรค ja varmistaa, ettei olemassa olevien testitapausten ympรคrille ole syntynyt uusia vikoja.

Automaatiotestaus ei ole luonteeltaan tutkivaa, koska sen pรครคtehtรคvรคnรค on sรครคstรครค aikaa ja vรคhentรครค kustannuksia. Sitรค ei ole suunniteltu uusien ja innovatiivisten vikojen esiin nostamiseen. Automaatiotestaus enimmรคkseen vahvistaa jo olemassa olevaa kรคyttรคytymistรค.

Nรคmรค kaksi ympรคristรถรค asettavat siis testijoukolle hyvin erilaiset vaatimukset:

Tekijรค Automaatio vesiputousmallissa Automaatio ketterรคssรค tekniikassa
Sovelluksen tila Vakaa ja uloskirjattu ennen komentosarjojen aloittamista Muutetaan jokaista sprinttiรค, usein jo skriptauksen aikana
Kรคytettรคvissรค oleva aika Omistettu automaatiovaihe Mikรค tahansa mahtuu yhdenโ€“neljรคn viikon sprinttiin
Kuka-skriptit Erillinen automaatioasiantuntijoiden tiimi Toimitustiimi, testaajat ja kehittรคjรคt yhdessรค
Pรครคtavoite Pitkรคn aikavรคlin kustannusten alentaminen suuressa regressiopaketissa Nopea palaute juuri rakennetusta lisรคyksestรค
Huoltoriski Matala, koska vaatimukset etenevรคt hitaasti Korkea, koska vaatimukset muuttuvat jatkuvasti

Kuinka automatisoida ketterรคssรค menetelmรคssรค

Mรครคritelmรคnsรค mukaan ketterรค menetelmรค poistaa tylsรคn dokumentoinnin, jotta uudet ideat voidaan toteuttaa nopeasti ja ihmiset voivat olla vuorovaikutuksessa vapaasti. Se suosii tutkivaa tyรถtรค paperityรถn sijaan:

Ketterรค menetelmรค hylkรครค tylsรคn dokumentoinnin ja suosii tutkivaa testausta

Ketterien metodologian ja automaatiotestauksen perusfilosofioiden vรคlillรค on todellinen ristiriita. Ketterรคt tiimit ratkaisevat tรคmรคn rajaamalla automatisoitavaa sen sijaan, ettรค automatisoisivat vรคhemmรคn: tarkistukset kirjoitetaan samassa sprintissรค kuin ominaisuus, siirretรครคn alas yksikkรถ- ja API-tasolle, jossa niiden yllรคpito on halvinta, ja suoritetaan jokaisella koontiversiolla.

Ketterรคn testiautomaation peruspisteet

Ennen kuin varaat sprinttikapasiteettia automatisointiin, punnitse tekijรถitรค, jotka ratkaisevat, voidaanko skripti ylipรครคtรครคn viimeistellรค:

  • Suunnittelu- ja koodausaika: Jokainen skripti on suunniteltava, koodattava ja tarkistettava kuten tuotantokoodi.
  • Validointi testidataa vasten: Valmis skripti on validoitava olemassa olevien testitietojen avulla, ennen kuin kukaan voi luottaa siihen.
  • Testin tarkoitus: Funktionaalisilla ja regressiotesteillรค on erilaiset yllรคpitokustannukset ja erilaiset sรคilyvyysajat.
  • Sprint pituus: Sprintti kestรครค yhdestรค neljรครคn viikkoa, useimmiten kaksi, mikรค harvoin jรคttรครค tilaa suurelle skriptaustyรถlle.

Toinen tekijรค on vaatimusten muutos. Ketterรค menetelmรค on mรครคritelmรคn mukaan tekniikka, jolla reagoidaan asiakaslรคhtรถisiin muutoksiin, joten se soveltuu usein tehtรคviin muutoksiin kehityksen aikana.

Automaatiotestaus on sitรค vastoin hyรถdyllisintรค vakaita vaatimuksia vasten. Se ei sovellu hyvin ketterรคn menetelmรคn jatkuvaan vaihtuvuuteen, minkรค vuoksi automatisoitavien asioiden valinnalla on enemmรคn painoarvoa kuin automatisoidun mรครคrรคn valinnalla.

Ketterรคt automaatiotyรถkalut

Asiaankuuluvan valinta automaatiotyรถkalu on toinen tรคrkeรค tekijรค automaatiotestauksen kรคyttรถรถnotossa ketterรคn menetelmรคn puitteissa. Lisensoidut automaatiotyรถkalut esimerkiksi asettavat tiukat kรคyttรถoikeuskriteerit erityyppisille ja -tasoisille kรคyttรคjille, mikรค rajoittaa sitรค, kuka voi kรคyttรครค kyseiseen testausautomaatiokehykseen kuuluvia resursseja.

Lisensoidut automaatiotyรถkalut sitovat resursseja, kun taas ketterรคt menetelmรคt pysyvรคt vรคhemmรคn rajoittavina

Ketterรค menetelmรค sitรค vastoin korostaa avointa yhteistyรถtรค ja avointa vuorovaikutusta tiimin jรคsenten vรคlillรค. Rajoitetut kรคyttรถoikeuskรคytรคnnรถt toimivat tรคtรค yhteenkuuluvuutta vastaan โ€‹โ€‹ja voivat tuottaa tuloksia, jotka eivรคt ole hyรถdyllisiรค eivรคtkรค edistรค projektin onnistumista.

Ensisijaisena tavoitteena on toimittaa laadukkaita automaatioskriptejรค ketterรคn prosessin sallimassa ajassa. Valitse ehdokastestitapaukset huolellisesti, jotta tuloksena olevia skriptejรค voidaan kรคyttรครค uudelleen myรถhemmin ja silti saada valmiiksi annetussa ajassa.

Jopa ketterรคssรค ympรคristรถssรค jotkin testit on silti kรคsiteltรคvรค โ€“ erityisesti regressiotestit. Seuraavassa osiossa tarkastellaan tilanteita, joihin automaatiotestaus sopii, ja miten kukin niistรค liittyy ketterรครคn testaukseen.

Automaatiotestaus Concepts Kun sitรค sovelletaan ketterรครคn tekniikkaan

Alla oleva taulukko ottaa esiin seitsemรคn klassista ehtoa, jotka oikeuttavat testin automatisoinnin, ja antaa ketterรคn vastauksen kuhunkin. Vain kolme nรคistรค ehtoista soveltuu siististi ketterรครคn sprinttiin, ja kaikki kolme ovat regressiomuotoisia:

# Automaatiotestauksen konsepti Ketterรคn metodologian vastaus
1 Testi on toistettava usein. Tรคssรค kohtaa regressiotestauksen kรคsite tulee kuvaan.
2 Testin tyรถnkulku ja sen validointi kehittyvรคt ja muuttuvat hitaasti ajan myรถtรค. Ei hyรถdyllinen ketterรคssรค testauksessa, koska ketterรค testaus tarkoittaa vaatimusten usein tapahtuvia muutoksia.
3 Testi validoi liiketoimintaprosessin tai tyรถnkulun pikemminkin kuin ulkoasun, vรคrin tai taulukon asettelun. Tรคtรค skenaariota voidaan pitรครค manuaaliseen testaukseen liittyvรคnรค.
4 Testi tuottaa tuloksia sรครคntelyelimelle, joka vaatii tulosten sรคhkรถistรค tallentamista ja arkistointia viralliseksi todisteeksi vaatimustenmukaisuudesta. Ei sovellu ketterรครคn metodologiaan, koska kattava dokumentaatio ei kuulu ketterรครคn metodologiaan.
5 Testi on hyvin toistuva tai siinรค on useita vaiheita, jotka on suoritettava tรคsmรคlleen samalla tavalla joka kerta, jolloin manuaalisen testaajan vรคsymistรค on vรคltettรคvรค. Ei sovellu ketterรครคn metodologiaan.
6 Testin onnistumis- tai hylkรคystulos on kohtuullisen helppo mรครคrittรครค ja tallentaa valitulla automaatiotyรถkalulla. Sopii ketterรคn testauksen aikana tehtรคviin regressiotesteihin, jotka vaativat toistuvia ja tyรถlรคitรค taitoja.
7 Testin on syรถtettรคvรค sovellukseen merkittรคvรค mรครคrรค dataa. Voidaan sisรคllyttรครค regressiotestaukseen.

Seitsemรคn automaatiotestauksen kรคsitettรค yhdistettynรค vastaaviin ketterรคn metodologian vastauksiin

UKK

Kerrostuksen sรครคntรถ: useita nopeita yksikkรถtestejรค pohjalla, vรคhemmรคn integraatio- ja API-testejรค keskellรค ja ohut kerros kokonaisvaltaisia โ€‹โ€‹kรคyttรถliittymรคtestejรค pรครคllรค. Se pitรครค sprintin kokoisen ohjelmistopaketin nopeana ja edullisena yllรคpitรครค.

Tarinan automaattiset tarkistukset kirjoitetaan samaan sprinttiin kuin itse tarina. Tiimit aloittavat yleensรค ensimmรคisessรค sprintissรค yksikkรถtesteillรค, koska tuotteen riittรคvรคn vakauden odottaminen kerryttรครค manuaalisen testauksen velkaa.

Jรคrjestรค vaiheet pyramidin mukaan. Yksikkรถtestit suoritetaan ensin, koska ne ovat nopeimpia, sitten integraatio- ja API-testit ja lopuksi pieni kokonaisvaltainen joukko. Virheet ilmenevรคt ensin halvimmalla tasolla. Guru99 kattaa mekaniikan jatkuva integrointi.

Yleisimmin syynรค on pyramidin kรครคnne โ€“ paljon investointeja hitaisiin ja hauraisiin kรคyttรถliittymรคtesteihin, mutta yksikkรถtasolla ei juurikaan panosteta. Muita syitรค ovat automaation jรคttรคminen pois tarina-arvioista ja ohjelmistopaketit, joihin kukaan ei luota tarpeeksi estรครคkseen julkaisua.

Koko toimitustiimi. Kehittรคjรคt omistavat yksikkรถtestit, testaajat omistavat API:n ja kokonaisvaltaiset tasot, ja molemmat tarkastelevat toistensa tyรถtรค. Erillinen automaatiotiimi ottaa uudelleen kรคyttรถรถn luovutusviiveen, jonka Scrumin on tarkoitus poistaa.

Eristรค se estรคvรคstรค prosessista, nosta vikailmoitus ja korjaa tai poista se sprintin aikana. Epรคvarman testin jรคttรคminen pรครคsuoritukseen opettaa tiimille, ettรค on vaikeampaa jรคttรครค huomiotta puuttuvat buildit, jotka maksavat enemmรคn kuin puuttuva kattavuus.

Itsekorjaavat paikantimet tunnistavat siirretyn elementin uudelleen kontekstistaan โ€‹โ€‹sen sijaan, ettรค se epรคonnistuisi, mikรค vรคhentรครค yllรคpidon laukaisemia virheitรค. Mallit myรถs luovat testidataa, priorisoivat vertailuarvoa vasten suoritettavat testit ja ryhmittelevรคt kaksoiskappalevirheet, jotta sprinttitiimi voi triage-testata vain kerran.

Se laatii ne nopeasti. GitHub Copilot scaffold-sivuobjektit, kiinnikkeet ja vรคitteet olemassa olevasta koodista, mikรค poistaa suuren osan ty:stรคping. RevTarkastele jokaista luonnosta, koska luotu testi voi vรคittรครค nykyisen toiminnan vaaditun toiminnan sijaan.

Tiivistรค tรคmรค viesti seuraavasti: