BEHAVIOUR DRIVEN DEVELOPMENT & TESTDATA TESTEN DOE JE ALLEEN MET FICTIEVE DATA !!!!!!! Ronny Kennes
REDENEN OM PRODUCTIEDATA TE GEBRUIKEN…EN NIET! Het gerealiseerde nadeel Wat je niet kent, test je dus niet Kans op misbruik, lekken of hacken van productiedata is groter bij gebruik over meer omgevingen Meer mensen die niet de vereiste autorisatie hebben zien of gebruiken de persoonsgegevens: namelijk voor andere doelen dan waarvoor ze zijn verstrekt Grote risico’s op het gebied van privacy en security Het is alleen goedkoper zolang het niet mis gaat en het is gewoon verboden (Wbp) Het verwachte voordeel Je gebruikt productiedata omdat: je denkt dat je daarmee compleet bent; omdat het snel te realiseren is; omdat het goedkoop lijkt.
TOEPASSINGSBEREIK WET BESCHERMING PERSOONSGEGEVENS Verwerken = ieder werkwoord Wbp is van toepassing op verwerkingen van persoonsgegevens Alle digitale verwerkingen Analoge verwerkingen alleen voor zover opgenomen in een bestand Alle gegevens die direct of indirect herleidbaar zijn tot een natuurlijk persoon Gestructureerd geheel van gegevens over meerdere personen
BIJZONDERE PERSOONSGEGEVENS Extra streng regime voor gegevens betreffende godsdienst of levensovertuiging ras / etniciteit politieke gezindheid gezondheid seksuele leven lidmaatschap van een vakvereniging / vakbond strafrechtelijke gegevens en gegevens over “straatverboden” wettelijke nummers als burgerservicenummer (BSN) Verwerken is verboden, tenzij bij hoge uitzondering of specifieke toestemming
BEVEILIGINGSVERPLICHTING Artikel 13 Wbp geeft aan: Passende technische maatregelen Passende organisatorische maatregelen Richtsnoeren beveiliging van persoonsgegevens Publicatie door CBP (voorloper AP) in 2013 Beveiligingsbeleid moet voldoen aan standaarden als NEN/ISO 2700X Beleid aantoonbaar incorporeren in dagelijkse praktijk van de organisatie Controleren, evalueren en waar nodig bijstellen van de bestaande werkwijze (plan-do-check-act)
RISICO’S Bestaande boetes van euro naar euro Op overtreding van beginselen Wbp boetes tot euro of 10% van de jaaromzet direct indien opzettelijk of ernstige verwijtbare nalatigheid in andere gevallen eerst na bindende aanwijzing College Op niet naleven bindende aanwijzing boete tot euro of 10% jaaromzet Daarnaast nog steeds mogelijk: dwangsommen of bestuursdwang Betrokkene (persoon) onderneemt individueel (of collectief) actie Opvallend: Wbp erkent recht op immateriële schadevergoeding Reputatieschade! AP zoekt publiciteit bij handhaving
BEHAVIOUR DRIVEN DEVELOPMENT BETREK DE GEBRUIKER BIJ SOFTWAREONTWIKKELING
BDD & DOCUMENTATIE TESTEN DOE JE ALLEEN MET FICTIEVE DATA !!!!!!! Stelling Geautomatiseerde (acceptatie)testen leiden tot levendige documentatie. In tegenstelling tot separate documentatie in Word of Excel kan geautomatiseerde documentie niet out-of-sync raken met de echte “geteste” applicatie.
BDD & WIKIPEDIA Behaviour Driven development (BDD, letterlijk vertaald: gedragsgedreven ontwikkeling) is een manier van programmeren waarbij eerst het gedrag beschreven wordt alvorens men daadwerkelijk gaat programmeren.programmeren Het is een Agile-software-ontwikkeling techniek. Het was een antwoord op Test- driven development.Agile-software-ontwikkelingTest- driven development Het breidt TDD uit door test cases te schrijven die ook leesbaar zijn voor niet- programmeurs. In feite wordt mensentaal gecombineerd met een programmeertaal.
UserStory Ik als… Wil… Zodat… Voorbeeld: Tanden poetsen Ik als mens Wil mijn tanden poetsen Zodat ik geen tandpijn krijg Acceptatie Criteria Wanneer is de ontwikkeling van de Userstory klaar ? Samen met de gebruiker wordt dit vooraf afgestemd en bepaalt. BDD & USERSTORY TESTEN DOE JE ALLEEN MET FICTIEVE DATA !!!!!!!
BDD & GHERKIN Gherkin taal kan opgesteld worden door domein experts zoals gebruikers, product owners e.d Technologie testen zoals unit-tests zijn voor Developers om onderdelen van de code te “blijven” controleren. Gherkin Syntax: “Given when then”
UserStory (Feature) Ik als… Wil… Zodat… Voorbeeld: Tanden poetsen Ik als mens Wil mijn tanden poetsen Zodat ik geen tandpijn krijg Acceptatie Criteria Scenario Concrete voorbeelden van hoe het systeem/mens zich gedraagt in een specifieke geïsoleerde situatie. (Happy / Error / Edge cases) Test De daadwerkelijke code om het Scenario te testen BDD & ACCEPTATIE TESTEN DOE JE ALLEEN MET FICTIEVE DATA !!!!!!!
Acceptatie Criteria Scenario stappen (Given - When - Then) Gegeven: Setup initial state Wanneer: Perform action(s) Dan: Check end state BDD & ACCEPTATIE TESTEN DOE JE ALLEEN MET FICTIEVE DATA !!!!!!! UserStory (Feature) Ik als… Wil… Zodat… Voorbeeld: Tanden poetsen Ik als mens Wil mijn tanden poetsen Zodat ik geen tandpijn krijg
Scenario voorbeeld Gegeven dat er tandpasta op mijn borstel zit en Gegeven dat mijn mond open staat, Wanneer mijn boventanden zijn gepoetsten Wanneer mijn ondertanden zijn gepoetst, Dan tonen mijn tanden schoonen Dan voelt mijn adem frisen Dan is mijn tandvlees niet ontstoken. BDD & VOORBEELDEN TESTEN DOE JE ALLEEN MET FICTIEVE DATA !!!!!!! UserStory (Feature) Ik als… Wil… Zodat… Voorbeeld: Tanden poetsen Ik als mens Wil mijn tanden poetsen Zodat ik geen tandpijn krijg
Data gedreven Scenario voorbeeld Scenario Outline: Tand witheid Gegeven dat ik merk “ ” tandpasta gebruik Wanneer ik mijn tanden minuten poets Dan tonen mijn tanden wit. Examples: | merk| minuten | percentage| | Prodent| 2| 70| | Aquafresh| 3| 90| | Elmex| 1| 60| BDD & TESTDATA TESTEN DOE JE ALLEEN MET FICTIEVE DATA !!!!!!!
UnitTest geschreven als Given-When-Then // wordt met een specifieke dataset de juiste voornaam public void isVoornaamUitDeJuisteDataset(){ //Given dataset = Proces.SeriesA; //When person = demoVoornaam.process(dataset, query, person); //Then Assert.assertEquals( "Voornaam klopt niet met gegeven dataset“, new String("Annelies"), person.getFirstName() ); } BDD & UNITTEST TESTEN DOE JE ALLEEN MET FICTIEVE DATA !!!!!!!
Tools SeleniumTest Grafische Gebruikers Interface SoapUITest Webservices CucumberJava, Ruby, e.a. SpecFlow.Net DataFictieve Gegevens gebruiken !!! BDD & TOOLS
TESTDORP CONTACTGEGEVENS 06 – Kwaalburg NC Alphen-NBr +31 (0)