Testers hebben ruime voorbereidingstijd nodig om testspecificaties op te stellen die achteraf kunnen worden uitgevoerd. Ze zijn behoudend en verlaten niet graag hun comfortzone. Echter, deze traditionele werkwijze verstoort iteratieve ontwikkelprocessen zoals Scrum. Hier is een andere mindset en een andere werkwijze van de tester vereist.
Wat is Scrum? Binnen de Agile-ontwikkelprocessen vormt Scrum één van de iteratieve ontwikkelmethoden. Software wordt in sprints, korte iteraties van maximaal vier weken, door een klein multidisciplinair en zelfsturend team ontwikkeld. Uitgangspunt bij Scrum is dat het ontwerpen, bouwen en testen van de software zoveel mogelijk parallel plaatsvindt. Iteratief ontwikkelen met Scrum vereist daarom een iteratieve testmethode.
Wat is exploratory testing? Exploratory testing (afgekort ET) is een iteratieve testmethode waarbij uitgangspunt is dat het leren, ontwerpen en uitvoeren van testen zoveel mogelijk gelijktijdig plaatsvindt. In plaats van testspecificaties bestaat de basis voor toepassing van ET uit ervaring, domeinkennis, testkennis, creativiteit en logisch denkvermogen. Door ‘exploreren' kan de software iteratief worden getest.
Voor het uitvoeren van ET is een andere mindset bij de testers nodig. Deze mindset wordt vooral getypeerd door flexibiliteit en verantwoordelijkheid. Een tester zou blij moeten worden van veranderingen en laat de business over zijn schouder meekijken. Hij wordt niet zenuwachtig bij het ontbreken van een deugdelijke testbasis en start de testsessies zonder uitgebreide specificaties en zonder een verwacht resultaat voorhanden te hebben. Hij is in staat ter plekke en onder meer tijdsdruk zowel te specificeren, testen uit te voeren en resultaten te analyseren. Deze testen voert hij ook uit op halffabricaten, hij wacht niet af totdat alle componenten worden opgeleverd.
Essentieel onderdeel van beide methoden is een set regels. Deze regels maken de processen van Scrum en ET zo krachtig. Naast deze regels kennen Scrum als ET overeenkomsten die deze methoden onderling aanvullen en versterken.
Overeenkomstige kenmerken
– Formele, iteratieve methode.
– Parallelle uitvoering van activiteiten, waardoor afnemende doorlooptijd.
– Vroegtijdig inzicht in kwaliteit.
– Dagelijkse update, houdt planning beheersbaar, reëel en inzichtelijk.
– Geeft veel flexibiliteit, met name ten aanzien van (functionele) wijzigingen.
– Vereist nadrukkelijke businessparticipatie.
– Vereist ervaren specialisten met goede sociale en communicatieve vaardigheden.
– Vereist een flexibele instelling en coachende aansturing.
– Vereist specialisten die verantwoordelijkheid (willen) nemen voor eigen werkzaamheden.
Overeenkomsten in processtappen
Scrum |
Exploratory testing |
– Functionele decompositie, vastleggen |
– Functionele decompositie, vastleggen |
– Prioriteren en opstellen sprintplanning |
– Risicoanalyse en Prioritering van de |
– Vastleggen activiteiten in sprint backlog. |
– Vastleggen testcomponenten in testrapport. |
– Plannen activiteiten o.b.v. pokerplanning, |
– Bepalen van de tijdsduur testsessies per |
– Daily standup meeting, 3 vragen: o Wat heb je gedaan? |
– Dagelijkse brainstorm sessie en opstellen o Welke vragen moeten aan het eind van |
– Product owner vormt de sparringpartner |
– Key users vormen de sparringpartner voor |
|
– Key users nemen deel aan de testsessies |
|
– Debriefing na testen van ieder testobject: o Test op object geheel afgerond? |
– Dagelijks registreren van uitgevoerde |
– Dagelijks bijwerken van het testrapport. |
– Korte sprints maken ontwikkelsnelheid |
– Korte sessies maken testsnelheid |
– Demo aan het einde van iedere sprint aan |
– Testrapport altijd up to date, zo wordt |
Conclusie
Tot op heden was het testen binnen een Scrum-ontwikkelproces dikwijls een beperkende factor doordat de testaanpak totaal niet aansloot bij het Scrum-ontwikkelproces en de Scrum-principes. ET daarentegen is een testmethode die het Scrum-proces aanvult en versterkt. Met ET is de tester in staat waarde toe te voegen aan het proces zonder het algemeen geldende testprincipe als ‘het managen van risico's en verwachtingen' geweld aan te doen. Het vereist echter een andere mindset van de testers en daarin ligt voor hen een belangrijke uitdaging.
Ik zou graag de bronvermelding willen zien waarop gebaseerd is dat Exploratory Testen al deze eigenschappen heeft. ET is in mijn optiek slechts een testtechniek die je gebruikt als onderdeel van je risicoanalyse. ET is geen uitgewerkte testmethode!
Mensen die dit artikel lezen zullen ten onrechte de conclusie trekken dat alleen ET toepassen voldoende is voor een agile project. Dat is zeer risicovol, want geautomatiseerde unit- en integratietests en een zeer actieve klantrol zijn essentieel bij testen in Scrum projecten. Al deze inzichten mis ik hier.
@Anko: Je zegt dat ET een testtechniek is. Dat klopt ook, alleen je moet niet verwachten dat de Eugene die uit een andere hoek komt, dat zo gedetailleerd weet. Hij komt niet uit de testhoek.
Over het artikel zelf. Ik ben het wel met Eugene eens. Scrum betekent in testtermen snel en effectief handelen. Dat snel zit er met andere testtechnieken niet in. Je moet dus als tester redelijk ervaren zijn en snel door uitvoering leren. Want je moet al uitvoerend leren. Kun je dit niet. Begin dan niet aan Scrum. Minimaal 5 verschillende klussen/projecten als testervaring benodigd zou ik zeggen.
@MV: Deze column schrijft Eugene vanuit zijn rol als Computable Expert en hij is directeur R&D van een testbedrijf. Volgens mij mag ik hem dus best op zijn testexpertise aanspreken, anders verdient hij die rollen niet.
Ten tweede: Er zijn naar mijn mening meer dan voldoende testtechnieken die uitermate geschikt zijn voor agile projecten. Je kunt gewoon beslissingsanalyse, equivalentieklassen, procescyclustest, pairwisetesten etc. gebruiken. Wat je alleen niet moet doen is ze net zo gedetailleerd en tijdrovend gebruiken als ze in de testliteratuur staan – dan kun je geen snelle feedback aan je team geven en dat is essentieel. Maar de kern van de techniek is vaak simpel en als je je (in 1e instantie) daartoe beperkt kun je wel snelle feedback geven. Dus wel de techniek toepassen, maar voorzichtig zijn met de manier waarop je dat doet.
Als onderdeel van onze agile testen aanpak hebben wij juist hiervoor quick reference cards ontwikeld die testtechnieken beschrijven zoals je ze in agile projecten kunt gebruiken. Ze zijn downloadbaar vanaf http://www.agiletesten.eu