SlideShare a Scribd company logo
1 of 9
Hva er BDD?
“Kan du gi meg et eksempel?”
Hvordan ser et eksempel ut?
“Gitt at Bergen kommune har laget en forsendelse til Eirik Olsen
Og Eirik Olsen sitt fødselsnummer blir oppgitt
Når Bergen kommune sender forsendelsen
Så burde Eirik Olsen få beskjed om forsendelsen fra Altinn”
BDD fremmer forståelse
Når skal vi bruke BDD?
1. Alle kan det
2. Noen i teamet kan det
3. Noen i organisasjonen har gjort det før
4. Noen, men ingen vi kjenner, har gjort det før
5. Ingen har gjort det før
Hvordan bruker vi BDD?
0 Analysere hva løsningen skal gjøre
0 Lage tester og utvikle løsningen
Hva skal vi lage m/ 3 amigos
Cucumber

More Related Content

Viewers also liked

Creating an Online Marketing Strategy for Real Estate
Creating an Online Marketing Strategy for Real EstateCreating an Online Marketing Strategy for Real Estate
Creating an Online Marketing Strategy for Real EstateCKG International
 
Paid Search for E-commerce Marketing
Paid Search for E-commerce MarketingPaid Search for E-commerce Marketing
Paid Search for E-commerce MarketingThree Deep Marketing
 
Linux Revolution
Linux RevolutionLinux Revolution
Linux RevolutionEslam Diaa
 
Op Sy 03 Ch 00
Op Sy 03 Ch 00Op Sy 03 Ch 00
Op Sy 03 Ch 00 Google
 
Analysis of Rajeev Chandrashekhar's (Entrepreneur and MP) Social Media Clout
Analysis of Rajeev Chandrashekhar's (Entrepreneur and MP) Social Media CloutAnalysis of Rajeev Chandrashekhar's (Entrepreneur and MP) Social Media Clout
Analysis of Rajeev Chandrashekhar's (Entrepreneur and MP) Social Media CloutSiddarth Baliga
 
Data centerservicesconfigurationmanagement
Data centerservicesconfigurationmanagementData centerservicesconfigurationmanagement
Data centerservicesconfigurationmanagementAhmedElGamil
 
Niemiecka Biblioteka Narodowa
Niemiecka Biblioteka NarodowaNiemiecka Biblioteka Narodowa
Niemiecka Biblioteka NarodowaWeronika
 
ModRef'09: Gecode support for MCP
ModRef'09: Gecode support for MCPModRef'09: Gecode support for MCP
ModRef'09: Gecode support for MCPpwuille
 

Viewers also liked (18)

Creating an Online Marketing Strategy for Real Estate
Creating an Online Marketing Strategy for Real EstateCreating an Online Marketing Strategy for Real Estate
Creating an Online Marketing Strategy for Real Estate
 
Fisica MRUV
Fisica MRUVFisica MRUV
Fisica MRUV
 
Paid Search for E-commerce Marketing
Paid Search for E-commerce MarketingPaid Search for E-commerce Marketing
Paid Search for E-commerce Marketing
 
Linux Revolution
Linux RevolutionLinux Revolution
Linux Revolution
 
An Industry Created Around Google
An Industry Created Around GoogleAn Industry Created Around Google
An Industry Created Around Google
 
Op Sy 03 Ch 00
Op Sy 03 Ch 00Op Sy 03 Ch 00
Op Sy 03 Ch 00
 
Social Silver Surfer
Social Silver SurferSocial Silver Surfer
Social Silver Surfer
 
Peinture Sur Route
Peinture Sur RoutePeinture Sur Route
Peinture Sur Route
 
Scanner
ScannerScanner
Scanner
 
Analysis of Rajeev Chandrashekhar's (Entrepreneur and MP) Social Media Clout
Analysis of Rajeev Chandrashekhar's (Entrepreneur and MP) Social Media CloutAnalysis of Rajeev Chandrashekhar's (Entrepreneur and MP) Social Media Clout
Analysis of Rajeev Chandrashekhar's (Entrepreneur and MP) Social Media Clout
 
Data centerservicesconfigurationmanagement
Data centerservicesconfigurationmanagementData centerservicesconfigurationmanagement
Data centerservicesconfigurationmanagement
 
Local SEO Made Simple
Local SEO Made SimpleLocal SEO Made Simple
Local SEO Made Simple
 
Niemiecka Biblioteka Narodowa
Niemiecka Biblioteka NarodowaNiemiecka Biblioteka Narodowa
Niemiecka Biblioteka Narodowa
 
Eims Adzzoopres3
Eims Adzzoopres3Eims Adzzoopres3
Eims Adzzoopres3
 
The Biosphere
The BiosphereThe Biosphere
The Biosphere
 
ModRef'09: Gecode support for MCP
ModRef'09: Gecode support for MCPModRef'09: Gecode support for MCP
ModRef'09: Gecode support for MCP
 
Ietc presentation
Ietc presentationIetc presentation
Ietc presentation
 
Cum Shot Inter Activ
Cum Shot Inter ActivCum Shot Inter Activ
Cum Shot Inter Activ
 

Gi meg et eksempel! Introduksjon til BDD

  • 1.
  • 3. “Kan du gi meg et eksempel?”
  • 4. Hvordan ser et eksempel ut? “Gitt at Bergen kommune har laget en forsendelse til Eirik Olsen Og Eirik Olsen sitt fødselsnummer blir oppgitt Når Bergen kommune sender forsendelsen Så burde Eirik Olsen få beskjed om forsendelsen fra Altinn”
  • 6. Når skal vi bruke BDD? 1. Alle kan det 2. Noen i teamet kan det 3. Noen i organisasjonen har gjort det før 4. Noen, men ingen vi kjenner, har gjort det før 5. Ingen har gjort det før
  • 7. Hvordan bruker vi BDD? 0 Analysere hva løsningen skal gjøre 0 Lage tester og utvikle løsningen
  • 8. Hva skal vi lage m/ 3 amigos

Editor's Notes

  1. BDD handler om å drive frem utvikling ved å fokusere på oppførsel. Analyseverktøy som hjelper oss å finne ut hva vi skal lage Gir dokumentasjon: hvordan oppfører systemet seg? Gir tester: oppfører systemet seg riktig? Hvis du skal bare lære én ting, følgende setning:
  2. Basis for å jobbe med BDD (og ATDD, specification by example osv) Dette, og et par spørsmål til gjør deg mulig å lage eksempler som kan skrives som tester.
  3. Eksempel er tekst (lese eksempel) Viktig: Ingen knapper. Ingen tabeller. Ingen statuser. Vanlig språk. Så enkelt som mulig, så naturlig som mulig. Dette er kjørbar kode btw. Se mer på dette senere. Hvorfor skal vi bruke BDD?
  4. Felles forståelse for det vi prøver å løse: eksempler er spesifikke. Færre misforståelser: alle kan forholde seg til enkle eksempler Oppførsel i fokus og er tilgjengelig i klartekst Verifikasjon: systemet virker som det skal Drive utvikling basert på oppførsel (utenfra inn-tenkning) Utfordrende å lage gode eksempler, gode språkkunnskaper viktig. (mer om dette senere) BDD egner seg ikke i en hvilken som helst situasjon.
  5. Oversikt over kompleksitet på oppgaver som skal løses. 1: innlysende, 5: ukjent, komplekst, kanskje mot kaotisk landskap. 3 og 4 er BDD-land. Ikke bruke til trivielle ting, ikke bruke for utforskning eller når utfallet er usikkert. Jo høyere tall, jo høyere risiko. Jobb for å få 5-ere ned mot 4 og 3, så kan BDD brukes.
  6. To separate deler: Analyse dreier seg om å ha samtaler for å finne ut hva vi skal lage. Tre roller som må være med på disse samtalene/workshopene: utvikler (teknisk kompetanse) tester (kan finne alle varianter og oppdage alle tingene de andre rollene ikke får med seg) domeneekspert fra forretningssiden (kan domenet og har riktig språk) Mål: få oversikt over hvilke evner (capabilities/features) et system skal ha prioritere røff rekkefølge på evner: velge én etablere regler for evne finne eksempler som viser reglene Ender opp med:
  7. Hvor mange regler har en evne? Mindre enn ti, helst 3-5. Eksempler kan dekke en regel fullstendig, flere regler. Kanskje en regel må ha flere eksempler. Dukker det opp usikkerhet eller konflikter? Lag spørsmål som forretningssiden kan avgjøre. Eksempler er tester. Denne type workshop: samme kategori som specification workshops. Ha workshop så nærmt utvikling som mulig. Fra workshop: helst direkte på utvikling.
  8. Finnes ulike rammeverk, jeg har brukt Cucumber. Feature: evne, tilsvarer grønne lappen. En featurefil inneholder alle eksemplene, som kalles scenario i Cucumber. Et ark ~= en featurefil Neste lag: knytte scenario opp mot API/domene: steg-definisjoner. Her settes alle tekniske detaljer opp, mapping mellom eksempel i klartekst og faktisk implementasjon. Step-defs kaller din kode. To eksempler avh. av tid: SvarUt: integrasjonstype tester i Java shouty: ruby: oppgave fra kurset jeg var på