Agile Testing is het testen van software dat de principes van agile softwareontwikkeling volgt. Scrum en Agile zijn iteratieve ontwikkelingsmethodologieën, waarbij vereisten evolueren door samenwerking tussen de klant en zelfsturende teams. Binnen Agile worden ontwikkelingen dus afstemt op de behoeften van de klant.
Dagelijkse meetings zullen eveneens helpen om de problemen ruim van tevoren te onderkennen.
Principes van Agile testing
Testen is dus GEEN Fase: Een Agile team test voortdurend en voortdurend testen is de enige manier om continue voortgang te garanderen.
Testen verbetert het eindproduct: Bij conventionele ontwikkelmethoden (Waterval) is testen een kwaliteitstoets. Bij Agile testing leveren we echter voortdurend feedback op de applicatie en kijken we of deze voldoet aan de business requirements.
Iedereen test: In conventionele projecten testen alleen de testers, in agile teams test iedereen de applicatie, dus inclusief de ontwikkelaars.
Verkorting de reactiesnelheid van de feedback: In waterval projecten leren de gebruikers de applicatie pas tijdens het acceptatietesten kennen. Bij een Agile aanpak zijn ze echter bij iedere iteratie betrokken en geven continue feedback. Dit verlaagt de feedbackresponstijd en tevens de kosten die nodig zijn om de fouten te herstellen.
Clean Code: Fouten worden binnen de iteratie gevonden en hersteld waardoor de code schoon gehouden wordt.
Verminderen testdocumentatie: Agile testers gebruiken herbruikbare checklist in plaats van zeer uitgebreide documentatie. De focus ligt op de essentie van de applicatie in plaats van het testen van alle mogelijke testcases.
Testdriven: Bij waterval methoden voeren we de testen uit na oplevering van de applicatie terwijl we bij Agile testing de testen uitvoeren tijdens de oplevering.
De rol van tester in Scrum
Scrum is een populaire invulling van Agile, beide noemt men vaak in een adem.
De rol van tester bestaat niet in het Scrum proces. Meestal voert de ontwikkelaar het testen zelf uit tijdens de Unit Test. De Product Owner van de applicatie is tijdens iedere sprint ook vaak betrokken bij het testproces. Afhankelijk van de aard en complexiteit van het project beschikken sommige Scrum-projecten over speciale testteams.
De vraag is, welke testactiviteiten we bij Scrum uitvoeren?
Agile-testing-activiteiten in Scrum
De volgende testactiviteiten voeren we in de verschillende stadia van Scrum uit:
Sprint Planning
Bij de Sprint planning moet de tester een User Story kiezen uit de product test backlog. D.w.z. een User Story die klaar staat om getest te worden.
Als tester moet hij of zij aangeven hoeveel uur er naar schatting nodig is om iedere geselecteerde User Story te testen.
Als een tester moet hij weten wat de sprintdoelen zijn.
De tester draagt bij aan het afhandelen van gestelde prioriteiten.
Tijdens de Sprint
Ontwikkelaars geven ondersteuning bij het testen van units.
Test de User Story als hij af is. De test voeren we uit in een Living Lab waar zowel de tester als de ontwikkelaar nauw samenwerken. Fouten melden we aan in het defectenmanagementtool dat dagelijks wordt bijgehouden. Tijdens scrummeetings kunnen we fouten overdragen voor nadere analyse. Programma modules testen we opnieuw zodra ze zijn opgelost en klaar staan voor het testen.
De tester woont alle dagelijkse meetings bij.
Een tester kan ieder backlog-item dat hij niet in de huidige sprint kan afronden meenemen naar de volgende sprint.
De tester is verantwoordelijk voor het ontwikkelen van automatische testscripts.
Een tester beoordeelt de testresultaten en stuurt testrapporten naar de belanghebbenden.
Het uitvoeren van Niet-functionele tests op goedgekeurde User Stories.
Definieert met de product owner de acceptatiecriteria voor de acceptatietest.
Aan het einde van de sprint voert de tester in sommige gevallen ook de acceptatietest uit en stelt de volledigheid van de test voor de huidige sprint vast.
Sprint Retrospectief
De tester geeft t.b.v. de Retrospective aan wat er fout ging en wat goed ging tijdens de sprint.
De Scrum statistieken bieden transparantie en zichtbaarheid aan alle betrokkenen van het project. De statistieken die we rapporteren stellen het team in staat om de voortgang te analyseren en tevens de strategie voor het verbeteren van de applicatie te bepalen. Er zijn twee statistieken die we vaak gebruiken om te rapporteren.
Burn down-Chart
Iedere dag schat Scrum Master het resterende werk voor de sprint. Dit is niets anders dan de Burn Down Chart. Deze werkt de Scrum Master dus dagelijks bij.
Een burndown-chart geeft een overzicht van de voortgang van het project, deze grafiek bevat de volgende informatie:
De totale hoeveelheid werk in het project die moet worden voltooid.
De hoeveelheid werk die is voltooid tijdens iedere sprint.
Velocity Chart
De Velocity Chart voorspelt het tempo van het team in een sprint. Het is een staafdiagram die aangeeft hoe de output van het team in de loop van de tijd wijzigt.
Bij Agile testing moeten de testactiviteiten een onderdeel zijn van deze grafieken omdat het testen een onderdeel is van de sprint. Om goed in te kunnen zoomen op de werkelijke status van de voortgang is het aan te bevelen om de testactiviteiten apart zichtbaar te maken in de grafieken.
De rol van tester bestaat niet in het Scrum proces. Meestal wordt het testen uitgevoerd door de ontwikkelaar tijdens de Unit Test. De Product Owner van de applicatie is tijdens iedere sprint ook vaak betrokken bij het testproces.