Agile Test Automation Framework

⚡ Smart opsummering

Agil testautomatisering anvender automatiserede kontroller i korte sprints, hvor kravene ændres ugentligt, og en suite bygget til en stabil vandfaldsudgivelse hurtigt bliver en vedligeholdelsesbyrde snarere end et sikkerhedsnet.

  • 🔘 Kernespænding: Automatisering belønner stabilitet, mens Agile belønner forandringer, så testudvælgelse betyder mere end dækning.
  • ☑️ Vandfaldskontrast: Traditionel automatisering forudsætter en stabil applikation, ekspertscriptere og høje opsætningsomkostninger.
  • Sprint virkelighed: En sprint på én til fire uger passer sjældent til at designe, kode og validere store scripts.
  • 🧪 Ikke udforskende: Automatiserede tests bekræfter kendt adfærd; de opdager ikke nye og innovative defekter.
  • 🛠️ Værktøjsvalg: Restriktive licenserede værktøjer kolliderer med det åbne samarbejde, som agile teams er afhængige af.
  • 📈 Bedste pasform: Gentagne, datatunge regressionskontroller med klare beståelses- eller fejlresultater automatiseres effektivt.

Agile Test Automation Framework

Agile automationstest

Agil automatiseringstest er praksissen med at bruge testautomatisering i en agil leveringsproces. Formålet er at gøre softwareudvikling mere effektiv og virkningsfuld, samtidig med at kvaliteten beskyttes og den tid og de ressourcer, en udgivelse forbruger, kontrolleres. Fordi tests skrives sideløbende med funktionsarbejdet, afhænger praksissen i høj grad af koordinering mellem udviklere og testere.

Lige siden den agile metodologi satte sig for at afskaffe vandfaldsmodellens besværlige realiteter, har dens indflydelse kunnet mærkes i automatiseringstest også. De to discipliner skal kombineres bevidst:

Agile plus automatisering kombineret til automatisering i Agile

Automatisering i Waterfall vs. automatisering i Agile

I en traditionel softwaretestningslivscyklus bliver automatiseringstest mulig, når applikationen er stabilt, og kravene er opfyldtDet antager en betydelig mængde tid, højt kvalificerede automatiseringsspecialister og en mærkbar opsætningsomkostning. Det grundlæggende formål er at reducere omkostningerne på lang sigt og at bekræfte, at der ikke er introduceret nye defekter omkring de eksisterende testcases.

Automatiseringstestning er ikke udforskende af natur, fordi dens primære rolle er at spare tid og reducere omkostninger. Den er ikke designet til at afdække nye og innovative defekter. Automatiseringstest bekræfter for det meste adfærd, der allerede eksisterer.

De to indstillinger stiller derfor meget forskellige krav til en testsuite:

faktor Automatisering i vandfald Automatisering i Agile
Ansøgningstilstand Stabil og godkendt før scripting starter Ændring af hvert sprint, ofte under scripting
Tid til rådighed En dedikeret automatiseringsfase Hvad end der passer ind i et sprint på en til fire uger
Hvem skriver manuskripter Et separat team af automatiseringsspecialister Leveringsteamet, testere og udviklere sammen
Primært mål Langsigtet omkostningsreduktion på tværs af en stor regressionssuite Hurtig feedback på den netop opbyggede forøgelse
Vedligeholdelsesrisiko Lav, fordi kravene udvikler sig langsomt Høj, fordi kravene ændrer sig konstant

Sådan automatiserer du med agil metode

Agile metodologi defineres i sig selv som en løsning på kedelig dokumentation, så nye ideer kan implementeres hurtigt, og folk kan interagere frit. Den favoriserer udforskende arbejde frem for papirarbejde:

Agile afviser kedelig dokumentation og favoriserer udforskende testning

Der er en reel modsigelse mellem de grundlæggende filosofier bag agil metodologi og automatiseringstest. Agile teams løser dette ved at indsnævre, hvad de automatiserer, i stedet for at automatisere mindre: tjek skrives i samme sprint som funktionen, skubbes ned til enheds- og API-niveau, hvor de er billigst at vedligeholde, og køres på hvert build.

Grundlæggende pointer for agil testautomatisering

Før du automatiserer sprintkapacitet, skal du overveje de punkter, der afgør, om et script overhovedet kan færdiggøres:

  • Design- og kodningstid: Hvert script skal designes, kodes og gennemgås ligesom produktionskode.
  • Validering mod testdata: Det færdige script skal valideres med de eksisterende testdata, før nogen kan stole på det.
  • Formålet med testen: Funktionelle tests og regressionstests har forskellige vedligeholdelsesomkostninger og forskellige holdbarheder.
  • Sprint længde: En sprint varer en til fire uger, oftest to, hvilket sjældent giver plads til en stor scriptingindsats.

En anden faktor er ændringer i krav. Agile er per definition en teknik til at reagere på kundedrevne forandringer, så det egner sig til hyppig justering under udviklingen.

Automatiseringstest er derimod mest nyttigt mod stabile krav. Det egner sig ikke godt til den konstante omskiftning i en agil metode, hvilket er grunden til, at valget af, hvad der skal automatiseres, vejer tungere end mængden af ​​automatisering.

Agile automatiseringsværktøjer

Udvælgelsen af ​​en relevant automatiseringsværktøj er en anden vigtig faktor ved at implementere automatiseringstest inden for en agil metode. Licenserede automatiseringsværktøjer pålægger for eksempel strenge sikkerhedsadgangskriterier for forskellige typer og niveauer af brugere, hvilket begrænser, hvem der kan få adgang til de ressourcer, der tilhører det pågældende testautomatiseringsframework.

Licenserede automatiseringsværktøjer låser ressourcer væk, mens agil metodologi forbliver mindre restriktiv

Agil metode lægger derimod vægt på åbent samarbejde og interaktion mellem teammedlemmer. Politikker med begrænset adgang modvirker denne sammenhæng og kan producere resultater, der hverken er nyttige eller befordrende for projektets succes.

Prioriteten er at levere automatiseringsscripts af høj kvalitet inden for den tid, en agil proces tillader. Vælg kandidattestcases omhyggeligt, så de resulterende scripts kan genbruges senere og stadig færdiggøres inden for den tildelte tid.

Selv i en agil setting skal nogle tests stadig dækkes – især regressionstests. I næste afsnit ses på de situationer, hvor automatiseringstest passer ind, og hvordan hver enkelt matcher agil testning.

Test af automatisering Concepts Når det anvendes i agile sammenhænge

Tabellen nedenfor tager de syv klassiske betingelser, der berettiger automatisering af en test, og giver det agile svar for hver af dem. Kun tre kan omsættes til en agil sprint, og alle tre er regressionsformede:

# Koncept for automatiseringstest Svar på agil metode
1 Testen skal gentages ofte. Det er her, konceptet med regressionstestning kommer ind i billedet.
2 Testens arbejdsgang og dens validering udvikler sig og ændrer sig langsomt over tid. Ikke nyttigt til agil testning, da agil testning betyder hyppige ændringer i krav.
3 Testen validerer en forretningsproces eller arbejdsgang i stedet for udseende og funktionalitet, farve eller tabellayout. Dette scenarie kan betragtes som involveret i manuel testning.
4 Testen producerer resultater til et tilsynsorgan, der kræver, at disse resultater registreres og arkiveres elektronisk som formelt bevis for overholdelse. Ikke egnet til agil metodologi, da et udtømmende dokumentationsniveau ikke er en del af agil metodologi.
5 Testen er meget repetitiv eller har mange trin, der skal udføres præcis ens hver gang, hvor manuel testtræthed skal undgås. Ikke egnet til agil metode.
6 Testens beståelses- eller fejlresultat er rimelig nemt at bestemme og registrere med det valgte automatiseringsværktøj. Velegnet til regressionstests under agil testning, der kræver repetitive og arbejdskrævende evner.
7 Testen skal drive en betydelig mængde data ind i applikationen. Kan indarbejdes som regressionstest.

Syv koncepter for automatiseringstest parret med matchende svar på den agile metode

Ofte Stillede Spørgsmål

En lagdelingsregel: mange hurtige enhedstests i bunden, færre integrations- og API-tests i midten og et tyndt lag af end-to-end UI-tests ovenpå. Det holder en sprint-stor suite hurtig og billig at vedligeholde.

De automatiserede tjek for en story skrives i samme sprint som storyen. Teams starter normalt i sprint et med enhedstests, fordi det at vente, indtil produktet er stabilt nok, opbygger en pukkel af manuel testgæld.

Sæt stadierne i rækkefølge, så de matcher pyramiden. Enhedstests køres først, fordi de er hurtigste, derefter integrations- og API-tests, og derefter det lille end-to-end-sæt. Fejl dukker først op på det billigste niveau. Guru99 dækker mekanikken i kontinuerlig integration.

Oftest fordi pyramiden er omvendt — store investeringer i langsomme, skrøbelige UI-tests og næsten ingen på enhedsniveau. Andre årsager er automatisering, der ikke er inkluderet i historieestimater, og suiter, som ingen har nok tillid til til at blokere en udgivelse.

Hele leveringsteamet. Udviklere ejer enhedstests, testere ejer API'en og end-to-end-lagene, og begge gennemgår hinandens arbejde. Et separat downstream-automatiseringsteam genintroducerer den hand-off-forsinkelse, som Scrum er beregnet til at fjerne.

Sæt den i karantæne fra den blokerende pipeline, generer en defekt, og ret eller slet den i sprintet. At efterlade en ustabil test i hovedkørslen lærer teamet at ignorere røde builds, hvilket koster mere end den manglende dækning.

Selvreparerende lokaliseringsværktøjer genidentificerer et flyttet element fra dets kontekst i stedet for at fejle, hvilket fjerner vedligeholdelsesudløste fejl. Modeller genererer også testdata, prioriterer hvilke tests der skal køres mod en diff, og grupperer duplikerede fejl, så et sprintteam kun triagerer én gang.

Den udarbejder dem hurtigt. GitHub Copilot scaffolds sideobjekter, fixtures og assertions fra eksisterende kode, hvilket fjerner meget af typing. RevSe hvert udkast, fordi en genereret test kan bekræfte den aktuelle adfærd i stedet for den krævede adfærd.

Opsummer dette indlæg med: