Agile testen: methodologie en levenscyclus

โšก Slimme samenvatting

Agile testen past de principes van agile softwareontwikkeling toe op kwaliteitsborging. Testen begint op dag รฉรฉn, loopt continu parallel aan de ontwikkeling en is georganiseerd aan de hand van levenscyclusfasen, kwadranten en strategieรซn die de feedbackloops kort houden en de levering betrouwbaar maken.

  • ๐Ÿ” Continu testen: Integreer testen in elke iteratie, zodat defecten worden opgespoord zodra de code wordt geschreven, en niet pas aan het einde van een release.
  • ๐Ÿงญ Volg de levenscyclus: Doorloop de fasen Impact Assessment, Planning, Release Readiness, Daily Scrums en Agility. Revkijk om op รฉรฉn lijn te blijven met het team.
  • ๐Ÿ—‚๏ธ Gebruik de vier kwadranten: Omvat unit- en componenttests, bedrijfsgerichte scenario's, verkennende feedback en niet-functionele controles.
  • ๐Ÿ“œ Plan elke iteratie: Werk het agile testplan in elke sprint bij met een overzicht van de scope, de soorten testen, de risico's en de deliverables.
  • ๐Ÿค– Automatiseer met zorg: Combineer AI-ondersteunde regressietests met verkennende en bevestigende tests om de testproductiviteit hoog te houden zonder kwetsbare scripts.

Agile testen levenscyclus

Wat is Agile testen?

Agile testen Agile testen is een testmethode die de regels en principes van agile softwareontwikkeling volgt. In tegenstelling tot de watervalmethode begint agile testen aan het begin van het project en loopt het continu parallel aan de ontwikkeling. Het is niet sequentieel โ€“ het wordt niet alleen na de codeerfase uitgevoerd โ€“ maar is verweven in elke iteratie, zodat het team direct feedback krijgt zodra er defecten verschijnen.

Principes van Agile testen

De essentiรซle principes van agile testen zijn:

  • Werkende software is de belangrijkste maatstaf voor vooruitgang.
  • De beste resultaten worden behaald door zelforganiserende teams.
  • Het vroegtijdig en continu leveren van waardevolle software heeft de hoogste prioriteit.
  • Ontwikkelaars en testers werken dagelijks samen gedurende het hele project.
  • Wendbaarheid wordt vergroot door continue technische verbetering en een goed ontwerp.
  • Continue feedback zorgt ervoor dat het eindproduct aan de zakelijke verwachtingen voldoet.
  • Testen vindt plaats tijdens de implementatie, wat de totale ontwikkeltijd verkort.
  • Het testproces wordt in een constant en duurzaam tempo uitgevoerd.
  • Teams nemen regelmatig pauzes om te reflecteren en bij te sturen, zodat ze effectiever kunnen worden.
  • De beste architecturen, eisen en ontwerpen ontstaan โ€‹โ€‹in zelforganiserende teams.
  • Een persoonlijk gesprek is de meest effectieve en efficiรซnte vorm van communicatie binnen een team.

Door deze principes te combineren, verhogen ze de productiviteit van software en verkorten ze de weg van idee naar werkende functionaliteit.

Agile testen levenscyclus

De agile testlevenscyclus bestaat uit vijf fasen, zoals hieronder weergegeven.

Agile testen levenscyclus

De fasen zijn:

  • Fase 1: Impactbeoordeling. Verzamel input van belanghebbenden en gebruikers. Dit wordt ook wel de feedbackfase genoemd, omdat het testengineers helpt om doelstellingen te formuleren voor de volgende levenscyclus.
  • Fase 2: Agile testplanning. Alle belanghebbenden komen samen om het testschema, de reikwijdte en de resultaten te plannen.
  • Fase 3: Klaar voor de release. RevBekijk de geรฏmplementeerde functies en bepaal welke klaar zijn voor gebruik en welke nog verder ontwikkeld moeten worden.
  • Fase 4: Dagelijkse Scrums. De ochtendvergadering waarin het team de teststatus bespreekt en doelen voor de dag vaststelt.
  • Fase 5: Test behendigheid Review. Wekelijkse bijeenkomsten met belanghebbenden om de voortgang ten opzichte van de doelstellingen te evalueren en de strategie aan te passen.

Agile testplan

An agile testplan beschrijft de soorten tests die in een iteratie worden uitgevoerd, de benodigde data en infrastructuur, de testomgevingenen de testresultaten. In tegenstelling tot het watervalmodel wordt een agile testplan voor elke release geschreven en bijgewerkt. Een typisch plan omvat:

  • Testbereik.
  • Nieuwe functionaliteit wordt getest.
  • Testniveau of -type gebaseerd op de complexiteit van de functionaliteit.
  • Belasting- en prestatietests.
  • Infrastructuuroverwegingen.
  • Risico- en beheersplan.
  • Middelenbeheer.
  • Leveringen en mijlpalen.

Agile teststrategieรซn

De agile testlevenscyclus omvat vier strategische fasen.

Agile teststrategieรซn

Iteratie 0

Tijdens de eerste fase voer je de eerste voorbereidingstaken uit. Deze omvatten het identificeren van mensen voor de tests, het installeren van testtools en het inplannen van resources zoals een usability-testlab. De doelen van Iteratie 0 zijn:

  • Stel een businesscase op voor het project.
  • Definieer de randvoorwaarden en de projectomvang.
  • Beschrijf de belangrijkste vereisten en gebruiksscenario's die bepalend zullen zijn voor de afwegingen in het ontwerp.
  • Schets een of meer mogelijke architecturen.
  • Identificeer risico's.
  • Schat de kosten in en stel een voorlopig projectplan op.

Bouw iteraties

De tweede fase van agile testen is de constructie-iteratie, waarin het grootste deel van de testen plaatsvindt. Deze fase bestaat uit een reeks iteraties die de oplossing stapsgewijs opbouwen. Binnen elke iteratie past het team een โ€‹โ€‹combinatie toe van werkwijzen uit XP, Scrum, agile modellering en agile data.

Teams volgen de werkwijze van geprioriteerde vereisten: bij elke iteratie halen ze de belangrijkste items uit de backlog en implementeren deze. Bouwiteraties worden opgesplitst in twee complementaire testvarianten:

  • Bevestigende tests Verifieert of het systeem voldoet aan de intentie van de belanghebbenden. Deze controle wordt door het team zelf uitgevoerd.
  • Onderzoekende tests Het speurt naar problemen die mogelijk over het hoofd zijn gezien tijdens bevestigende tests. Testers melden potentiรซle problemen als defectverhalen. Onderzoekend testen omvat integratie-, belasting- en stresstests, en beveiligingstests.

Bevestigend onderzoek kent nog twee andere aspecten โ€” ontwikkelaars testen en agile acceptatietesten โ€” en beide zijn geautomatiseerd om continue regressietests gedurende de hele levenscyclus mogelijk te maken. Bevestigende tests zijn het agile-equivalent van testen volgens de specificaties.

Agile acceptatietesten combineren traditionele functionele en acceptatietesten, omdat het ontwikkelteam en de belanghebbenden deze samen uitvoeren. Ontwikkelaarstesten combineren traditionele unit-testen met service-integratietesten en verifiรซren zowel de applicatiecode als het databaseschema.

Release, eindspel of overgangsfase

Het doel van de releasefase is om het systeem succesvol in productie te nemen. Activiteiten omvatten het trainen van eindgebruikers, ondersteunend personeel en operationele teams; het promoten van de productrelease; het uitvoeren van back-up- en hersteloefeningen; en het finaliseren van de systeem- en gebruikersdocumentatie.

De laatste agile testfase omvat volledige systeemtesten en acceptatietesten. Om de cyclus zonder problemen af โ€‹โ€‹te ronden, moet het product tijdens de verschillende ontwikkelingsiteraties grondig worden getest. In de eindfase richten testers zich op het oplossen van defecten die eerder in de cyclus zijn geconstateerd.

Productie

Na de releasefase wordt het product naar de productieomgeving overgeplaatst, waar het gedrag in de praktijk wordt gemonitord. Eventuele problemen worden meegenomen in de volgende planningscyclus.

De Agile Testkwadranten

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

De Agile Testkwadranten

Agile kwadrant I

Kwadrant I richt zich op de interne codekwaliteit met technologiegedreven tests die het team ondersteunen:

  • Unit tests.
  • Componenttests.

Agile Kwadrant II

Kwadrant II bevat bedrijfsgerichte tests die het team ondersteunen en zich richten op de vereisten. Typische werkzaamheden in dit kwadrant zijn onder andere:

  • Testvoorbeelden van mogelijke scenario's en workflows.
  • Het testen van gebruikservaringsartefacten zoals prototypes.
  • Paartesten.

Agile kwadrant III

Kwadrant III levert feedback aan Kwadrant I en II. De testgevallen in dit kwadrant vormen vaak de basis voor automatisering, en meerdere iteratiebeoordelingen vergroten het vertrouwen in het product. Typische werkzaamheden omvatten:

  • Bruikbaarheidstesten.
  • Verkennende tests.
  • Testen in combinatie met klanten.
  • Gezamenlijk testen.
  • Gebruikersacceptatietesten.

Agile kwadrant IV

Kwadrant IV richt zich op niet-functionele eisen zoals prestaties, beveiliging en stabiliteit. Dit kwadrant zorgt ervoor dat de applicatie de verwachte niet-functionele eigenschappen levert. Typische werkzaamheden omvatten:

  • Niet-functionele tests, zoals stress- en prestatietests.
  • Beveiligingstests die authenticatie en inbraakpogingen omvatten.
  • Infrastructuur testen.
  • Testen van datamigratie.
  • Schaalbaarheidstesten.
  • Belastingstest.

QA-uitdagingen bij agile softwareontwikkeling

Agile levering biedt concrete voordelen, maar brengt ook nieuwe uitdagingen met zich mee voor QA-teams:

  • Documentatie krijgt een lagere prioriteit, waardoor het risico op fouten toeneemt en de druk op het QA-team komt te liggen.
  • Nieuwe functies verschijnen snel, waardoor testers minder tijd hebben om te controleren of de nieuwste functies voldoen aan de eisen en de bedrijfsdoelstellingen.
  • Testers vervullen vaak een rol die deels overeenkomt met die van een ontwikkelaar.
  • De testuitvoeringscycli zijn sterk verkort.
  • Er is beperkte tijd beschikbaar om het testplan op te stellen.
  • De budgetten voor regressietesten worden krap.
  • Testers evolueren van bewakers van kwaliteit naar partners in kwaliteit.
  • Frequente wijzigingen in de eisen zijn inherent aan agile, wat een van de grootste uitdagingen voor QA is.

Risico's van automatisering in het agile proces

Automatisering is essentieel in agile, maar brengt ook risico's met zich mee die teams actief moeten beheersen:

  • Geautomatiseerde UI-tests bieden een hoge mate van betrouwbaarheid, maar zijn traag, kwetsbaar en duur in onderhoud. Productiviteitswinst treedt pas op wanneer testers weten hoe ze goede tests moeten ontwerpen.
  • Onbetrouwbare tests zijn een groot probleem. Het oplossen van problemen met gebrekkige tests en valse positieve resultaten moet een topprioriteit blijven.
  • Geautomatiseerde tests die handmatig worden uitgevoerd in plaats van via CI, lopen het risico ongemerkt af te wijken en verouderde resultaten te produceren.
  • Automatisering vervangt geen verkennend handmatig testen. Een mix van testtypen en -niveaus is nodig om de gewenste kwaliteit te bereiken.
  • Capture-and-replay-tools stimuleren UI-gestuurde scripts die kwetsbaar en moeilijk te onderhouden zijn. Tests die buiten versiebeheer worden opgeslagen, voegen onnodige complexiteit toe.
  • Slecht geplande automatisering, bedoeld om "tijd te besparen", mislukt vaak volledig.
  • Testopzet- en afbouwprocedures worden bij automatisering gemakkelijk over het hoofd gezien, terwijl ze bij handmatig testen vanzelfsprekend zijn.
  • Productiviteitsstatistieken zoals 'aantal testgevallen per dag' kunnen teams ertoe verleiden nutteloze tests uit te voeren.
  • Het automatiseringsteam moet bestaan โ€‹โ€‹uit effectieve adviseurs โ€” benaderbaar, coรถperatief en vindingrijk โ€” anders zal het project mislukken.
  • Oplossingen die veel en doorlopend onderhoud vergen, kunnen de waarde die ze opleveren tenietdoen.
  • Geautomatiseerde tests beschikken mogelijk niet over de expertise die nodig is om effectieve oplossingen te leveren.
  • Succesvolle automatisering kan op een gegeven moment geen belangrijke problemen meer hebben om op te lossen en zich richten op minder waardevol werk.

Beste werkwijzen voor effectief agile testen

De volgende werkwijzen zorgen ervoor dat agile testen snel, betrouwbaar en waardevol blijft voor het team:

  • Shift links: Begin met testen tijdens de fase waarin de vereisten worden vastgesteld, niet aan het einde van de iteratie.
  • Werk samen met ontwikkelaars: Bespreek de acceptatiecriteria samen, zodat defecten worden voorkomen door ze weg te ontwerpen in plaats van ze erin te programmeren.
  • Laagautomatisering: Bouw een gezonde piramide van unit-, service- en UI-tests.
  • Zorg ervoor dat de tests onafhankelijk van elkaar blijven: Isoleer elke test zodat fouten naar รฉรฉn enkele hoofdoorzaak wijzen.
  • Track onbetrouwbare tests: Isoleer en repareer gebrekkige tests onmiddellijk om te voorkomen dat het vertrouwen in de suite afneemt.
  • Gebruik AI-ondersteunde analyses: Laat de tools na elke samenvoeging de getroffen tests markeren, fouten groeperen en stabiele locators voorstellen.

Veelgestelde vragen

Bij de watervalmethode wordt pas getest nadat de code is voltooid, terwijl agile testen continu parallel aan de ontwikkeling plaatsvindt. Agile verkort de feedbackloops, integreert testers in het team en levert werkende software in kleine, frequente stappen.

Kwaliteit is een gedeelde verantwoordelijkheid. Toegewijde testers ontwerpen en voeren tests uit, ontwikkelaars automatiseren unit- en servicetests en producteigenaren valideren de acceptatiecriteria. Het hele team is verantwoordelijk voor het resultaat van elke release.

Regressietesten beschermen bestaande functionaliteiten naarmate er in elke iteratie nieuwe worden toegevoegd. Geautomatiseerde regressietests worden bij elke commit uitgevoerd, terwijl verkennende regressietests scenario's dekken die de scripts niet gemakkelijk kunnen vastleggen.

Acceptatiecriteria worden tijdens het beheren van de backlog opgesteld en omgezet in geautomatiseerde acceptatietests. Stakeholders en testers voeren deze tests samen uit aan het einde van elke iteratie om te bevestigen dat het user story daadwerkelijk is afgerond.

Nuttige meetwaarden zijn onder andere het percentage gemiste defecten, het slagingspercentage van geautomatiseerde tests, het percentage onbetrouwbare tests, de gemiddelde detectietijd en de doorlooptijd per user story. Vermijd ijdelheidsstatistieken zoals het absolute aantal testgevallen.

Agile teams testen doorgaans binnen sprints van รฉรฉn tot vier weken, met continue testen als onderdeel van de dagelijkse workflow. Geautomatiseerde regressietests moeten binnen enkele minuten voltooid zijn, zodat feedback de ontwikkelaars bereikt terwijl de context nog vers is.

AI-tools selecteren de getroffen tests na een codewijziging, herstellen defecte locators, groeperen vergelijkbare fouten en suggereren ontbrekende scenario's. Ze verkorten de doorlooptijd van regressietests en helpen testers zich te concentreren op taken die veel beoordelingsvermogen vereisen.

Ja. AI-assistenten zetten gebruikersverhalen en acceptatiecriteria om in concepttestcases, compleet met voorbeeldgegevens en randgevallen. Menselijke beoordelaars bevestigen nog steeds de bedrijfsrisico's en prioriteren de scenario's voor uitvoering.

Vat dit bericht samen met: