Specification by Example in een .NET omgeving uitgevoerd met SpecFlow Eric Kerst Systeemontwikkelaar Nick Mullens Testspecialist Mirhan Alibasic Testspecialist
Inleiding VECOZO Waarom “Specification by Example”? Proces “Specification by Example” Workshop “Lessons learned” Vragen Korte voorstelronde: wie zijn wij en wat doet VECOZO Specification by example (SbE): (theorie,terminologie, waarom SbE bij Vecozo etc) Het Proces (o.a.: Key example sessie, scrum en SBE) Workshop: key example sessie: casus Terugblik op de workshop Demo: key examples en SpecFlow in de praktijk, living documentation “Lessons learned”: waar lopen wij bij Vecozo nog steeds tegenaan (openstaande punten), wat waren de problemen die we tegenkwamen, Vragen
VECOZO Sinds 2002 150 vrolijke mensen
Wat doet VECOZO? Digitaal communicatiepunt voor alle ketenpartners in de zorg Missie: verlagen van de administratieve lasten van alle ketenpartners
Dienstverlening VECOZO Zorgverzekeringswet (Zvw) en Wet langdurige zorg (Wlz) Elektronisch Declaratieportaal (EDP) Controle op Verzekeringsrecht (COV) Wlz-berichtenverkeer Inschrijving op Naam (ION) Digitaal Contracteren (DC) Machtigingenportaal e-Facturatie UWV Informatieroutering (VSP-Info/OHW) Berichtenbox Opt-in Groepenbeheer MVH Zorginkoopportaal ( voorheen DBC Services) Wet maatschappelijke ondersteuning (Wmo Sinds 2015) Wmo-berichtenverkeer Elektronisch Declaratieportaal (Wmo) Jeugdwet Jeugdwet-berichtenverkeer Elektronisch Declaratieportaal (Jeugdwet)
Overzicht aangesloten zorgverzekeraars 6
Overzicht aangesloten zorgaanbieders Totaal: 36.993* (praktijken/instellingen) *Bron: VECOZO, december 2014
De ontwikkelafdeling binnen VECOZO 8 Agile SCRUM teams Development team bestaat uit de volgende disciplines Informatieanalisten (1 à 2) Systeemontwikkelaars (2 tot 4) Testers (1 à 2) Overige rollen Product Owner Functioneel beheerders
Waarom “Specification by Example”?
VECOZO Way of Working - 2011 2011 werkte we op een waterval methode
VECOZO Way of Working - 2012 2011 werkte we op een waterval methode
VECOZO Way of Working – 2012 - 2013 2011 werkte we op een waterval methode
VECOZO Way of Working – eind 2013 2011 werkte we op een waterval methode
Proces “Specification by Example”
Specification by Example in a nutshell Wat is het? Specificeren van toepassing met alle disciplines Testdriven development Waarom gebruiken we het? Gezamenlijke begripvorming van de te ontwikkelen toepassing (alle neuzen dezelfde kant op) Geautomatiseerde testen Up-to-date documentatie Theorie achter sbe vertellen
Het ontwikkelproces binnen VECOZO [1/2] LET OP: Hier extra/expliciet uitleg wie wat verantwoordelijk is. (BV. Business Analisten, Informatie Analisten en team etc.)
Het ontwikkelproces binnen VECOZO [2/2] Scenario Omschrijft het gedrag van het systeem onder bepaalde omstandigheden, binnen de kaders van een feature file. Gegeven…Als…Dan… Example Een example is een concretisering van het scenario met realistische voorbeeldwaardes. Key Example Example met de meeste business value voor de stakeholders Living documentation is gegenereerde documentatie van het systeem op basis van de geautomatiseerde examples. Aspecten: Makkelijk toegankelijk/navigeerbaar voor de lezers Business readable format Up-to-date ten opzichte van het werkelijke gedrag van het systeem Feature File Verzameling van (key) examples gerelateerd aan een user activity of user task
Stap 1
Stap 1 Leerdoel Input Output Hoe kom je tot shared understanding? User stories Output Key examples
Stap 2
Stap 2 Leerdoel Input Ouput Hoe leg je de gevonden key examples vast? Key examples in Gherkin
Stap 3
Stap 3 Input Demonstratie Stap 2 Hoe te automatiseren? Frequent valideren Living documentation
Tooling
Gebruikte tooling Team Foundation Server Visual Studio 2012 Speclog Selenium Webdriver Specflow+ Pickles
“Lessons learned” Gaandeweg meer gestroomlijnde sessies Functionelere en beter leesbare key examples Duidelijke keuze voor tooling Tester wordt meer systeemontwikkelaar (rolverdeling) Belang van key examples volgens TDD principe op te pakken Geen key examples maken voor Defects
Wat heeft u geleerd?
Vragen 30