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: