Ga naar hoofdinhoud

Lesprogramma

1. Behaviour Driven Development (gedrag gedreven ontwikkeling)

We bespreken het huiswerk en de meerwaarde die BDD kan bieden tijdens een software ontwikkelingstraject.

2. Verduidelijken van een fine-grained domein story met concrete voorbeelden

In de afgelopen weken heb je geleerd om functionele eisen te vangen in user stories (met user story mapping), maar daarmee zijn de regels over hoe het systeem zich moet gedragen in een bepaalde situatie slechts gedeeltelijk helder te krijgen. Het is namelijk geen requirement specificatie, maar een beschrijving van het probleem dat opgelost dient te worden. Er zijn allerlei mogelijke uitkomsten die we beter kunnen vangen in concrete voorbeelden (een concrete situatie met taak en resultaat).

Tegelijk zou je eindeloos voorbeelden kunnen verzinnen die niet direct meer informatie geven over hoe het systeem zich zou moeten gedragen. Daarvoor is de methode van Example Mapping bedacht waarbij het doel is om te komen tot de relevante regels middels concrete voorbeelden daarvan. Een stakeholder is eerder geneigd om te denken aan concrete voorbeelden dan alle regels die daaraan ten grondslag liggen.

tip

Een concreet voorbeeld is doorgaans omschreven in één zin die goed is wanneer deze drie dingen beschrijft:

  • context (van de situatie en specificeren van de actor)
  • actie (die een actor uitvoert c.q. taak)
  • reactie (die het systeem daarop geeft c.q. het resultaat)
info

Ter illustratie een voorbeeld van een concreet voorbeeld bij de weekcasus:

De keer toen Jan in zijn eerste worp een strike gooide, maar de volgende twee beurten slechts 1 pin omgooide wat resulteerde in totaal slechts 12 punten.

  • De keer toen Jan in zijn eerste worp een strike gooide (context + actor)
  • de volgende beurt slechts 1 pin omgooide (actie)
  • wat resulteerde in totaal slechts 12 punten (reactie)

De bovenliggende regel zou dan zijn:

  • Het omgooien van 10 kegels in één worp zou moeten resulteren in het einde van een frame en levert een waarde op van 10 plus het aantal omgegooide pinnen in de volgende twee worpen.

:::

gevaar

Een regel is niet een-op-een hetzelfde als acceptatiecriteria:

  • Acceptatie criteria specificeren wat er gebeurt moet zijn na afloop van een user story (happy flow)
  • Regels in een example map specificeren hoe het systeem moet reageren c.q. zich verwacht wordt te gedragen in een bepaalde situatie

Example Map

In het huiswerk hebben jullie je ingelezen op de methode van Example Mapping om te komen tot concrete voorbeelden en regels. We bespreken hoe een goed example map eruit ziet en wat de kwaliteitseisen daaraan zijn.

Example map met miro

tip

De kwaliteitseisen van een goed example map zijn:

  • compleetheid, alle regels gedekt met voorbeelden (happy en unhappy path)
  • herhaalbaarheid, voorbeelden bevatten concrete gegevens (herkenbaar voor stakeholder/actor)
  • minimaal, een set van voorbeelden om minimaal al de regels af te testen
    • of zijn er ook overbodige scenario's die dingen dubbel verifieren?
    • of zijn er ook regels die niet geraakt worden?
  • herleidbaar, voorbeelden zijn herleidbaar naar regel(s) en user story
tip

Ter referentie hoe dit in de praktijk in een workshop toegepast kan worden zie: your first example mapping session

3. Concrete voorbeelden opstellen

In groepjes opstellen van concrete voorbeelden in een Example Map bij een gegeven User Story met regels.

tip

In een example mapping workshop is alles toegestaan om voorbeelden te beschrijven: tekenen, schetsen, korte zinnen, plaatjes etc. Zolang het de context, actie en verwachte reactie duidelijk maakt voor alle aanwezigen kan dit altijd later uitgewerkt worden in ondubbelzinnige tekst.

tip

Wanneer je het graag digitaal wil vastleggen kun je gebruikmaken van deze online Example Mapping tool.

4. Formaliseren van de voorbeelden

De volgende stap is om de voorbeelden te gaan formaliseren, maar hoe doe je dat?

Je kunt zoals De koning zegt in het sprookje van Alice in Wonderland bij het begin beginnen en doorgaan tot je bij het eind komt.

notitie
uittreksel van Alice in Wonderland (Alice-in-Wonderland.net, n.d.)

The White Rabbit put on his spectacles. “Where shall I begin, please your Majesty?” he asked. “Begin at the beginning,” the King said gravely, “and go on till you come to the end: then stop.”

Voor het opstellen van scenario's doen we echter vaak exact het tegenovergestelde en beginnen we met het eind voor ogen (doel). Probeer allereerst helder te krijgen wat de gewenste uitkomst is om van daaruit terug te werken naar de actie die daartoe zou moeten leiden en aan welke voorwaarden vooraf moet zijn voldaan. Kortom: Wat is gewenst en ongewenst gedrag van het systeem om bepaalde doelen te bereiken?

Hier gaan jullie in de voorbereiding op de aanstaande les mee aan de gang.

Optionele achtergrond informatie

Voor extra verdieping van de BDD-methodiek kun je deze video bekijken: An Ultimate Guide to BDD (Modern Software Engineering, 2022).

Lees ook deze recente kritische reflectie op BDD in het nieuwe AI-tijdperk: Is BDD Dying? (Knight, 2025).

Visualisatie bij Is BDD Dying Figuur: Visualisatie bij Is BDD Dying? Bron: Knight, A. (2025). Is BDD Dying?.

En lees dit artikel over de groeiende aandacht voor BDD: BDD Builds Momentum (Rose, 2020).

Visualisatie bij BDD Builds Momentum Figuur: Visualisatie bij BDD Builds Momentum. Bron: Rose, S. (2020). BDD Builds Momentum.

Bronnen