Vad är agilt test? Process & livscykel
Vad är agilt test?
Agil testning är en testpraxis som följer reglerna och principerna för agil mjukvaruutveckling. Till skillnad från Waterfall-metoden kan Agile Testing påbörjas i början av projektet med kontinuerlig integration mellan utveckling och testning. Agile testmetod är inte sekventiell (i den meningen att den exekveras först efter kodningsfasen) utan kontinuerlig.
Principer för agilt testning
Här är de grundläggande principerna för agilt testning:
- I denna agila testmodell är fungerande mjukvara det primära måttet på framsteg.
- Det bästa resultatet kan uppnås av de självorganiserande teamen.
- Att leverera värdefull programvara tidigt och kontinuerligt är vår högsta prioritet.
- Mjukvaruutvecklare måste agera för att samlas dagligen under hela projektet.
- Förbättra smidigheten genom ständiga tekniska förbättringar och bra design.
- Agil testning säkerställer att den slutliga produkten uppfyller företagets förväntningar genom att ge kontinuerlig feedback.
- I Agile Test-processen behöver vi utföra testprocessen under implementeringen, vilket minskar utvecklingstiden.
- Testprocessen i Agile bör fungera i konsekvent utvecklingstakt
- Ge regelbundna reflektioner om hur du kan bli mer effektiv.
- De bästa arkitekturerna, kraven och designen kommer från självorganiserande team.
- Varje gång teamet träffas granskar och justerar det sitt beteende för att bli mer effektivt.
- Konversation ansikte mot ansikte med utvecklingsteamet är den mest effektiva och effektiva metoden för att förmedla information inom teamet.
Agil testning inkluderar olika principer som hjälper oss att öka programvarans produktivitet.
Agil testning livscykel
Den agila testlivscykeln genomförs i fem olika faser, som vi kan se i följande bild:
Här är stegen för agila processtestning:
Fas 1: Konsekvensbedömning: I denna inledande fas samlar vi in synpunkter från intressenter och användare. Denna fas kallas också för återkopplingsfasen, eftersom den hjälper testingenjörerna att sätta upp målen för nästa livscykel.
Fas 2: Agile testplanering: Det är den andra fasen av livscykeln för agila tester, där alla intressenter samlas för att planera schemat för testprocessen och leveranserna.
Fas 3: Releaseberedskap: I det här skedet granskar vi vilka funktioner som har utvecklats/implementerats är redo att gå live eller inte. I detta skede avgörs också vilken som behöver gå tillbaka till den tidigare utvecklingsfasen.
Fas 4: Dagliga Scrums: Det här steget inkluderar varje standup-morgonmöte för att komma ikapp om teststatus och sätta målet för hela dagen.
Fas 5: Testa Agility Revvisa: Den sista fasen av den agila livscykeln är agility Review möte. Det innebär veckomöten med intressenter för att regelbundet utvärdera och bedöma framsteg mot mål.
Agil testplan
Agil testplan inkluderar typer av testning gjorda i den iterationen som testdatakrav, infrastruktur, testmiljöeroch testresultat. Till skillnad från vattenfallsmodellen, i en smidig modell, skrivs och uppdateras en testplan för varje utgåva. Typiska testplaner i agilt inkluderar
- Testningsomfång
- Nya funktioner som testas
- Nivå eller typer av testning baserat på funktionernas komplexitet
- Belastnings- och prestandatestning
- Infrastrukturövervägande
- Begränsnings- eller riskplan
- Resourcing
- Leveranser och milstolpar
Agila teststrategier
Livscykeln för agila testning sträcker sig över fyra steg
iteration 0
Under det första steget eller iterationen 0 utför du initiala installationsuppgifter. Det inkluderar att identifiera personer för testning, installera testverktyg, schemalägga resurser (användbarhetstestlabb), etc. Följande steg är inställda för att uppnå i Iteration 0
- Upprätta ett business case för projektet
- Fastställ randvillkoren och projektets omfattning
- Beskriv de viktigaste kraven och användningsfallen som kommer att driva designavvägningarna
- Beskriv en eller flera kandidatarkitekturer
- Identifiera risken
- Kostnadsuppskattning och förbereda ett förprojekt
Konstruktionsupprepningar
Den andra fasen av agila testmetoder är konstruktionsiterationer, majoriteten av testerna sker under denna fas. Denna fas observeras som en uppsättning iterationer för att bygga ett steg av lösningen. För att göra det, inom varje iteration, teamet genomför en hybrid av praxis från XP, Scrum, Agile modellering och agila data och så vidare.
I konstruktionsiteration följer det agila teamet den prioriterade kravpraxisen: Med varje iteration tar de de mest väsentliga kraven som återstår från arbetsobjektstacken och implementerar dem.
Konstruktionsiteration delas in i två, bekräftande testning och undersökande testning. Bekräftande testkoncentrat på att verifiera att systemet uppfyller intressenternas avsikter som beskrivits för teamet hittills och utförs av teamet. Medan det undersökande testet upptäcker problemet som konfirmationsteamet har hoppat över eller ignorerat. I Undersökande testning bestämmer testaren de potentiella problemen i form av defekthistorier. Undersökande tester behandlar vanliga problem som integrationstestning, belastnings-/stresstestning och säkerhetstestning.
Återigen för bekräftande testning finns det två aspekter utvecklartestning och agil acceptanstestning. Båda två är automatiserade för att möjliggöra kontinuerlig regressionstestning under hela livscykeln. Bekräftande testning är den smidiga motsvarigheten till testning enligt specifikationen.
Agilt acceptanstestning är en kombination av traditionell funktionstestning och traditionell acceptanstestning som utvecklingsteam, och intressenter gör det tillsammans. Medan utvecklartestning är en blandning av traditionell enhetstestning och traditionell tjänstintegreringstestning. Utvecklartestning verifierar både applikationskoden och databasschemat.
Släpp slutspel eller övergångsfas
Målet med "Release, End Game" är att distribuera ditt system framgångsrikt i produktion. Aktiviteterna inkluderar i denna fas utbildning av slutanvändare, stödpersoner och operativa personer. Det inkluderar också marknadsföring av produktreleasen, säkerhetskopiering och återställning, slutförande av system- och användardokumentation.
Det sista steget för agila metodtestning inkluderar fullständig systemtestning och acceptanstestning. För att avsluta ditt sista teststeg utan några hinder, bör du behöva testa produkten mer rigoröst medan den är i konstruktionsupprepningar. Under slutspelet kommer testare att arbeta med dess defekthistorier.
Produktion
Efter releasestadiet kommer produkten att flyttas till produktionsstadiet.
De agila testkvadranterna
De agila testkvadranterna separerar hela processen i fyra kvadranter och hjälper till att förstå hur agilt testning utförs.
Agile kvadrant I
Den interna kodkvaliteten är huvudfokus i denna kvadrant, och den består av testfall som är teknikdrivna och implementerade för att stödja teamet, det inkluderar
- Enhetstester
- Komponenttester
Agile Quadrant II
Den innehåller testfall som är affärsdrivna och implementerade för att stödja teamet. Denna kvadrant fokuserar på kraven. Den typ av test som utförs i denna fas är
- Testning av exempel på möjliga scenarier och arbetsflöden
- Testning av användarupplevelse såsom prototyper
- Partestning
Agile kvadrant III
Denna kvadrant ger feedback till kvadranter ett och två. Testfallen kan användas som grund för att utföra automationstestning. I denna kvadrant genomförs många omgångar av iterationsgranskningar som bygger förtroende för produkten. Den typ av testning som görs i denna kvadrant är
- Användbarhetstestning
- Utforskande testning
- Paratestning med kunder
- Samarbetstestning
- Testning av användaracceptans
Agile kvadrant IV
Denna kvadrant koncentrerar sig på de icke-funktionella kraven såsom prestanda, säkerhet, stabilitet etc. Med hjälp av denna kvadrant görs applikationen för att leverera de icke-funktionella egenskaperna och förväntade värdet.
- Icke-funktionella tester som stress- och prestationstester
- Säkerhetstestning med avseende på autentisering och hacking
- Infrastrukturtestning
- Datamigreringstestning
- Test av skalbarhet
- Lasttestning
QA-utmaningar med agil mjukvaruutveckling
- Risken för fel är mer flexibel, eftersom dokumentation ges mindre prioritet, vilket till slut sätter mer press på QA-teamet
- Nya funktioner introduceras snabbt, vilket minskar den tillgängliga tiden för testteam att identifiera om de senaste funktionerna uppfyller kraven och om de verkligen stämmer överens med affärsdräkterna
- Testare måste ofta spela en roll som semi-utvecklare
- Testkörningscykler är mycket komprimerade
- Mycket mindre tid att förbereda testplan
- För regressionstestning kommer de att ha minimal timing
- Förändra sin roll från att vara en portvakt för kvalitet till att vara en partner inom Kvalitet
- Kravändringar och uppdateringar är inneboende i en agil metod, som blir den största utmaningen för QA
Risk för automatisering i agila processer
- Automatiserat användargränssnitt ger en hög nivå av förtroende, men de är långsamma att köra, ömtåliga att underhålla och dyra att bygga. Automatisering kanske inte förbättrar testproduktiviteten avsevärt om inte testarna vet hur man testar
- Otillförlitliga tester är ett stort problem vid automatiserade tester. Att åtgärda misslyckade tester och lösa problem relaterade till spröda tester bör ha högsta prioritet för att undvika falska positiva resultat
- Om det automatiserade testet initieras manuellt snarare än genom CI (Continuous Integration) finns det en risk att de inte körs regelbundet och därför kan orsaka misslyckade tester
- Automatiserade tester är inte en ersättning för en utforskande manuell testning. För att få den förväntade kvaliteten på produkten krävs en blandning av testtyper och nivåer
- Många kommersiellt tillgängliga automatiseringsverktyg tillhandahåller enkla funktioner som att automatisera infångning och uppspelning av manuella testfall. Ett sådant verktyg uppmuntrar testning genom användargränssnittet och leder till i sig spröda och svåra att underhålla tester. Att lagra testfall utanför versionskontrollsystemet skapar också onödig komplexitet
- För att spara tid är automationstestplanen ofta dåligt planerad eller oplanerad vilket resulterar i att testet misslyckas
- En testinställnings- och rivningsprocedurer missas vanligtvis under testautomatisering, medan en manuell testning, en testinställnings- och rivningsprocedure låter sömlöst
- Produktivitetsmått som ett antal testfall som skapas eller körs per dag kan vara fruktansvärt missvisande och kan leda till att man gör en stor investering i att köra värdelösa tester
- Medlemmar i det agila automationsteamet måste vara effektiva konsulter: lättillgängliga, samarbetsvilliga och påhittiga, annars kommer det här systemet snabbt att misslyckas
- Automation kan föreslå och leverera testlösningar som kräver för mycket löpande underhåll i förhållande till det värde som tillhandahålls
- Automatiserad testning kan sakna expertis för att utforma och leverera effektiva lösningar
- Automatiserade tester kan vara så framgångsrika att de får slut på viktiga problem att lösa och därmed vänder sig till oviktiga problem.
Slutsats
Agil metodik i mjukvarutestning innebär att testa så tidigt som möjligt i livscykel för mjukvaruutveckling. Det kräver högt kundengagemang och testkod så fort den blir tillgänglig. Koden bör vara tillräckligt stabil för att ta den till systemtestning. Omfattande regressionstestning kan göras för att säkerställa att buggarna är fixade och testade. Kommunikation mellan teamen gör framförallt agil modelltestning till framgång!!!