NL Testdag 2019, 25e editie

Op 20 november jl. was het dan zover, de 25e editie van de enige echte Nederlandse testconferentie: ‘NL-Testdag’. Dit keer georganiseerd door Maurice Siteur (Capgemini), Marcel Diepenbroek (InnSpire), Marcel Oostveen (InnSpire) en Bas Dijkstra (On Test Automation). In deze blog neem ik jullie mee op deze interessante dag.

Opening
Na een hartelijk welkom door één van de organisatoren op het hoofdkantoor van Capgemini in Utrecht, kreeg ik een naambordje uitgereikt. Ik snelde hierna naar de centrale hal voor een heerlijke kop koffie. Later zijn hier ook zogenaamde lightning talks gehouden.

Om precies 9:45 opende Maurice Siteur de NL-Testdag in de grote zaal (Mumbai & Paris). Hierna was het de beurt aan Geoffrey van der Tas met zijn openings keynote. Hij had als thema ‘Quality Engineering, a new hope for quality software’.

Ken de story van je business
Geoffrey begon zijn verhaal over het testen van vroeger en nu. We moeten tegenwoordig snel feedback geven in plaats van pas achteraf een uitspraak doen over de kwaliteit. Volgens Geoffrey moet je kwaliteit al vanaf de start inbouwen, dus al in de user stories. Verder ook feedback leveren op alle vlakken zoals security, monitoring, automatische testen, performance, CI/CD, etc.

Verder vertelde Geoffrey dat het erg belangrijk is om de story van de business te kennen. Immers, als je de story van de business kent, kan je betere software bouwen en meedenken met de klant. Als voorbeeld liet Geoffrey een foto zien van een zonsondergang. Op zich niets bijzonders, maar als je het gehele verhaal erachter hoort, zie je de foto ineens heel anders. Geoffrey vertelde namelijk het complete verhaal over hoe de foto tot stand was gekomen. Dat leverde ineens een heel andere kijk op. Dit is nu juist zo belangrijk in het ontwikkelingsproces; dat je het gehele verhaal van je klant kent. Er werd uitgelegd dat je de klant hierbij kunt helpen en als voorbeeld schetste Geoffrey hiervoor de techniek ‘Impact Mapping’. Een strategische planningstechniek die duidelijke communicatie afdwingt en teams helpt hun activiteiten af te stemmen op algemene bedrijfsdoelstellingen om zodoende betere beslissingen te kunnen nemen.

Geoffrey vervolgde zijn verhaal met een aantal leuke slides van onder andere verkeerde teksten op taarten, (zoals op de foto). Hierbij benadrukte hij dat het van essentieel belang is dat we allemaal hetzelfde idee moeten hebben over wat er gebouwd moet worden. Dus bespreek en discussieer over de specificaties. Gebruik hiervoor bijvoorbeeld de refinement.

Recap
Tijdens deze openings keynote passeerde ook de volgende onderwerpen: ATDD, Specification by example, het belang om inzicht te hebben in de risico’s. Aan het einde van zijn verhaal gaf hij nog de volgende recap mee:

  • People:Team-Assessment, Skills and Quality as a team responsibility
  • Process: Vision, Roadmap, Refinements with Examples, Risks & Quality Test Strategy
  • Automation:Faster you move forward, faster you get feedback and can roll back
  • Explore & Experience: Talk to customer, Use & Experience your product

Testers, testautomatiseerders en F-words
Na de openings keynote ben ik gaan luisteren naar een aantal lightning talks over onder andere dat er naast testautomatiseerders ook goede testers nodig zijn. Er is dus duidelijk een verschil in deze twee disciplines. Er werd dieper ingegaan op het verschil tussen test automation (bijv. het schrijven van feature files met Cucumber) en automated testing (bijv. het ontwikkelen van de step definitions met Java).

Verder was er nog een lightning talk over F-words zoals: Focus, Friendly Fast, Full stack, ect. De mensen uit het publiek mochten een woord roepen waarna dit woord werd uitgelegd in relatie tot testen.

Talk van Yang Liu Booking.com
Na de theepauze volgde er een talk van Yang Liu van Booking.com over automated test verification. Dit vond plaats in de Mumbai hal. Yang Liu begon met een uitleg over zijn interpretatie van wat testen is. Hij gaf aan dat je vroeg moet starten met testen, omdat bugfixen later in het proces duurder is. Verder vertelde hij dat je nooit alles kunt testen en legde dit uit aan de hand van een aantal praktische voorbeelden over een google search met duizenden resultaten. Je kunt nooit vooraf bepalen welke resultaten getoond moeten worden. Ook weet je niet vooraf hoeveel resultaten er getoond moeten worden (Oracle), laat staan dat je alle resultaten moet controleren. Onmogelijk!

Verder verteld Yang Liu dat we de verificatie moeten automatiseren, we kunnen niet alles handmatig verifiëren. Maar hoe? We moeten dan namelijk wel eerst het Oracle probleem oplossen, want soms weten we deze dus niet.

Dan verteld Yang Liu over Metamorphic testen, een manier waarbij je de relatie test en niet de uitkomst. Als voorbeeld gaf Yang Liu weer een google search op muziek en film. Je weet dan dat er als resultaten films en muziek moeten komen, maar hoeveel resultaten weet je niet. Deze relatie check kan vervolgens wel worden geautomatiseerd.

Al met al een leuke talk, maar deze startte wel met veel bekende (Test)best practices.

Pauze!
Om 12:40 kregen we in de centrale hal een heerlijke lunch met verse broodjes, verse sap en fruit. Alles was uitstekend verzorgd!

De tweede Keynote
Na de pauze was het tijd voor de tweede keynote, dit keer door Ina Schaefer. Zij is professor en hoofd van het Instituut of Software Engineering en tevens Automotive Informatica aan de technische Universiteit van Braunschweig in Duitsland.

De keynote van Ina met als titel ‘How to test the Universe?’ ging over het feit dat je nooit alles kunt testen. Ze schetste dit met een voorbeeld van een volkswagen configurator. Er waren 10 tot de 70e macht aan mogelijkheden, en dus onmogelijk om al deze combinaties te testen. Veel variëteit levert dus complexiteit op. Om dit probleem op te lossen liet Ina ons het zogenaamde Feature model en de teststrategie ‘Varialility Realization Techniques’ zien.

Verder heeft Ina het belang uitgelegd van integratietesten. Dit aan de hand van het voorbeeld van een branddetector met sprinkler en een watersensor. Apart werken deze twee apparaten perfect, (Unittest), maar wat als ze samen zouden werken in een Integratietst? Het zou je maar gebeuren dat er brand uit breekt en de sprinklers aangaan maar ook weer uitgaan omdat de watersensor ervoor zorgt dat de hoofdkraan van het water wordt afgesloten. Dit gaat over feature interactions, volgens Ina. Verder verteld ze ook over ‘Model Based Testen’, waarbij je delta analyses kunt maken op het model ‘Combinatorial testing’. Tot slot gaat ze in op academische formules waarmee je de juiste selecties kunt maken voor je testen.

How to practice TDD without shooting yourself in the foot
Na de talk van Ina ben ik gelijk doorgegaan naar de Mumbai hal om daar de talk van Dennis Doomen bij te wonen. De titel van deze talk is ‘How to practicec TDD without shooting yourself in the foot’. Een erg technisch verhaal over hoe je het beste het proces met behulp van Test Driven Development (TDD) kan inrichten. Het verhaal van Dennis gaat over Unittetsen, Integratietesten, HTTP/API testen, UI Automation, Environment test, etc. Als het aan Dennis ligt moet je ze allemaal doen. Als laatste toont Dennis een Unittest in C#.

Koffie met Sander Hoogendoorn
Ik snelde me na afloop naar de centrale hal voor een kop koffie. Onderweg raakte ik in gesprek met Sander Hoogendoorn. Sander was net binnengekomen en zou de eind-keynote gaan verzorgen. Ik ken Sander al lange tijd en heb ooit nog meegeholpen aan het opstellen van de teststrategie binnen zijn Agile aanpak. Welke ook is opgenomen in zijn boek ‘Pragmatisch modelleren met UML’. Erg leuk om weer even bij te praten en ik was benieuwd naar zijn verhaal ‘It’s a small world after all’ wat zou gaan volgen.

Eind- keynote van Sander
Om 15:40 uur startte Sander Hoogendoorn met zijn eind-keynote. In een ongelofelijk hoog tempo, maar ontzettend helder en goed te volgen, gaf Sander inzicht in hoe snel alles veranderd. Met mooie voorbeelden en grappige slides nam hij ons mee in de wereld van 1954 tot aan nu. Zo gaf hij bijvoorbeeld aan dat het 68 jaar heeft gekost om 50 miljoen mensen in een vliegtuig te krijgen, 12 jaar voordat 50 miljoen mensen een mobiele telefoon hadden en slechts 19 dagen voordat 50 miljoen mensen Pokemon Go speelde.

Tijd om development te veranderen
Juist omdat alles zo snel verandert en omdat we afhankelijk zijn van zoveel zaken doen we onze development niet goed, stelde Sander. Wat moeten we dan wel doen volgens hem? We moeten kleine features opleveren, in kortere cycli en in kleinere teams. In zijn keynote ging Sander in op deze drie aspecten en zat iedereen gekluisterd aan zijn stoel.

Tevens vertelde Sander dat veel mensen denken dat Scrum en Agile hetzelfde is, maar dat is niet zo. Het Agile Manifesto zegt bijvoorbeeld dat je vaak en snel moet opleveren, maar zegt niet dat je zoals in Scrum elke twee of drie weken moet opleveren. Scrum is maar één merk van Agile!\

Stop met projecten, legde Sander uit, en deliver continue kleine features meerdere keren per dag. Dat is veel makkelijker te bouwen en te testen. Stop volgens Sander ook met schatten, (Poker sessies, T-shirt sizing, etc). Het heeft namelijk helemaal geen zin om te schatten. Er zijn teveel afhankelijkheden en we eindigen toch altijd met een restant werk na afloop van de sprint. Sander liet hierbij een aantal Burndown charts zien en gaf een mooi voorbeeld van zijn ééndaagse schatting toen hij op vakantie was. Zelfs die dag liep helemaal uit doordat er van alles gebeurde waar hij vooraf geen rekening mee had kunnen houden. Als je één dag al niet kunt schatten, hoe kun je dan wel een twee of drie wekelijkse sprint schatten?

Stop ook met standups, refinements, e.d. “It slows you down”, aldus Sander. Maak kleine baby stapjes meerdere keren per dag en met kleine teams.

Tevreden naar huis
Na afloop van de eind-keynote vertrok ik tevreden en met een goed gevoel over deze 25e editie van de NL Testdag naar huis. Ik maak ik me alweer op voor de volgende editie 😉

Silvio
Silvio Cacace