Verbeter je Gherkin scenario’s

Slides:



Advertisements
Verwante presentaties
Deltion College Engels C1 Gesprekken voeren [Edu/002]/ subvaardigheid lezen thema: Order, order…. can-do : kan een bijeenkomst voorzitten © Anne Beeker.
Advertisements

User Centred Development
Deltion College Engels B1 Schrijven [Edu/004]/ subvaardigheid lezen thema: reporting a theft can-do : kan formulieren waarin meer informatie gevraagd wordt,
Past Simple Onvoltooid verleden tijd Regelmatige werkwoorden:
Herhaling hoofdstuk 3 A. Wat is de Past Simple?
Rational Unified Process RUP Jef Bergsma. Iterations –Inception –Elaboration –Construction –Transition De kernbegrippen (Phases)
Deltion College Engels B1 Schrijven [Edu/003] thema: what have I done wrong…? can-do : kan s/ brieven schrijven over persoonlijke zaken © Anne Beeker.
Deltion College Engels B1 En Gesprekken voeren[Edu/003] thema: I hate my nose… can-do : kan persoonlijke standpunten, commentaar en meningen geven over.
English Class 2G 1st of December 2010 It’s nice to be important, but it’s more important to be nice.
Deltion College Engels B1 Gesprekken voeren [Edu/006] thema: Look, it says ‘No smoking’… can-do : kan minder routinematige zaken regelen © Anne Beeker.
Deltion College Engels B2 Schrijven [Edu/006] thema: Euromail can-do : kan in persoonlijke s nieuws en standpunten van een ander becommentariëren.
Deltion College Engels
Deltion College Engels C1 Spreken [Edu/002] thema: A book that deserves to be read can-do : kan duidelijke, gedetailleerde samenvatting geven van een gelezen.
Deltion College Engels A1 Gesprekken voeren [Edu/003] thema: A rainy day…. can-do : kan eenvoudige informatie geven over het weer © Anne Beeker Alle rechten.
Deltion College Engels B2 Gesprekken voeren [Edu/005]/subvaardigheid luisteren thema: ‘Pink pop and air-controllers on strike’ can-do : kan in een telefoongesprek.
Deltion College Engels B2 Lezen [Edu/004] thema: Scanning, a race against the time can-do: kan snel belangrijke detailinformatie vinden in lange en complexe.
Deltion College Engels B1 En Spreken/Presentaties [Edu/006] Thema: “The radio station“ can-do : kan een publiek toespreken, kan verzonnen gebeurtenissen.
Deltion College Engels C1 Schrijven [Edu/007] thema: Mind twister or how to write an essay… can-do : kan heldere, goed gestructureerde uiteenzetting schrijven.
Nothing Is As It Seems Lesson 7 What’s the Story?.
Deltion College Engels B2 Lezen [Edu/003] thema: Topical News Lessons: The Onestop Magazine can-do: kan artikelen en rapporten begrijpen die gaan over.
Deltion College Engels B2 Spreken [Edu/001] thema: What’s in the news? can-do : kan verslag doen van een gebeurtenis en daarbij meningen met argumenten.
Deltion College Engels B1 Spreken [Edu/001] thema: song texts can-do : kan een onderwerp dat mij interesseert op een redelijk vlotte manier beschrijven.
Deltion College Engels C1 Gesprekken voeren [Edu/001]/ subvaardigheid lezen thema: What a blooper…. can-do : kan taal flexibel en effectief gebruiken voor.
Test Tender module Stap 1 Klik op het gewenste object.
Specification by Example in een .NET omgeving
De Dynamische Testrapportage: BDD en de deployment pipeline
Deltion College Engels B2 Gesprekken voeren [Edu/009] thema: ‘We’d better go to…’ can-do : kan in vertrouwde situaties actief meedoen aan discussies over.
Deltion College Engels B2 Schrijven [Edu/005] thema: Writing a hand-out can-do: kan een begrijpelijke samenvatting schrijven © Anne Beeker Alle rechten.
APP Platform Rivium, 5 maart 2013 Rik Vietsch.
Deltion College Engels B1 Lezen [Edu/002] thema: But I ‘ve read it in… can-do : kan hoofdthema en belangrijkste argumenten begrijpen van eenvoudige teksten.
PRESENT PERFECT SIMPLE TENSE WB p , TB p89-91.
Deltion College Engels B2 Gesprekken voeren [Edu/007] thema: ‘With this mobile you can…’ can-do : kan op betrouwbare wijze gedetailleerde informatie doorgeven.
Deltion College Engels B2 (telefoon)gesprekken voeren[Edu/002] /subvaardigheid lezen/schrijven thema: I am so sorry for you… can-do : kan medeleven betuigen.
The Future Hoe spreek je over toekomstige activiteiten in het Engels?
Preparing your exchange Jan Schut. 2 5th semester It is your choice Stay at University of Twente Go abroad Consider: Your further study career (MSc) and.
Sprint 4 Deliveries Project 1 – Web development. Last lesson (Monday 27 October)  During the lesson, each group presents its product to the rest of the.
GegevensAnalyse Les 2: Bouwstenen en bouwen. CUSTOMER: The Entity Class and Two Entity Instances.
Time management Howdoyouset priorities?. Priorities:thingsthatyouthinkare important.
1 functie Presentation TEEB-stad tool The value of green infrastructure in cities Lian Merkx Platform31.
Present perfect (voltooid tegenwoordige tijd). De present perfect simple bestaat uit een vorm van have + voltooid deelwoord. He has refused I have just.
Grammar – period 2.
The Passive Year 4.
Windows applicatieontwikkeling
Key Process Indicator Sonja de Bruin
Samenwerken & lobby Harde lessen & hoe nu verder.
Testen en Testautomatisering in een Agile CI / CD omgeving
Present simple Grammar.
Vertrouw je testautomatisering!?
Werkwijze Hoe zullen we als groep docenten te werk gaan?
De taaltaak
Tempoquiz rekenen Als de sommen verschijnen heb je 1 minuut(tijd kun je zelf bepalen) om de antwoorden op te schrijven. Na de minuut verstreken is gaan.
#5. MULTI-ACTOR SAMENWERKING | CITY-OF-THINGS
Today: Chapter 2 Discuss SO 2 What to study for your test?
NL: We zitten in een Verandering van Tijdperken in plaats van een Tijdperk van Verandering.
Utrecht Attractive and Accessible: Focus on the User
Unit 2: LESSON 2 practicing the grammar: betrekkelijke voornaamwoorden
Modderdorp UNPLUGGED Bron: csunplugged.org.
NEW INTERFACE UNIT 2 : GRAMMAR
English 23 April 2018.
Van bagger… …naar behaviour
Assignment: calling for a meeting about internet use at work
Hebben we wel meer testautomatiseerders nodig?
THEME 12 TOPIC 1 Repetitie Theme 12.
Empty handed here I come,
Tempoquiz rekenen Als de sommen verschijnen heb je 1 minuut(tijd kun je zelf bepalen) om de antwoorden op te schrijven. Na de minuut verstreken is gaan.
Windows applicatieontwikkeling
Van “Test Less” naar “Test Different”
Chapter 6 Sounds cool! Grammar Stepping Stones 2 t/hv.
Moving Minds DNA.
Transcript van de presentatie:

Verbeter je Gherkin scenario’s DevOn Shift Left Event 6 december 2018 In the first 8 years of my career I wrote an awful lot of horrible automation Bas Dijkstra bas@ontestautomation.com www.ontestautomation.com @_basdijkstra

Wat gaan we doen? Wat is BDD? Welke rol spelen tools als Cucumber en SpecFlow in BDD? Valkuilen bij het schrijven van BDD-scenario’s Saving money > discuss ROI NEEDS REWORK Hoe kunnen we deze scenario’s verbeteren en onze automatisering effectiever maken?

Wat gaan we niet doen? Workshop Cucumber / SpecFlow Scenario’s automatiseren Saving money > discuss ROI NEEDS REWORK Code schrijven Laptops gebruiken

Een korte introductie van BDD en tools In the first 8 years of my career I wrote an awful lot of horrible automation

Wat is BDD? Behaviour Driven Development Ondersteunen van software-ontwikkeling door communicatie Saving money > discuss ROI NEEDS REWORK Gedeeld begrip, gedeelde begrippen Vooraf specificeren van gewenst gedrag

Hoe werkt BDD? Three amigos-sessies Business analisten, product owners weten wat ze krijgen Saving money > discuss ROI NEEDS REWORK Ontwikkelaars weten wat ze moeten bouwen Testers weten wat ze moeten verifiëren

Gherkin Given / When / Then ( / And / But ) Uitgangssituatie / actie / verwacht resultaat Saving money > discuss ROI NEEDS REWORK Features en scenario’s Diverse mogelijkheden voor verduidelijking

In the first 8 years of my career I wrote an awful lot of horrible automation

In the first 8 years of my career I wrote an awful lot of horrible automation

Cucumber en SpecFlow Tools ter ondersteuning van BDD Cucumber: verschillende talen (Java, Ruby, JS, …) Saving money > discuss ROI NEEDS REWORK SpecFlow: .NET Andere, soortgelijke tools beschikbaar (Ginkgo voor Go, Behat voor PHP, …)

Cucumber en SpecFlow Geen interactie met je te testen applicatie Tests automatiseren met Cucumber == DOES NOT COMPUTE Saving money > discuss ROI NEEDS REWORK Omzetten leesbare specificaties naar executeerbare code Helpers, hooks, rapportage

Aan de slag Introductie van een applicatie BDD-scenario’s ‘met ruimte voor verbetering’ Saving money > discuss ROI NEEDS REWORK Opstellen verbeterde versie in groepjes Presenteren aan de groep

Ronde 1: Rotterdam In the first 8 years of my career I wrote an awful lot of horrible automation

Scenario: verify the existence of a search result Given I have opened https://www.rotterdam.nl When I type parkeren in occurrence 3 of the input element with the attribute name with value query And I click on occurrence 1 of the button element with the attribute type with value submit Then I see an a element with the attribute href with value /wonen-leven/parkeren/ And I see an a element with the attribute href with value /wonen-leven/betaald-parkeren/ In the first 8 years of my career I wrote an awful lot of horrible automation

Verbeter dit scenario Wat vind je van dit scenario? Hoe zouden jullie dit scenario eruit laten zien? Saving money > discuss ROI NEEDS REWORK Samenwerken, leer van elkaars ervaringen Eén groep presenteert plenair

Lesson learned Cucumber / SpecFlow zijn geen keyword driven test tools Toch proberen geeft onleesbare scenario’s Saving money > discuss ROI NEEDS REWORK Maak onderscheid tussen ‘wat?’ en ‘hoe?’ Geen implementatiedetails in scenario’s

Oh, en als je dacht dat ik dit had verzonnen… In the first 8 years of my career I wrote an awful lot of horrible automation

In the first 8 years of my career I wrote an awful lot of horrible automation

Ronde 2: CRM In the first 8 years of my career I wrote an awful lot of horrible automation

Scenario: a new customer can be created Scenario: a new customer can be created Given I am on the CRM main page When I create a new customer John Then John is present in the list of customers Scenario: an existing customer can be updated Given I am on the customer details page for John When I rename John to Jean Then John is not present in the list of customers And Jean is present in the list of customers Scenario: an existing customer can be deleted Given I am on the customer details page for Jean When I delete the current customer Then Jean is not present in the list of customers In the first 8 years of my career I wrote an awful lot of horrible automation

Verbeter dit scenario Wat vind je van dit scenario? Hoe zouden jullie dit scenario eruit laten zien? Saving money > discuss ROI NEEDS REWORK Samenwerken, leer van elkaars ervaringen Eén groep presenteert plenair

Lesson learned Scenario’s moeten onafhankelijk van elkaar zijn Stelt specifieke eisen aan je testdata-strategie Saving money > discuss ROI NEEDS REWORK Volgorde van uitvoeren scenario’s niet gegarandeerd Afhankelijkheden maken parallelle uitvoer praktisch onmogelijk

Oh, en als je dacht dat ik dit had verzonnen… Importeren van data kostte +/- 1 minuut Honderden scenario’s Saving money > discuss ROI NEEDS REWORK Realiteit zag er precies zo uit als het voorbeeld ‘Oplossing’: naamsconventies voor scenario’s (SpecFlow)

Ronde 3: Telecom In the first 8 years of my career I wrote an awful lot of horrible automation

Scenario: an existing subscription can be cancelled Given I have created a new basic subscription And I have approved the subscription And I have run the subscription processing batch job And I have time traveled 7 days And the subscription has the status active When I cancel the subscription Then the subscription has the status canceling In the first 8 years of my career I wrote an awful lot of horrible automation

Scenario: an existing subscription can be upgraded Given I have created a new basic subscription And I have approved the subscription And I have run the subscription processing batch job And I have time traveled 7 days And the subscription has the status active When I upgrade the subscription to a premium plan Then the subscription has the status active And the monthly installment is 25 euros In the first 8 years of my career I wrote an awful lot of horrible automation

Scenario: an existing subscription is automatically renewed Given I have created a new basic subscription And I have approved the subscription And I have run the subscription processing batch job And I have time traveled 7 days And the subscription has the status active When a year has passed Then the subscription has the status active And the new end date is another year in the future In the first 8 years of my career I wrote an awful lot of horrible automation

Scenario: an existing subscription can be cancelled Given I have created a new basic subscription And I have approved the subscription in the subscription manager And I have run the subscription processing batch job And I have time traveled 7 days And the subscription has the status active When I cancel the subscription Then the subscription has the status canceling Scenario: an existing subscription can be upgraded Given I have created a new basic subscription And I have approved the subscription in the subscription manager And I have run the subscription processing batch job And I have time traveled 7 days And the subscription has the status active When I upgrade the subscription to a premium plan Then the subscription has the status active And the monthly installment is 25 euros Scenario: an existing subscription is automatically renewed Given I have created a new basic subscription And I have approved the subscription in the subscription manager And I have run the subscription processing batch job And I have time traveled 7 days And the subscription has the status active When a year has passed Then the subscription has the status active And the new end date is another year in the future In the first 8 years of my career I wrote an awful lot of horrible automation

Verbeter dit scenario Wat vind je van dit scenario? Hoe zouden jullie dit scenario eruit laten zien? Saving money > discuss ROI NEEDS REWORK Samenwerken, leer van elkaars ervaringen Eén groep presenteert plenair

Lesson learned Gedeelde uitgangssituatie uit scenario halen Cucumber / SpecFlow hebben hiervoor de Background Saving money > discuss ROI NEEDS REWORK Wat is de meest handige manier om een uitgangssituatie klaar te zetten? Vermijd de user interface hierbij wanneer mogelijk!

Oh, en als je dacht dat ik dit had verzonnen… In the first 8 years of my career I wrote an awful lot of horrible automation

Check status abonnement Aanvraag abonnement Verwerk abonnement Time travel +7 dagen Check status abonnement Verwerk abonnement Cool-off verwijderen In the first 8 years of my career I wrote an awful lot of horrible automation

Ronde 4: Autoverzekering In the first 8 years of my career I wrote an awful lot of horrible automation

In the first 8 years of my career I wrote an awful lot of horrible automation

Verbeter dit scenario Wat vind je van dit scenario? Hoe zouden jullie dit scenario eruit laten zien? Saving money > discuss ROI NEEDS REWORK Samenwerken, leer van elkaars ervaringen Eén groep presenteert plenair

Lesson learned Background is een goede manier om een uitgangssituatie te specificeren Specificeer alleen de data die er toe doet! Heeft een parameter invloed op het resultaat van het scenario? Specificeren! Saving money > discuss ROI NEEDS REWORK Heeft een parameter geen invloed op het resultaat van het scenario? Beter achterwege laten om verwarring te voorkomen

Ronde 5: Hypotheekorientatie In the first 8 years of my career I wrote an awful lot of horrible automation

@user-interface Scenario Outline: Check if a single applicant is eligible for a mortgage Given the applicant is on the mortgage orientation website home page And their employment contract type is <contractType> And their gross income is <grossIncome> And the price of the house is <askingPrice> And the applicant invests <savings> And the rebuilding costs of the house are <renovationCosts> When the applicant completes all forms in the mortgage orientation tool using this data Then the application displays a message stating that the applicant is eligible for a mortgage Examples: | contractType | grossIncome | askingPrice | savings | renovationCosts | | Vast dienstverband | 100000 | 100000 | 10000 | 10000 | | Tijdelijk dienstverband | 100000 | 500000 | 20000 | 25000 | | Pensioen | 100000 | 500000 | 20000 | 25000 | | Zelfstandig ondernemer | 100000 | 500000 | 20000 | 25000 | | Overig | 100000 | 500000 | 20000 | 25000 | In the first 8 years of my career I wrote an awful lot of horrible automation

Verbeter dit scenario Wat vind je van dit scenario? Hoe zouden jullie dit scenario eruit laten zien? Saving money > discuss ROI NEEDS REWORK Samenwerken, leer van elkaars ervaringen Eén groep presenteert plenair

Lesson learned Automatisering kan op meer manieren dan alleen via de UI Dwing de aanpak (‘hoe’?) niet af in je scenario’s Meerdere keren doorlopen van dezelfde schermen of formulieren? Saving money > discuss ROI NEEDS REWORK Onderzoek alternatieven voor de user interface Don’t Repeat Your Paths: http://chrismcmahonsblog.blogspot.com/2017/11/ui-test-heuristic-dont-repeat-your-paths.html

Oh, en als je dacht dat ik dit had verzonnen… In the first 8 years of my career I wrote an awful lot of horrible automation

Scenario Outline: Check if a JOINT APPLICANT with EXTENDED checked in the application is eligible for Mortgage. Given Applicant has a contract of type "<contract>" And partner with type of contract "<partner contract>" And Applicant has a yearly income of "<BrutoJaarincome>" And partners yearly income "<partner income>" And Price of the house is "<vraagprijs>" And Applicant with DOB "<DOB>"goes to Pension in ten years with yearly Pension of "<pensioenjaarinkomen>" And Partner with DOB "<partnerDOB>"goes to Pension in ten years with yearly Pension of "<partnerpensioenjaarinkomen>" And Applicant invests "<eigen spaargeld>" And Applicant has a monthly loan of "<leningen>" and monthly alimony of "<alimentatie>" and student loan of "<studieschuld>" And Partner has a monthly loan of "<partnerleningen>" and monthly alimony of "<partneralimentatie>" and student loan of "<partnerstudieschuld>" And extra cost of the new house "<Meerwerk>" And Applicant lives in an apartment which has mortgage amount of "<hypotheekbedrag>" and mortgage date "<ingangsdatum>" and selling price "<Verkoopprijs>" Then Display the eligibility Examples: | contract | partner contract | BrutoJaarincome | partner income | vraagprijs | DOB | pensioenjaarinkomen | partnerDOB | partnerpensioenjaarinkomen | eigen spaargeld | leningen | alimentatie | studieschuld | partnerleningen | partneralimentatie | partnerstudieschuld | Meerwerk | hypotheekbedrag | ingangsdatum | Verkoopprijs | | "Vast dienstverband" | "Vast dienstverband" | "200000" | "129300" | "500000" | "10/01/1989" | "90000" | "10/01/1978" | "85000" | "20000" | "500" | "400" | "1500" | "400" | "500" | "500" | "25000" | "10000" | "10/03/2015" | "50000" | | "Vast dienstverband" | "Tijdelijk dienstverband" | "100000" | "200000" | "500000" | "10/02/1989" | "90000" | "10/02/1978" | "85000" | "20000" | "500" | "400" | "1500" | "400" | "500" | "500" | "25000" | "10000" | "10/01/2015" | "50000" | | "Vast dienstverband" | "Pensioen" | "108560" | "200000" | "500000" | "10/02/1989" | "90000" | "10/02/1978" | "85000" | "20000" | "500" | "400" | "1500" | "400" | "500" | "500" | "25000" | "10000" | "10/01/2015" | "50000" | | "Vast dienstverband" | "Zelfstandig ondernemer" | "190000" | "250000" | "500000" | "10/02/1989" | "90000" | "10/02/1978" | "85000" | "20000" | "500" | "400" | "1500" | "400" | "500" | "500" | "25000" | "10000" | "10/01/2015" | "50000" | | "Vast dienstverband" | "Overig" | "100000" | "200000" | "500000" | "10/02/1989" | "90000" | "10/02/1978" | "85000" | "20000" | "500" | "400" | "1500" | "400" | "500" | "500" | "25000" | "10000" | "10/01/2015" | "50000" | | "Tijdelijk dienstverband" | "Vast dienstverband" | "100000" | "200000" | "500000" | "10/03/1989" | "90000" | "10/01/1978" | "85000" | "20000" | "500" | "400" | "1500" | "400" | "500" | "500" | "25000" | "10000" | "10/03/2015" | "50000" | | "Tijdelijk dienstverband" | "Tijdelijk dienstverband" | "100000" | "200000" | "500000" | "10/02/1989" | "90000" | "10/02/1978" | "85000" | "20000" | "500" | "400" | "1500" | "400" | "500" | "500" | "25000" | "10000" | "10/01/2015" | "50000" | | "Tijdelijk dienstverband" | "Pensioen" | "100000" | "200000" | "500000" | "10/02/1989" | "90000" | "10/02/1978" | "85000" | "20000" | "500" | "400" | "1500" | "400" | "500" | "500" | "25000" | "10000" | "10/01/2015" | "50000" | | "Tijdelijk dienstverband" | "Zelfstandig ondernemer" | "100000" | "200000" | "500000" | "10/02/1989" | "90000" | "10/02/1978" | "85000" | "20000" | "500" | "400" | "1500" | "400" | "500" | "500" | "25000" | "10000" | "10/01/2015" | "50000" | | "Tijdelijk dienstverband" | "Overig" | "100000" | "200000" | "500000" | "10/02/1989" | "90000" | "10/02/1978" | "85000" | "20000" | "500" | "400" | "1500" | "400" | "500" | "500" | "25000" | "10000" | "10/01/2015" | "50000" | | "Pensioen" | "Vast dienstverband" | "100000" | "200000" | "500000" | "10/03/1989" | "90000" | "10/01/1978" | "85000" | "20000" | "500" | "400" | "1500" | "400" | "500" | "500" | "25000" | "10000" | "10/03/2015" | "50000" | | "Pensioen" | "Tijdelijk dienstverband" | "100000" | "200000" | "500000" | "10/02/1989" | "90000" | "10/02/1978" | "85000" | "20000" | "500" | "400" | "1500" | "400" | "500" | "500" | "25000" | "10000" | "10/01/2015" | "50000" | | "Pensioen" | "Pensioen" | "100000" | "200000" | "500000" | "10/02/1989" | "90000" | "10/02/1978" | "85000" | "20000" | "500" | "400" | "1500" | "400" | "500" | "500" | "25000" | "10000" | "10/01/2015" | "50000" | | "Pensioen" | "Zelfstandig ondernemer" | "100000" | "200000" | "500000" | "10/02/1989" | "90000" | "10/02/1978" | "85000" | "20000" | "500" | "400" | "1500" | "400" | "500" | "500" | "25000" | "10000" | "10/01/2015" | "50000" | | "Pensioen" | "Overig" | "100000" | "200000" | "500000" | "10/02/1989" | "90000" | "10/02/1978" | "85000" | "20000" | "500" | "400" | "1500" | "400" | "500" | "500" | "25000" | "10000" | "10/01/2015" | "50000" | | "Zelfstandig ondernemer" | "Vast dienstverband" | "108900" | "200000" | "500000" | "10/03/1989" | "90000" | "10/01/1978" | "85000" | "20000" | "500" | "400" | "1500" | "400" | "500" | "500" | "25000" | "10000" | "10/03/2015" | "50000" | | "Zelfstandig ondernemer" | "Tijdelijk dienstverband" | "100000" | "204500" | "500000" | "10/02/1989" | "90000" | "10/02/1978" | "85000" | "20000" | "500" | "400" | "1500" | "400" | "500" | "500" | "25000" | "10000" | "10/01/2015" | "50000" | | "Zelfstandig ondernemer" | "Pensioen" | "159820" | "200000" | "500000" | "10/02/1989" | "90000" | "10/02/1978" | "85000" | "20000" | "500" | "400" | "1500" | "400" | "500" | "500" | "25000" | "10000" | "10/01/2015" | "50000" | | "Zelfstandig ondernemer" | "Zelfstandig ondernemer" | "100000" | "200120" | "500000" | "10/02/1989" | "90000" | "10/02/1978" | "85000" | "20000" | "500" | "400" | "1500" | "400" | "500" | "500" | "25000" | "10000" | "10/01/2015" | "50000" | | "Zelfstandig ondernemer" | "Overig" | "100000" | "200000" | "500000" | "10/02/1989" | "90000" | "10/02/1978" | "85000" | "20000" | "500" | "400" | "1500" | "400" | "500" | "500" | "25000" | "10000" | "10/01/2015" | "50000" | | "Overig" | "Vast dienstverband" | "100000" | "175900" | "500000" | "10/03/1989" | "90000" | "10/01/1978" | "85000" | "20000" | "500" | "400" | "1500" | "400" | "500" | "500" | "25000" | "10000" | "10/03/2015" | "50000" | | "Overig" | "Tijdelijk dienstverband" | "178220" | "200000" | "500000" | "10/02/1989" | "90000" | "10/02/1978" | "85000" | "20000" | "500" | "400" | "1500" | "400" | "500" | "500" | "25000" | "10000" | "10/01/2015" | "50000" | | "Overig" | "Pensioen" | "100000" | "200000" | "500000" | "10/02/1989" | "90000" | "10/02/1978" | "85000" | "20000" | "500" | "400" | "1500" | "400" | "500" | "500" | "25000" | "10000" | "10/01/2015" | "50000" | | "Overig" | "Zelfstandig ondernemer" | "101000" | "200000" | "500000" | "10/02/1989" | "90000" | "10/02/1978" | "85000" | "20000" | "500" | "400" | "1500" | "400" | "500" | "500" | "25000" | "10000" | "10/01/2015" | "50000" | | "Overig" | "Overig" | "100000" | "200000" | "500000" | "10/02/1989" | "90000" | "10/02/1978" | "85000" | "20000" | "500" | "400" | "1500" | "400" | "500" | "500" | "25000" | "10000" | "10/01/2015" | "50000" | In the first 8 years of my career I wrote an awful lot of horrible automation

“Cucumber of SpecFlow gebruiken zonder BDD is nutteloos” In the first 8 years of my career I wrote an awful lot of horrible automation

Wat hebben we gezien? Cucumber != keyword of data driven test tool BDD scenario’s beschrijven het ‘wat?’, niet het ‘hoe?’ Saving money > discuss ROI NEEDS REWORK Denk goed na over je testdatastrategie! Gedeelde uitgangssituatie? Background! Cucumber / SpecFlow zijn onafhankelijk van type test

Nog een paar dingen… Cucumber / SpecFlow zijn een waardevolle aanvulling… … zolang ze worden gebruikt als communicatiemiddel Saving money > discuss ROI NEEDS REWORK Denk goed na over het publiek van je scenario’s Er is altijd de optie om het niet (langer) te gebruiken

Meer weten? Cucumber School - https://cucumber.io/school Specification by Example (Gojko Adzic) – boek, training Saving money > discuss ROI NEEDS REWORK The Cucumber Book (2nd edition) – Matt Wynne, Aslak Hellesøy The Internet 

Contact Email: bas@ontestautomation.com Site: https://www.ontestautomation.com/training LinkedIn: https://www.linkedin.com/in/basdijkstra Twitter: @_basdijkstra