Als u ontwikkelaar of tester bent, is het woord ‘agile’ u vast niet onbekend. Maar als u nieuw bent in dit vakgebied en zich afvraagt wat agile testen precies inhoudt en wat het in de praktijk betekent, dan zullen na het lezen van dit artikel al uw vragen beantwoord zijn.
Wat is Agile testen?
Agile testen is een onlosmakelijk onderdeel van de agile softwareontwikkelingsmethodologie. In agile vindt testen continu plaats naast de ontwikkeling zelf. Het is een gezamenlijke inspanning van ontwikkelaars, testers, projectmanagers en klanten om het product af te stemmen op de behoeften van de klant.
In tegenstelling tot de watervalmethodologie, waarbij testen een aparte fase is die plaatsvindt na de ontwikkelingsfase, impliceert de agile testmethodologie dat testen aan het begin van het project begint en hand in hand gaat met de ontwikkeling, wat zorgt voor continue feedback in het ontwikkelingsproces.
De testers vormen niet langer een aparte eenheid. Ze maken deel uit van het agile softwareontwikkelteam en werken gedurende de gehele agile softwareontwikkelingslevenscyclus nauw samen met ontwikkelaars, wat leidt tot:
- Tijds- en geldbesparing
- Minder documentatie
- Regelmatige feedback
- Vroegtijdige identificatie van problemen
Dus, wat zijn de redenen om voor een agile proces te kiezen of niet? De beste manier om dit te beantwoorden is een lijst met voor- en nadelen.
Voordelen van de Agile methodologie
- Flexibiliteit
- Productiviteit
- Transparantie
- Hoge kwaliteit
- Regelmatige aanpassing aan veranderende omstandigheden
- Grotere klantbetrokkenheid en tevredenheid
Nadelen van de Agile methodologie
- Niet geschikt voor elk project
- Uitdagend te implementeren wanneer klanten rigide processen of methoden volgen
- Uitdagend om de benodigde inspanning aan het begin van de softwareontwikkelingslevenscyclus in te schatten
- Het gebrek aan nadruk op noodzakelijk ontwerp en documentatie
- Alleen senior ontwikkelaars kunnen het soort beslissingen nemen dat nodig is tijdens het ontwikkelproces
Als u ervoor kiest om agile testen toe te passen, moet u ook de belangrijkste principes ervan kennen.
Agile testprincipes
- Testen is geen aparte fase, maar een continu proces
- Testen verbetert het product door constante feedback
- Testen kan niet alleen testers, maar ook ontwikkelaars omvatten
- Testen gebeurt volgens een herbruikbare checklist, geen gedetailleerde documentatie
- Testen vindt plaats in zelforganiserende teams
Dit alles om:
- Wijzigende vereisten te omarmen, zelfs laat in het testproces
- Een hoogwaardig softwareproduct te leveren binnen een korte tijdspanne
- De klant tevreden te stellen met snelle levering van een hoogwaardig product
Maar voordat u zich aan een van deze principes bindt, moet u het agile testframework kiezen dat het beste past binnen uw processen en testmethoden. De meest gebruikte zijn Scrum en Kanban.
Scrum en Kanban: wat is het verschil?
Scrum is een aanpak waarbij een universeel team van specialisten aan elk project werkt. Het omvat ook een producteigenaar en een scrum master:
- De producteigenaar verbindt het team met de klant en bewaakt de ontwikkeling van het project.
- De scrum master helpt de producteigenaar bij het organiseren van het bedrijfsproces: hij organiseert algemene vergaderingen, lost dagelijkse problemen op, motiveert het team en bewaakt de naleving van de scrum-aanpak.
De scrum-aanpak verdeelt de workflow in gelijke sprints. Dit zijn periodes van een week tot een maand, afhankelijk van het project en het team. Na afloop van de sprint worden voltooide taken naar de productie doorgestuurd, andere — overgedragen naar een volgende sprint.
De taken die tijdens de sprint worden uitgevoerd, veranderen meestal niet: wat aan het begin van de sprint voor implementatie was vastgesteld, moet aan het einde van de sprint tegen elke prijs worden voltooid. Sprints zijn heel gemakkelijk te vergelijken, wat het efficiënt beheren van werk mogelijk maakt.
De Kanban-aanpak is gericht op het balanceren van het werk van diverse specialisten binnen het team en het vermijden van de situatie waarin ontwerpers dagenlang werken en ontwikkelaars klagen over een gebrek aan nieuwe taken.
Het hele team is één eenheid in Kanban. Geen producteigenaar of scrum-master hier. Het bedrijfsproces is niet verdeeld in universele sprints, maar in fasen van het uitvoeren van specifieke taken:
- Te doen
- Ontwikkeling
- Testen
- Implementatie
De belangrijkste indicator van effectiviteit in Kanban is de gemiddelde tijd die nodig is om een taak te voltooien. De taak verloopt snel — het team werkt productief en harmonieus. De taak sleept zich voort — u moet nadenken over in welke fase en waarom er vertragingen waren en wiens werk geoptimaliseerd moet worden.
Kanban biedt u meer flexibiliteit, wat betekent dat de frequentie van wijzigende prioriteiten. Als de ontwikkelaar de voltooide taak uploadt en feedback ontvangt dat deze niet werkt zoals bedoeld, krijgt hij nieuwe vereisten om aan te werken. Deze nieuwe taken krijgen hogere prioriteit en de programmeur voert ze eerst uit.
Om een sprint in Scrum te vormen, moeten de taken worden geëvalueerd in story points of uren. Zonder een dergelijke beoordeling zal het onmogelijk zijn om een sprint te vormen, aangezien u moet weten of u de taken binnen een bepaalde tijd zult kunnen voltooien. Nadat die tijd is verstreken, krijgt u de statistieken over het aantal uren of story points dat het team in een sprint kon volbrengen. Dit maakt het meten van de teamprestaties per sprint mogelijk. Met deze kennis kan de Scrum manager voorspellen waar het team zich in de volgende sprint zal bevinden.
Kanban vereist geen evaluatie. Het concept van “teamsnelheid” bestaat niet: alleen de gemiddelde tijd die nodig is om een werkunit te voltooien, wordt in aanmerking genomen.
Dus, in Scrum is het doel om de sprint te voltooien, in Kanban — de taak.
Om alles geordend en onder controle te houden, gebruiken zowel Scrum als Kanban borden die de taken visualiseren en de fase waarin ze zich bevinden.
De taken op de borden zijn verdeeld volgens het principe:
- Te doen
- In uitvoering
- Klaar
Het enige verschil is dat het Scrum-bord taken verdeelt over sprints, en alle taken die deel uitmaken van een bepaalde sprint moeten tegen het einde van die sprint “Klaar” zijn.
Zullen we nu samenvatten?
Om u te laten zien hoe dit in de praktijk werkt, bekijken we enkele voorbeelden.
Agile testen bij QAwerk
Als software testbedrijf kunnen we onze eigen voorbeelden geven van hoe de agile methodologie invloed heeft op de workflow van een specifiek project.
Unfold
Unfold is een iOS- en Android-app voor het maken van stories met foto’s en video’s met behulp van verschillende sjablonen.
Bij dit project vindt de ontwikkeling aan de clientzijde plaats. Het werk is zo gestructureerd dat er voortdurend updates van zowel iOS als Android uitkomen: kleine bewerkingen, ontwerpwijzigingen, het toevoegen van abonnementsfunctionaliteit, het toevoegen van nieuwe collecties sjablonen die vaak in samenwerking met sterren (Miley Cyrus), films (The Sun is Also a Star), grote evenementen (Billboard Music Awards), kledingmerken (Tommy Hilfiger) worden toegevoegd.
De klant deelt de ontwikkelplannen en documentatie niet met ons. Maar dit is wat het agile testproces ons in staat stelt te doen bij het werken aan dit project:
- We zijn altijd klaar om de nieuwe versie te testen op allerlei apparaten die we hebben
- We communiceren met ontwikkelaars, voeren frequente regressietesten uit van bugs die in de huidige versie worden opgelost, totdat deze is verbeterd tot het niveau dat deze kan worden uitgebracht
- We werken ook met gebruikersrecensies in app stores (Google, Apple) en verzamelen gebruikersfeedback om bugs te reproduceren, rapporten te starten en te communiceren met ontwikkelaars
- Ooit werkten we als een team in het weekend om te helpen bij het testen van een grote update – het toevoegen van abonnementen aan de app
Conclusie
Ongeacht welke agile testmethodologie wordt gebruikt, beide maken een vroege detectie van bugs mogelijk, wat leidt tot lagere kosten voor het oplossen ervan. Het is ook een klantgerichte aanpak die zorgt voor een hoogwaardig product in een relatief korte tijd.

