Agile Test Automation Framework

โšก Smart oppsummering

Smidig testautomatisering bruker automatiserte kontroller i korte sprinter, der kravene endres ukentlig, og en pakke bygget for en stabil fossefallsutgivelse raskt blir en vedlikeholdsbyrde snarere enn et sikkerhetsnett.

  • ๐Ÿ”˜ Kjernespenning: Automatisering belรธnner stabilitet, mens smidig belรธnner endrer seg, sรฅ testutvalg er viktigere enn dekning.
  • โ˜‘๏ธ Fosskontrast: Tradisjonell automatisering forutsetter en stabil applikasjon, ekspertskriptutviklere og hรธye oppsettskostnader.
  • โœ… Sprint virkelighet: En sprint pรฅ รฉn til fire uker passer sjelden til design, koding og validering av store skript.
  • ๐Ÿงช Ikke utforskende: Automatiserte tester bekrefter kjent atferd; de oppdager ikke nye og innovative feil.
  • ๐Ÿ› ๏ธ Verktรธyvalg: Restriktive lisensierte verktรธy kolliderer med det รฅpne samarbeidet agile team er avhengige av.
  • ๐Ÿ“ˆ Passer best: Gjentatte, datatunge regresjonskontroller med klare resultater for bestรฅtt eller ikke bestรฅtt automatiseres godt.

Agile Test Automation Framework

Agile automatiseringstesting

Smidig automatiseringstesting er praksisen med รฅ bruke testautomatisering i en smidig leveringsprosess. Formรฅlet er รฅ gjรธre programvareutvikling mer effektiv og produktiv, samtidig som kvaliteten beskyttes og tiden og ressursene en utgivelse bruker kontrolleres. Fordi tester skrives side om side med funksjonsarbeidet, er praksisen sterkt avhengig av koordinering mellom utviklere og testere.

Helt siden agil metodikk satte seg fore รฅ fjerne de mรธysommelige realitetene til fossefallmodellen, har dens innflytelse blitt fรธlt i automatiseringstesting ogsรฅ. De to disiplinene mรฅ kombineres bevisst:

Agile pluss automatisering kombineres til automatisering i Agile

Automatisering i Waterfall vs. Automatisering i Agile

I en tradisjonell programvaretestingssyklus blir automatiseringstesting mulig nรฅr applikasjonen er stabilt og kravene er oppfyltDet forutsetter en betydelig mengde tid, hรธyt kvalifiserte automatiseringsspesialister og en merkbar oppsettkostnad. Det grunnleggende formรฅlet er รฅ redusere kostnadene pรฅ lang sikt og รฅ bekrefte at ingen nye feil har blitt introdusert rundt de eksisterende testtilfellene.

Automatisert testing er ikke utforskende av natur, fordi hovedrollen er รฅ spare tid og redusere kostnader. Den er ikke designet for รฅ avdekke nye og innovative feil. Automatisert testing bekrefter stort sett atferd som allerede eksisterer.

De to innstillingene stiller derfor svรฆrt forskjellige krav til en testsuite:

Faktor Automatisering i fossefall Automatisering i Agile
Applikasjonsstatus Stabil og avregistrert fรธr skripting starter Endring av hver sprint, ofte under skripting
Tilgjengelig tid En dedikert automatiseringsfase Alt som passer inn i en sprint pรฅ รฉn til fire uker
Hvem manus Et eget team av automatiseringsspesialister Leveringsteamet, testere og utviklere sammen
Primรฆrt mรฅl Langsiktig kostnadsreduksjon pรฅ tvers av en stor regresjonspakke Rask tilbakemelding pรฅ รธkningen som nettopp er bygget
Vedlikeholdsrisiko Lav, fordi kravene beveger seg sakte Hรธy, fordi kravene endrer seg stadig

Hvordan automatisere i smidig metodikk

Smidig metodikk fjerner per definisjon kjedelig dokumentasjon, slik at nye ideer kan implementeres raskt og folk kan samhandle fritt. Den favoriserer utforskende arbeid fremfor papirarbeid:

Agile avviser kjedelig dokumentasjon og favoriserer utforskende testing

Det er en reell motsetning mellom de grunnleggende filosofiene bak agil metodikk og automatiseringstesting. Agile team lรธser dette ved รฅ begrense hva de automatiserer i stedet for รฅ automatisere mindre: sjekker skrives i samme sprint som funksjonen, skyves ned til enhets- og API-nivรฅ der de er billigst รฅ vedlikeholde, og kjรธres pรฅ hver build.

Grunnleggende poeng for smidig testautomatisering

Fรธr du automatiserer sprintkapasitet, bรธr du veie punktene som avgjรธr om et skript i det hele tatt kan fullfรธres:

  • Design- og kodingstid: Hvert skript mรฅ designes, kodes og gjennomgรฅs som produksjonskode.
  • Validering mot testdata: Det ferdige skriptet mรฅ valideres med eksisterende testdata fรธr noen kan stole pรฅ det.
  • Formรฅlet med testen: Funksjonstester og regresjonstester har forskjellige vedlikeholdskostnader og ulik holdbarhet.
  • Sprint lengde: En sprint varer รฉn til fire uker, vanligvis to, noe som sjelden gir rom for en stor skriptinnsats.

En annen faktor er endringer i krav. Smidig er per definisjon en teknikk for รฅ reagere pรฅ kundedrevet endring, sรฅ den egner seg til hyppige justeringer gjennom hele utviklingen.

Automatiseringstesting er derimot mest nyttig mot stabile krav. Den egner seg ikke godt til den konstante omveltningen av en agil metodikk, og det er derfor valget av hva som skal automatiseres veier tyngre enn mengden automatisert.

Agile automatiseringsverktรธy

Utvalget av en relevant automatiseringsverktรธy er en annen viktig faktor ved รฅ ta i bruk automatiseringstesting innenfor en smidig metodikk. Lisensierte automatiseringsverktรธy, for eksempel, stiller strenge sikkerhetstilgangskriterier for ulike typer og nivรฅer av brukere, noe som begrenser hvem som kan fรฅ tilgang til ressursene som tilhรธrer det aktuelle testautomatiseringsrammeverket.

Lisensierte automatiseringsverktรธy lรฅser ressurser unna, mens smidig metodikk forblir mindre restriktiv

Smidig metodikk vektlegger derimot รฅpent samarbeid og samhandling uten endepunkter mellom teammedlemmer. Restriktive tilgangsregler motvirker denne samhรธrigheten og kan gi resultater som verken er nyttige eller bidrar til prosjektets suksess.

Prioriteten er รฅ levere automatiseringsskript av hรธy kvalitet innenfor den tiden en agil prosess tillater. Velg kandidattesttilfeller nรธye, slik at de resulterende skriptene kan brukes om igjen senere og fortsatt fullfรธres innenfor den tildelte tiden.

Selv i en agil setting mรฅ noen tester fortsatt dekkes โ€“ spesielt regresjonstester. Neste avsnitt ser pรฅ situasjonene der automatiseringstesting passer inn og hvordan hver enkelt passer inn i agil testing.

Automatiseringstesting Concepts Nรฅr det brukes pรฅ agile

Tabellen nedenfor tar de syv klassiske betingelsene som rettferdiggjรธr automatisering av en test og gir det agile svaret for hver av dem. Bare tre oversettes tydelig til en agil sprint, og alle tre er regresjonsformede:

# Konsept for automatiseringstesting Svar pรฅ smidig metodologi
1 Testen mรฅ gjentas ofte. Det er her konseptet med regresjonstesting kommer inn i bildet.
2 Testens arbeidsflyt og validering utvikler seg og endres sakte over tid. Ikke nyttig for smidig testing, ettersom smidig testing betyr hyppige endringer i krav.
3 Testen validerer en forretningsprosess eller arbeidsflyt, snarere enn utseende og preg, farge eller tabelloppsett. Dette scenariet kan betraktes som involvert i manuell testing.
4 Testen produserer resultater for et tilsynsorgan som krever at disse resultatene registreres elektronisk og arkiveres som formelt bevis pรฅ samsvar. Ikke egnet for agil metodikk, ettersom et uttรธmmende dokumentasjonsnivรฅ ikke er en del av agil metodikk.
5 Testen er svรฆrt repetitiv eller har mange trinn som mรฅ utfรธres nรธyaktig likt hver gang, hvor manuell testtretthet mรฅ unngรฅs. Ikke egnet for agil metodikk.
6 Testens bestรฅtt- eller ikke-bestรฅtt-resultat er rimelig enkelt รฅ bestemme og registrere med det valgte automatiseringsverktรธyet. Passer for regresjonstester under smidig testing som krever repeterende og arbeidskrevende evner.
7 Testen mรฅ drive en betydelig mengde data inn i applikasjonen. Kan innlemmes som regresjonstesting.

Syv konsepter for automatiseringstesting sammen med samsvarende svar pรฅ den agile metodologien

Spรธrsmรฅl og svar

En lagdelingsregel: mange raske enhetstester i bunnen, fรฆrre integrasjons- og API-tester i midten, og et tynt lag med komplette UI-tester pรฅ toppen. Det holder en sprintstor pakke rask og billig รฅ vedlikeholde.

De automatiserte kontrollene for en story skrives i samme sprint som storyen. Team starter vanligvis i sprint รฉn med enhetstester, fordi det รฅ vente til produktet er stabilt nok bygger opp en etterslep av manuell testgjeld.

Rekkefรธr trinnene slik at de samsvarer med pyramiden. Enhetstester kjรธres fรธrst fordi de er raskest, deretter integrasjons- og API-tester, og deretter det lille ende-til-ende-settet. Feil dukker fรธrst opp pรฅ det billigste nivรฅet. Guru99 dekker mekanikken i kontinuerlig integrering.

Vanligvis fordi pyramiden er invertert โ€“ store investeringer i trege, sprรธ UI-tester og nesten ingen pรฅ enhetsnivรฅ. Andre รฅrsaker er automatisering utelatt fra historieestimater og programserier som ingen stoler nok pรฅ til รฅ blokkere en utgivelse.

Hele leveranseteamet. Utviklere eier enhetstester, testere eier API-et og ende-til-ende-lagene, og begge gjennomgรฅr hverandres arbeid. Et separat nedstrรธms automatiseringsteam gjeninnfรธrer overleveringsforsinkelsen som Scrum er ment รฅ fjerne.

Sett den i karantene fra blokkeringsprosessen, hev en defekt, og fiks eller slett den i lรธpet av sprinten. ร… la en ustabil test stรฅ i hovedkjรธringen lรฆrer teamet รฅ ignorere rรธde bygg, noe som koster mer enn den manglende dekningen.

Selvreparerende lokaliseringsverktรธy identifiserer et flyttet element fra konteksten i stedet for รฅ feile, noe som kutter ned vedlikeholdsutlรธste feil. Modeller genererer ogsรฅ testdata, prioriterer hvilke tester som skal kjรธres mot en diff, og grupperer dupliserte feil slik at et sprintteam prioriterer รฉn gang.

Den utarbeider dem raskt. GitHub Copilot stillassideobjekter, inventar og pรฅstander fra eksisterende kode, noe som fjerner mye av typing. RevSe hvert utkast, fordi en generert test kan hevde gjeldende oppfรธrsel i stedet for den nรธdvendige oppfรธrselen.

Oppsummer dette innlegget med: