Agile Informatie Technologie

en hoe Scrum toe te passen

Specification by Example met Scrum

ATDD (Acceptance Test-Driven Development) of Specification by Example is de manier om de analyse- en testfasen van het waterval proces te elimineren en te vervangen door een gezamenlijke inspanning van de business, de ontwikkelaars en de testers. Niet alleen het onderling begrip, het vertrouwen en kwaliteit van de ontwikkeling heeft hier baat bij, als 'bijproduct' wordt een levende documentatie opgeleverd die door alle partijen begrepen wordt.


Het boek Specification by Example beschrijft de methode op basis van de praktijkervaring bij een aantal verschillende projecten. De aanpak laat zich op de volgende manier goed combineren met Scrum:

  • Voorafgaand aan de eerstvolgende backlog refinement sessie leiden een tester, een ontwikkelaar en de meest betrokken business vertegenwoordiger een aantal testbare voorbeelden af van het doel van de bijhorende user story. Uiteraard komen de user stories aan de top van de backlog het eerst aan de beurt.
  • Tijdens de backlog refinement worden deze voorbeelden uitgelegd er wordt het team uitgedaagd aanvullende voorbeelden te bedenken met extra aandacht voor de randgevallen.
  • Tijdens de sprint werken de ontwikkelaars en de testers de voorbeelden uit in tekst en tot geautomatiseerde tests. Tegelijkertijd werken de ontwikkelaars aan de productiecode.
  • De testers wachten niet tot het eind van de sprint maar gaan direct aan de slag als een user story gereed wordt gemeld.
  • In iedere sprint worden de specificaties van de user stories die bij een vorige sprint live zijn gegaan ondergebracht in een geordende structuur die gemakkelijk doorzoekbaar is.

Tijdens de sprint worden aan de specificaties geautomatiseerde tests toegevoegd. Deze worden gekoppeld aan het geautomatiseerde build proces. Hierdoor ontstaan zich zelf controlerende specificaties. Uiteindelijk landen deze tests in een test harness dat dient als regressie test. Dit zijn niet de unit tests die de ontwikkelaars ook maken om technische componenten op hun werking te controleren. Het test harness test alle functionele specs die met de business zijn overeengekomen.

Niet alle specificaties kunnen automatisch worden getest. Begrippen als gebruiksvriendelijkheid moeten met de hand worden getest. De test beschrijft hoe dat dient te gebeuren. Bijvoorbeeld door een testpanel met verschillende typen gebruikers.

Het resultaat van deze aanpak is niet alleen een betere samenwerking tussen de business, de analisten, de ontwikkelaars en de testers. De levende en de zich zelf controlerende functionele documentatie is van onschatbare waarde voor het onderhoud van de applicatie.

In dit artikel op Wikipedia worden een aantal tools genoemd die Specification by Example ondersteunen. Let er op dat de organisatie van de samenwerking belangrijker is dan het gebruik van een tool.

Sinds 2000 wordt een nieuwe trend gemeengoed. Ontwikkel eerst een testbare module, definieer en doorloop alle tests, en voeg de code dan pas toe aan het project.

Het in samenwerking met de business formuleren van acceptatietests is de manier om functionele specificaties in een agile omgeving vast te stellen en te bewaken.

© 2006-2018 | Created by Erik Verheul