Wat is Agile testen? Proces & Levenscyclus

Wat is Agile testen?

Agile testen is een testpraktijk die de regels en principes van agile softwareontwikkeling volgt. In tegenstelling tot de Waterval-methode kan Agile Testen beginnen bij de start van het project met een continue integratie tussen ontwikkeling en testen. De Agile Testmethodologie is niet sequentieel (in de zin dat deze pas na de codeerfase wordt uitgevoerd), maar continu.

Principes van Agile testen

Hier zijn de essentiële principes van Agile Testen:

  • In dit Agile testmodel is werkende software de belangrijkste maatstaf voor voortgang.
  • Het beste resultaat kan worden behaald door de zelforganiserende teams.
  • Het vroegtijdig en continu leveren van waardevolle software is onze hoogste prioriteit.
  • Softwareontwikkelaars moeten tijdens het hele project dagelijks bijeenkomen.
  • Verbetering van de wendbaarheid door voortdurende technische verbetering en een goed ontwerp.
  • Agile Testing zorgt ervoor dat het eindproduct voldoet aan de verwachtingen van het bedrijf door voortdurende feedback te geven.
  • Bij het Agile Testproces moeten we het testproces tijdens de implementatie uitvoeren, waardoor de ontwikkeltijd wordt verkort.
  • Het testproces in Agile moet werken op het consistente ontwikkelingstempo
  • Zorg voor regelmatige reflecties over hoe u effectiever kunt worden.
  • De beste architecturen, vereisten en ontwerpen komen voort uit zelforganiserende teams.
  • Elke keer dat het team bijeenkomt, wordt het gedrag beoordeeld en aangepast om effectiever te worden.
  • Een persoonlijk gesprek met het ontwikkelteam is de meest effectieve en efficiënte methode om informatie binnen het team over te brengen.

Agile Testing omvat verschillende principes die ons helpen de productiviteit van de Software te verhogen.

Agile testen levenscyclus

De Agile Testing-levenscyclus wordt voltooid in vijf verschillende fasen, zoals u kunt zien in de volgende afbeelding:

Agile testen levenscyclus

Hier zijn de teststappen voor het Agile-proces:

Fase 1: Effectbeoordeling: In deze eerste fase verzamelen we input van belanghebbenden en gebruikers. Deze fase wordt ook wel de feedbackfase genoemd, omdat deze de testingenieurs helpt bij het stellen van de doelstellingen voor de volgende levenscyclus.

Fase 2: Agile testplanning: Het is de tweede fase van de Agile-testlevenscyclus, waarin alle belanghebbenden samenkomen om het schema van het testproces en de op te leveren resultaten te plannen.

Fase 3: Vrijgavegereedheid: In deze fase beoordelen we de functies die zijn ontwikkeld/geïmplementeerd en klaar zijn om live te gaan of niet. In deze fase wordt ook besloten welke er terug moet naar de vorige ontwikkelingsfase.

Fase 4: Dagelijkse Scrums: Deze fase omvat elke stand-up ochtendvergadering om de status van het testen bij te praten en het doel voor de hele dag te bepalen.

Fase 5: Test behendigheid Revie: De laatste fase van de Agile levenscyclus is de Agility Revieuw Vergadering. Het omvat wekelijkse bijeenkomsten met belanghebbenden om de voortgang ten opzichte van de doelstellingen regelmatig te evalueren en te beoordelen.

Agile testplan

Agile testplan omvat soorten testen die in die iteratie worden uitgevoerd, zoals vereisten voor testgegevens, infrastructuur, testomgevingenen testresultaten. In tegenstelling tot het watervalmodel wordt bij een agile model voor elke release een testplan geschreven en bijgewerkt. Typische testplannen in agile omvatten

  • Testbereik
  • Nieuwe functionaliteiten die worden getest
  • Niveau of typen testen op basis van de complexiteit van de kenmerken
  • Belasting- en prestatietests
  • Overweging van de infrastructuur
  • Mitigatie- of risicoplan
  • resourcing
  • Resultaten en mijlpalen

Agile teststrategieën

De levenscyclus van Agile testen omvat vier fasen

Agile teststrategieën

Iteratie 0

Tijdens de eerste fase of iteratie 0 voert u initiële installatietaken uit. Het omvat het identificeren van mensen voor het testen, het installeren van testtools, het plannen van resources (bruikbaarheidstestlab), enz. De volgende stappen zijn ingesteld om te bereiken in Iteratie 0

  • Opstellen van een business case voor het project
  • Stel de randvoorwaarden en de projectomvang vast
  • Geef een overzicht van de belangrijkste vereisten en gebruiksscenario's die de ontwerpafwegingen zullen bepalen
  • Schets een of meer kandidaatarchitecturen
  • Het identificeren van het risico
  • Kostenraming en voorbereiding van een voorproject

Bouw iteraties

De tweede fase van de agile testmethodologie is Construction Iterations, het merendeel van de tests vindt plaats tijdens deze fase. Deze fase wordt waargenomen als een reeks iteraties om een ​​increment van de oplossing op te bouwen. Om dat te doen, moet binnen elke iteratie het team implementeert een hybride van praktijken van XP, Scrum, Agile-modellering en agile data enzovoort.

Bij constructie-iteratie volgt het agile team de geprioriteerde vereistenpraktijk: bij elke iteratie nemen ze de meest essentiële vereisten die overblijven van de stapel werkitems en implementeren deze.

Constructie-iteratie is onderverdeeld in twee: bevestigende tests en onderzoekstests. Bevestigende testconcentraten op het verifiëren dat het systeem voldoet aan de bedoelingen van de belanghebbenden, zoals tot nu toe aan het team beschreven, en door het team wordt uitgevoerd. Terwijl de onderzoekstests het probleem detecteren dat het bevestigingsteam heeft overgeslagen of genegeerd. Bij onderzoekend testen bepaalt de tester de potentiële problemen in de vorm van defectverhalen. Onderzoekstests behandelen veelvoorkomende problemen zoals integratietests, belasting-/stresstests en beveiligingstests.

Ook voor bevestigende tests zijn er twee aspecten ontwikkelaars testen en agile acceptatietesten. Beide zijn geautomatiseerd om continue regressietesten gedurende de hele levenscyclus mogelijk te maken. Bevestigend testen is het agile equivalent van testen volgens de specificatie.

Agile acceptatietesten is een combinatie van traditioneel functioneel testen en traditioneel acceptatietesten, waarbij het ontwikkelteam en de belanghebbenden het samen doen. Terwijl testen door ontwikkelaars een mix is ​​van traditionele unit-testen en traditionele service-integratietesten. Bij tests door ontwikkelaars worden zowel de applicatiecode als het databaseschema geverifieerd.

Laat het eindspel of de overgangsfase los

Het doel van “Release, End Game” is om uw systeem succesvol in productie te nemen. De activiteiten in deze fase zijn het trainen van eindgebruikers, ondersteunende mensen en operationele mensen. Ook omvat het marketing van de productrelease, back-up & herstel, finalisatie van systeem- en gebruikersdocumentatie.

De laatste testfase van de agile methodologie omvat volledige systeemtests en acceptatietests. Om uw laatste testfase zonder obstakels te voltooien, zou u het product grondiger moeten testen terwijl het zich in de bouwfase bevindt. Tijdens het eindspel zullen testers werken aan de defectverhalen.

productie

Na de releasefase gaat het product naar de productiefase.

De Agile Testkwadranten

De Agile Testkwadranten

De agile testkwadranten verdelen het hele proces in vier kwadranten en helpen begrijpen hoe agile testen wordt uitgevoerd.

Agile kwadrant I

De kwaliteit van de interne code staat centraal in dit kwadrant en bestaat uit testcases die technologiegedreven zijn en worden geïmplementeerd om het team te ondersteunen.

  • Eenheidstests
  • Componenttests

Agile Kwadrant II

Het bevat testcases die businessgedreven zijn en worden geïmplementeerd ter ondersteuning van het team. In dit kwadrant staan ​​de eisen centraal. Het soort test dat in deze fase wordt uitgevoerd is

  • Testen van voorbeelden van mogelijke scenario’s en workflows
  • Testen van gebruikerservaring zoals prototypes
  • Paar testen

Agile kwadrant III

Dit kwadrant geeft feedback aan kwadranten één en twee. De testgevallen kunnen als basis dienen voor het uitvoeren van automatiseringstesten. In dit kwadrant worden veel iteratiebeoordelingen uitgevoerd, waardoor het vertrouwen in het product wordt vergroot. Het soort testen dat in dit kwadrant wordt uitgevoerd is

  • Usability Testing
  • Verkennend testen
  • Koppel testen met klanten
  • Samen testen
  • Testen van gebruikersacceptatie

Agile kwadrant IV

Dit kwadrant concentreert zich op de niet-functionele eisen zoals performance, veiligheid, stabiliteit etc. Met behulp van dit kwadrant wordt de applicatie gemaakt om de niet-functionele kwaliteiten en verwachte waarde te leveren.

  • Niet-functionele tests zoals stress- en prestatietests
  • Beveiligingstesten met betrekking tot authenticatie en hacken
  • Testen van de infrastructuur
  • Testen van gegevensmigratie
  • Schaalbaarheidstesten
  • Load testen

QA-uitdagingen met agile softwareontwikkeling

  • De kans op fouten is groter in agile, omdat documentatie minder prioriteit krijgt en uiteindelijk meer druk op het QA-team legt
  • Nieuwe functies worden snel geïntroduceerd, waardoor de beschikbare tijd voor testteams wordt verkort om te bepalen of de nieuwste functies aan de eisen voldoen en of deze echt aan de eisen voldoen
  • Van testers wordt vaak verwacht dat ze de rol van semi-ontwikkelaar spelen
  • Testuitvoeringscycli zijn sterk gecomprimeerd
  • Zeer minder tijd om een ​​testplan op te stellen
  • Voor regressietesten hebben ze een minimale timing
  • Verandering in hun rol van poortwachter van kwaliteit naar partner in kwaliteit
  • Veranderingen en updates van vereisten zijn inherent aan een agile methode en vormen de grootste uitdaging voor QA

Risico van automatisering in agile processen

  • Geautomatiseerde gebruikersinterfaces bieden veel vertrouwen, maar zijn traag in de uitvoering, kwetsbaar in onderhoud en duur in de bouw. Automatisering verbetert de testproductiviteit mogelijk niet significant, tenzij de testers weten hoe ze moeten testen
  • Onbetrouwbare tests zijn een groot probleem bij geautomatiseerd testen. Het oplossen van falende tests en het oplossen van problemen die verband houden met broze tests moet een topprioriteit zijn om valse positieven te voorkomen
  • Als de geautomatiseerde tests handmatig worden gestart in plaats van via CI (Continuous Integration), bestaat het risico dat ze niet regelmatig worden uitgevoerd en er daarom voor kunnen zorgen dat tests mislukken
  • Geautomatiseerde tests zijn geen vervanging voor verkennende handmatige tests. Om de verwachte kwaliteit van het product te verkrijgen, is een combinatie van testtypen en -niveaus vereist
  • Veel commercieel beschikbare automatiseringstools bieden eenvoudige functies zoals het automatiseren van het vastleggen en opnieuw afspelen van handmatige testcases. Een dergelijke tool moedigt testen via de UI aan en leidt tot inherent broze en moeilijk te onderhouden tests. Bovendien creëert het opslaan van testcases buiten het versiebeheersysteem onnodige complexiteit
  • Om tijd te besparen, is het automatiseringstestplan vaak slecht gepland of ongepland, wat ertoe leidt dat de test mislukt
  • Procedures voor het opzetten en afbreken van een test worden meestal gemist tijdens testautomatisering, terwijl het uitvoeren van handmatige tests, procedures voor het opzetten en afbreken van een test naadloos lijken
  • Productiviteitsstatistieken, zoals een aantal testgevallen die per dag worden gemaakt of uitgevoerd, kunnen vreselijk misleidend zijn en kunnen leiden tot een grote investering in het uitvoeren van nutteloze tests
  • Leden van het agile automation team moeten effectieve consultants zijn: benaderbaar, coöperatief en vindingrijk, anders zal dit systeem snel falen
  • Automatisering kan testoplossingen voorstellen en leveren die te veel doorlopend onderhoud vergen in verhouding tot de geboden waarde
  • Geautomatiseerd testen mist mogelijk de expertise om effectieve oplossingen te bedenken en te leveren
  • Geautomatiseerd testen kan zo succesvol zijn dat er geen belangrijke problemen meer zijn om op te lossen, en zich dus tot onbelangrijke problemen wenden.

Conclusie

Agile-methodologie bij het testen van software houdt in dat er zo vroeg mogelijk in de software wordt getest levenscyclus van softwareontwikkeling. Het vereist een hoge klantbetrokkenheid en het testen van code zodra deze beschikbaar komt. De code moet stabiel genoeg zijn om systeemtests uit te voeren. Uitgebreide regressietests kunnen worden uitgevoerd om er zeker van te zijn dat de bugs worden opgelost en getest. Vooral de communicatie tussen de teams maakt het testen van agile modellen succesvol!!!