SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
Morten Berg and Jakub Holy present:




          From user stories to
           acceptance tests
     What we learned about Specification by
                   example




                                      Iterate :: 1/2012
Quick fly-through
The Key Concerns of SbE

"Doing the right thing vs. doing the thing right."

                   Deliver true business value

                   Build shared understanding

                   (Evolve living documentation)
Shared understanding
in business terms
 Shared understanding + business terms and
                 relations
                                       (also less rework)


     Aligned business, SW, test models

Small change in business => small in SW, test

Much, much better maintainability, evolvability

               Build the right thing
Specify
The Key Patterns of SbE                                                      collaboratively

         Business                                              Scope
                                     derive
           goal                                               (UC, US)

                                                                  ilustrate
 1.   Derive scope from business goal
 2.   Specify collaboratively
 3.   Ilustrate using examples
 4.   Refine the specification                                    Key
 5.   Automate validation w/o changing specification
 6.   Validate frequently                                       examples
 7.   Evolve into a documentation system

                                                   automate w/o changing

                                          Often,
            Living                                             Executable
        documentation                                         specification
                                          evolve
                                                       http://specificationbyexample.com/key_ideas.html
Goal: Shared understanding
0. Clarify the goal
1. Build the shared understanding
   ○ Collaborative specification...
   ○ ... with examples
2. Keep it
   ○ Automate validation
3. Profit from it
   ○ Evolve into living documentation



                                      "The devil is in the details"
Example specification with examples
Title: Free book delivery
Objective: VIP users who order more books get
free shipping in Norway.

Examples:
Customer    Books    Country   Free shipping?

VIP         5        Norway    Y

VIP         4        Norway    N

VIP         10       Danmark   N

Regular     10       Norway    N
Sidenote: Automization
Customer   Books   Country   Free shipping?




class FreeBookDeliveryTest {
   void setCustomer(..) {..}
   void setBooks(..) {..}
   void setCountry(..) {..}
   boolean isFreeShipping() {..}
}
Showtime: Some real-world
specifications with example
What makes a good specification
with examples?
Good
● Good google-able title
● Clear objective - how to read the examples?
● Uses business language, unified terms
● Couple of key, focused examples, complete
Bad
● Script ("click here, find css class X, ...)
● Too detailed, too verbose, duplication
● Many examples (bad understanding, bad
  representation, more concepts mixed)
Show the poster!
Introducing SbE & Its Applicability
                                              9-15
                                              mo
Strategy: What's the team's top pain? Can
something from SbE fix it?               buzz-
                                         words

                                             Big
Examples:                                    Bang
● Lot of rework devs - testers => better shared
    understanding via Specification workshop
● Late feedback from testers => automate
Key: Introduce what you need, when you need
it, step by step. Shift culture first. It's easy!
Why to specify collaboratively?
can become
Examples                    Tests
  ela




                           rify
   bo




                           ve
    rat
        e




            Requirements
Single source of truth
Devs: Truth in code
Testers: Truth in test cases
Business analyst: Truth in documents

Use a single source of truth, avoid translation!

=> Start with business analyst
  Extend with examples from devs
  Extend with examples from testers
Random highlights
How to Make Acceptance Tests
Maintainable

1. Aligned business, software, and test models
   ○ => small change in one is small in the other too

2. Test under the surface level, if possible
   ○ Service > Servlet > UI - decide by risk vs. cost

3. Isolate tests from implementation by layers of
   test abstraction (What>Instrumentation>DSL)

See The Holy Java: How to Create Maintainable
Acceptance Tests (http://wp.me/pTHiC-tl)
Why Are We Doing This?
The Effect Maps Technique
Simple mind-mapping technique that incredibly
facilitates agile product design, planning,
prioritisation, and scoping.
                                          demo



Levels:
1. Why - the measurable business goal
2. Who can help/hinder achievel of the goal?
3. How can they do it?
4. What are the SW features or business
   activities that support it?
Techniques: Spec Workshop and
Diverge & Merge
Specification Workshop (½ day → 2w sprint)
  ● All: business + devs + testers
    ○ Business: What, why
    ○ Devs: What's technically possible/troublesome
    ○ Testers: How to test (break) this? Corner cases
  ● Surface hidden complexities, discover assumptions
  ● Build shared understanding (=> feedback exercise)
Diverge & Merge
  ● Groups of 3-5 work in parallel 10-20 min, then merge
    results
  ● More divergent => richer & better ideas
  ● Prevent paralysation by confining troublesome people
Acceptance Test Automation Tools
● FitNesse - wiki-based
  ○ Cons: Long learning, encourages copy&paste
  ○ Pros: Wiki, mature
● Concordion - new, HTML+JUnit
  ○ Pros: Contrary to FitNesse disables copying, quick to
    learn, integrated anywhere via JUnit, free-form
  ○ Cons: No live editing, no copying => not for 104 tests
● Cucumber - new, websites, Ruby, ecosystem
  ○ Pros: Simple text format (RegExp), easy2learn, web
  ○ Cons: Only test execution - other tools for the rest
● Robot Framework - tabular, keyword-driven
  ○ Pros: Great for testers w/o devs, libraries (SQL,..)
● Commercial - GreenPepper (Confluence), ...
The end is coming, run for your life!
Other Key Lessons
● When the time is short ... do communicate!
● The key benefit of SbE aside of improved
  communication is living documentation;
  regression tests are only a minor by-product
● (and many others :-))
Quiz
What have we learned today?
Resources
      Gojko Adzic: Specification by
      example, 2011
      - condensed experience of 50 highly
      successful teams

       Eric Evans: Domain Driven Design,
       2003

      Gojko Adzic: Agile product
      management using Effect Maps
      (paper)

Weitere ähnliche Inhalte

Was ist angesagt?

Jeu créativité
Jeu créativitéJeu créativité
Jeu créativitéCIPE
 
소프트웨어 테스팅
소프트웨어 테스팅소프트웨어 테스팅
소프트웨어 테스팅영기 김
 
Istqb 4-테스트설계기법-2015-3-배포
Istqb 4-테스트설계기법-2015-3-배포Istqb 4-테스트설계기법-2015-3-배포
Istqb 4-테스트설계기법-2015-3-배포Jongwon Lee
 
25 principes à suivre pour vous aider à gérer votre stress
25 principes à suivre pour vous aider à gérer votre stress25 principes à suivre pour vous aider à gérer votre stress
25 principes à suivre pour vous aider à gérer votre stressPhilippe CARON
 
An Introduction to Test Driven Development
An Introduction to Test Driven Development An Introduction to Test Driven Development
An Introduction to Test Driven Development CodeOps Technologies LLP
 
Workshop en techniques-de-négociation
Workshop en techniques-de-négociationWorkshop en techniques-de-négociation
Workshop en techniques-de-négociationLotfi Saibi
 
Gestion de conflit - DESC
Gestion de conflit - DESCGestion de conflit - DESC
Gestion de conflit - DESCNicolas Rigaux
 
Comment gérer le client au téléphone
Comment gérer le client au téléphoneComment gérer le client au téléphone
Comment gérer le client au téléphoneAbdellatif Elghali
 
Prioriser ses fonctionnalités avec le modèle de KANO
Prioriser ses fonctionnalités avec le modèle de KANOPrioriser ses fonctionnalités avec le modèle de KANO
Prioriser ses fonctionnalités avec le modèle de KANOThiga
 
Agile and ATDD the perfect couple
Agile and ATDD the perfect coupleAgile and ATDD the perfect couple
Agile and ATDD the perfect coupleStephen Tucker
 
Samir hamdi communication et gestion des conflits [mode de compatibilité]
Samir hamdi communication et gestion des conflits [mode de compatibilité]Samir hamdi communication et gestion des conflits [mode de compatibilité]
Samir hamdi communication et gestion des conflits [mode de compatibilité]gharbi wajdi
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven DevelopmentTung Nguyen Thanh
 
Atelier de formation sur les techniques d'animation (superanimateurs.com)
Atelier de formation sur les techniques d'animation (superanimateurs.com)Atelier de formation sur les techniques d'animation (superanimateurs.com)
Atelier de formation sur les techniques d'animation (superanimateurs.com)Sami Tahar Loucif
 
Introduction à itil v3
Introduction à itil v3Introduction à itil v3
Introduction à itil v3Renaud BROSSE
 
The Five Phases of Agile Maturity (Part 2): Phase 3 and 4
The Five Phases of Agile Maturity (Part 2): Phase 3 and 4The Five Phases of Agile Maturity (Part 2): Phase 3 and 4
The Five Phases of Agile Maturity (Part 2): Phase 3 and 4Cprime
 

Was ist angesagt? (20)

Jeu créativité
Jeu créativitéJeu créativité
Jeu créativité
 
Body language
Body languageBody language
Body language
 
소프트웨어 테스팅
소프트웨어 테스팅소프트웨어 테스팅
소프트웨어 테스팅
 
Istqb 4-테스트설계기법-2015-3-배포
Istqb 4-테스트설계기법-2015-3-배포Istqb 4-테스트설계기법-2015-3-배포
Istqb 4-테스트설계기법-2015-3-배포
 
25 principes à suivre pour vous aider à gérer votre stress
25 principes à suivre pour vous aider à gérer votre stress25 principes à suivre pour vous aider à gérer votre stress
25 principes à suivre pour vous aider à gérer votre stress
 
An Introduction to Test Driven Development
An Introduction to Test Driven Development An Introduction to Test Driven Development
An Introduction to Test Driven Development
 
Caractéristiques d'une équipe performante. les 4 rôles du manager. les styles...
Caractéristiques d'une équipe performante. les 4 rôles du manager. les styles...Caractéristiques d'une équipe performante. les 4 rôles du manager. les styles...
Caractéristiques d'une équipe performante. les 4 rôles du manager. les styles...
 
Workshop en techniques-de-négociation
Workshop en techniques-de-négociationWorkshop en techniques-de-négociation
Workshop en techniques-de-négociation
 
Gestion de conflit - DESC
Gestion de conflit - DESCGestion de conflit - DESC
Gestion de conflit - DESC
 
Comment gérer le client au téléphone
Comment gérer le client au téléphoneComment gérer le client au téléphone
Comment gérer le client au téléphone
 
Prioriser ses fonctionnalités avec le modèle de KANO
Prioriser ses fonctionnalités avec le modèle de KANOPrioriser ses fonctionnalités avec le modèle de KANO
Prioriser ses fonctionnalités avec le modèle de KANO
 
Methode hay
Methode hayMethode hay
Methode hay
 
Agile and ATDD the perfect couple
Agile and ATDD the perfect coupleAgile and ATDD the perfect couple
Agile and ATDD the perfect couple
 
Gérer le stress
Gérer le stressGérer le stress
Gérer le stress
 
Samir hamdi communication et gestion des conflits [mode de compatibilité]
Samir hamdi communication et gestion des conflits [mode de compatibilité]Samir hamdi communication et gestion des conflits [mode de compatibilité]
Samir hamdi communication et gestion des conflits [mode de compatibilité]
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
TDD and BDD and ATDD
TDD and BDD and ATDDTDD and BDD and ATDD
TDD and BDD and ATDD
 
Atelier de formation sur les techniques d'animation (superanimateurs.com)
Atelier de formation sur les techniques d'animation (superanimateurs.com)Atelier de formation sur les techniques d'animation (superanimateurs.com)
Atelier de formation sur les techniques d'animation (superanimateurs.com)
 
Introduction à itil v3
Introduction à itil v3Introduction à itil v3
Introduction à itil v3
 
The Five Phases of Agile Maturity (Part 2): Phase 3 and 4
The Five Phases of Agile Maturity (Part 2): Phase 3 and 4The Five Phases of Agile Maturity (Part 2): Phase 3 and 4
The Five Phases of Agile Maturity (Part 2): Phase 3 and 4
 

Andere mochten auch

Specification by Example
Specification by ExampleSpecification by Example
Specification by ExampleDeclan Whelan
 
Tutorial: Implementing Specification-By-Example with Gherkin
Tutorial: Implementing Specification-By-Example with GherkinTutorial: Implementing Specification-By-Example with Gherkin
Tutorial: Implementing Specification-By-Example with GherkinChristian Hassa
 
Specification by example and agile acceptance testing
Specification by example and agile acceptance testingSpecification by example and agile acceptance testing
Specification by example and agile acceptance testinggojkoadzic
 
Specification-By-Example with Gherkin
Specification-By-Example with GherkinSpecification-By-Example with Gherkin
Specification-By-Example with GherkinChristian Hassa
 
Specification by Example - Agile India 2015
Specification by Example - Agile India 2015Specification by Example - Agile India 2015
Specification by Example - Agile India 2015Ankur Sambhar
 
Practical way to experience of Specification by Example
Practical way to experience of Specification by ExamplePractical way to experience of Specification by Example
Practical way to experience of Specification by ExampleLarry Cai
 
Acceptance Test Driven Development and Robot Framework
Acceptance Test Driven Development and Robot FrameworkAcceptance Test Driven Development and Robot Framework
Acceptance Test Driven Development and Robot FrameworkSteve Zhang
 
An Overview of User Acceptance Testing (UAT)
An Overview of User Acceptance Testing (UAT)An Overview of User Acceptance Testing (UAT)
An Overview of User Acceptance Testing (UAT)Usersnap
 
watir-webdriver
watir-webdriverwatir-webdriver
watir-webdriverAmit DEWAN
 
Test Automation using Ruby, Watir, Rspec and AutoIT for GAMESCALE products te...
Test Automation using Ruby, Watir, Rspec and AutoIT for GAMESCALE products te...Test Automation using Ruby, Watir, Rspec and AutoIT for GAMESCALE products te...
Test Automation using Ruby, Watir, Rspec and AutoIT for GAMESCALE products te...Sla Va
 
BDD - beyond: Given, When and Then
BDD - beyond: Given, When and ThenBDD - beyond: Given, When and Then
BDD - beyond: Given, When and ThenRiverGlide
 
Specification by Example
Specification by ExampleSpecification by Example
Specification by ExampleSergey Shishkin
 
Specification-By-Example with Gherkin
Specification-By-Example with GherkinSpecification-By-Example with Gherkin
Specification-By-Example with GherkinChristian Hassa
 
Experience from specification_by_examples
Experience from specification_by_examplesExperience from specification_by_examples
Experience from specification_by_examplesLarry Cai
 
'An Evolution Into Specification By Example' by Adam Knight
'An Evolution Into Specification By Example' by Adam Knight'An Evolution Into Specification By Example' by Adam Knight
'An Evolution Into Specification By Example' by Adam KnightTEST Huddle
 
Serverless Code Camp Barcelona
Serverless Code Camp BarcelonaServerless Code Camp Barcelona
Serverless Code Camp Barcelonagojkoadzic
 
Specflow: Specification by Example
Specflow: Specification by ExampleSpecflow: Specification by Example
Specflow: Specification by ExampleSam Leach
 
How to become a 'specification by example' rocket scientist
How to become a 'specification by example' rocket scientistHow to become a 'specification by example' rocket scientist
How to become a 'specification by example' rocket scientistEquinox IT
 

Andere mochten auch (20)

Specification by Example
Specification by ExampleSpecification by Example
Specification by Example
 
Tutorial: Implementing Specification-By-Example with Gherkin
Tutorial: Implementing Specification-By-Example with GherkinTutorial: Implementing Specification-By-Example with Gherkin
Tutorial: Implementing Specification-By-Example with Gherkin
 
Specification by example and agile acceptance testing
Specification by example and agile acceptance testingSpecification by example and agile acceptance testing
Specification by example and agile acceptance testing
 
Specification-By-Example with Gherkin
Specification-By-Example with GherkinSpecification-By-Example with Gherkin
Specification-By-Example with Gherkin
 
Specification by Example - Agile India 2015
Specification by Example - Agile India 2015Specification by Example - Agile India 2015
Specification by Example - Agile India 2015
 
Practical way to experience of Specification by Example
Practical way to experience of Specification by ExamplePractical way to experience of Specification by Example
Practical way to experience of Specification by Example
 
Acceptance Test Driven Development and Robot Framework
Acceptance Test Driven Development and Robot FrameworkAcceptance Test Driven Development and Robot Framework
Acceptance Test Driven Development and Robot Framework
 
An Overview of User Acceptance Testing (UAT)
An Overview of User Acceptance Testing (UAT)An Overview of User Acceptance Testing (UAT)
An Overview of User Acceptance Testing (UAT)
 
watir-webdriver
watir-webdriverwatir-webdriver
watir-webdriver
 
BDD with F# at DDD9
BDD with F# at DDD9BDD with F# at DDD9
BDD with F# at DDD9
 
Test Automation using Ruby, Watir, Rspec and AutoIT for GAMESCALE products te...
Test Automation using Ruby, Watir, Rspec and AutoIT for GAMESCALE products te...Test Automation using Ruby, Watir, Rspec and AutoIT for GAMESCALE products te...
Test Automation using Ruby, Watir, Rspec and AutoIT for GAMESCALE products te...
 
BDD - beyond: Given, When and Then
BDD - beyond: Given, When and ThenBDD - beyond: Given, When and Then
BDD - beyond: Given, When and Then
 
Specification by Example
Specification by ExampleSpecification by Example
Specification by Example
 
Specification-By-Example with Gherkin
Specification-By-Example with GherkinSpecification-By-Example with Gherkin
Specification-By-Example with Gherkin
 
Experience from specification_by_examples
Experience from specification_by_examplesExperience from specification_by_examples
Experience from specification_by_examples
 
'An Evolution Into Specification By Example' by Adam Knight
'An Evolution Into Specification By Example' by Adam Knight'An Evolution Into Specification By Example' by Adam Knight
'An Evolution Into Specification By Example' by Adam Knight
 
Bdd training - v3
Bdd training - v3Bdd training - v3
Bdd training - v3
 
Serverless Code Camp Barcelona
Serverless Code Camp BarcelonaServerless Code Camp Barcelona
Serverless Code Camp Barcelona
 
Specflow: Specification by Example
Specflow: Specification by ExampleSpecflow: Specification by Example
Specflow: Specification by Example
 
How to become a 'specification by example' rocket scientist
How to become a 'specification by example' rocket scientistHow to become a 'specification by example' rocket scientist
How to become a 'specification by example' rocket scientist
 

Ähnlich wie Specification by example - course summary

Introduction to Test Driven Development
Introduction to Test Driven DevelopmentIntroduction to Test Driven Development
Introduction to Test Driven DevelopmentMichael Denomy
 
Bridging the communication gap
Bridging the communication gapBridging the communication gap
Bridging the communication gapGuillagui San
 
Essential practices and thinking tools for Agile Adoption
Essential practices and thinking tools for Agile AdoptionEssential practices and thinking tools for Agile Adoption
Essential practices and thinking tools for Agile AdoptionSteven Mak
 
Agile Testing 20021015
Agile Testing 20021015Agile Testing 20021015
Agile Testing 20021015Raghu Karnati
 
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...Abdelkrim Boujraf
 
Enabling Innovation using Lean Startup
Enabling Innovation using Lean StartupEnabling Innovation using Lean Startup
Enabling Innovation using Lean StartupLukas Fittl
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovSvetlin Nakov
 
CucumberSeleniumWD
CucumberSeleniumWDCucumberSeleniumWD
CucumberSeleniumWDVikas Sarin
 
Testing Sap: Modern Methodology
Testing Sap: Modern MethodologyTesting Sap: Modern Methodology
Testing Sap: Modern MethodologyEthan Jewett
 
The View - Lotusscript coding best practices
The View - Lotusscript coding best practicesThe View - Lotusscript coding best practices
The View - Lotusscript coding best practicesBill Buchan
 
Semiconductor Design Community
Semiconductor Design CommunitySemiconductor Design Community
Semiconductor Design CommunityAndre van de Geijn
 
Lean DevOps - Lessons Learned from Innovation-driven Companies
Lean DevOps - Lessons Learned from Innovation-driven CompaniesLean DevOps - Lessons Learned from Innovation-driven Companies
Lean DevOps - Lessons Learned from Innovation-driven CompaniesXavier Amatriain
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandDavid O'Dowd
 
BEHAVIOR-DRIVEN-DEVELOPMENT.pptx
BEHAVIOR-DRIVEN-DEVELOPMENT.pptxBEHAVIOR-DRIVEN-DEVELOPMENT.pptx
BEHAVIOR-DRIVEN-DEVELOPMENT.pptxCharleneMaedeleon2
 
Specification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber ImplementationSpecification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber ImplementationTechWell
 
ATDD in Practice
ATDD in PracticeATDD in Practice
ATDD in PracticeSteven Mak
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingUtkarsh Khare
 

Ähnlich wie Specification by example - course summary (20)

Introduction to Test Driven Development
Introduction to Test Driven DevelopmentIntroduction to Test Driven Development
Introduction to Test Driven Development
 
Bridging the communication gap
Bridging the communication gapBridging the communication gap
Bridging the communication gap
 
Essential practices and thinking tools for Agile Adoption
Essential practices and thinking tools for Agile AdoptionEssential practices and thinking tools for Agile Adoption
Essential practices and thinking tools for Agile Adoption
 
Agile Testing 20021015
Agile Testing 20021015Agile Testing 20021015
Agile Testing 20021015
 
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
Test-Driven Developments are Inefficient; Behavior-Driven Developments are a ...
 
Agile testing
Agile testingAgile testing
Agile testing
 
Enabling Innovation using Lean Startup
Enabling Innovation using Lean StartupEnabling Innovation using Lean Startup
Enabling Innovation using Lean Startup
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
CucumberSeleniumWD
CucumberSeleniumWDCucumberSeleniumWD
CucumberSeleniumWD
 
Testing Sap: Modern Methodology
Testing Sap: Modern MethodologyTesting Sap: Modern Methodology
Testing Sap: Modern Methodology
 
The View - Lotusscript coding best practices
The View - Lotusscript coding best practicesThe View - Lotusscript coding best practices
The View - Lotusscript coding best practices
 
Agile testing
Agile testingAgile testing
Agile testing
 
Semiconductor Design Community
Semiconductor Design CommunitySemiconductor Design Community
Semiconductor Design Community
 
Lean DevOps - Lessons Learned from Innovation-driven Companies
Lean DevOps - Lessons Learned from Innovation-driven CompaniesLean DevOps - Lessons Learned from Innovation-driven Companies
Lean DevOps - Lessons Learned from Innovation-driven Companies
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
 
BEHAVIOR-DRIVEN-DEVELOPMENT.pptx
BEHAVIOR-DRIVEN-DEVELOPMENT.pptxBEHAVIOR-DRIVEN-DEVELOPMENT.pptx
BEHAVIOR-DRIVEN-DEVELOPMENT.pptx
 
U Xmagic Agile Presentation
U Xmagic Agile PresentationU Xmagic Agile Presentation
U Xmagic Agile Presentation
 
Specification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber ImplementationSpecification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber Implementation
 
ATDD in Practice
ATDD in PracticeATDD in Practice
ATDD in Practice
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 

Mehr von Jakub Holy

Dissolving Technical Debt on Agile Projects - Smidig 2012
Dissolving Technical Debt on Agile Projects - Smidig 2012Dissolving Technical Debt on Agile Projects - Smidig 2012
Dissolving Technical Debt on Agile Projects - Smidig 2012Jakub Holy
 
Dealing With Legacy: The Real-World Experience
Dealing With Legacy: The Real-World ExperienceDealing With Legacy: The Real-World Experience
Dealing With Legacy: The Real-World ExperienceJakub Holy
 
Commit on day one thanks to vagrant & puppet!
Commit on day one thanks to vagrant & puppet!Commit on day one thanks to vagrant & puppet!
Commit on day one thanks to vagrant & puppet!Jakub Holy
 
Why Functional Programming and Clojure - LightningTalk
Why Functional Programming and Clojure - LightningTalkWhy Functional Programming and Clojure - LightningTalk
Why Functional Programming and Clojure - LightningTalkJakub Holy
 
Brief introduction into DbUnit Express, Q3/2011
Brief introduction into DbUnit Express, Q3/2011Brief introduction into DbUnit Express, Q3/2011
Brief introduction into DbUnit Express, Q3/2011Jakub Holy
 
Seminar Nastroje Jednotk Testovani
Seminar Nastroje Jednotk TestovaniSeminar Nastroje Jednotk Testovani
Seminar Nastroje Jednotk TestovaniJakub Holy
 

Mehr von Jakub Holy (6)

Dissolving Technical Debt on Agile Projects - Smidig 2012
Dissolving Technical Debt on Agile Projects - Smidig 2012Dissolving Technical Debt on Agile Projects - Smidig 2012
Dissolving Technical Debt on Agile Projects - Smidig 2012
 
Dealing With Legacy: The Real-World Experience
Dealing With Legacy: The Real-World ExperienceDealing With Legacy: The Real-World Experience
Dealing With Legacy: The Real-World Experience
 
Commit on day one thanks to vagrant & puppet!
Commit on day one thanks to vagrant & puppet!Commit on day one thanks to vagrant & puppet!
Commit on day one thanks to vagrant & puppet!
 
Why Functional Programming and Clojure - LightningTalk
Why Functional Programming and Clojure - LightningTalkWhy Functional Programming and Clojure - LightningTalk
Why Functional Programming and Clojure - LightningTalk
 
Brief introduction into DbUnit Express, Q3/2011
Brief introduction into DbUnit Express, Q3/2011Brief introduction into DbUnit Express, Q3/2011
Brief introduction into DbUnit Express, Q3/2011
 
Seminar Nastroje Jednotk Testovani
Seminar Nastroje Jednotk TestovaniSeminar Nastroje Jednotk Testovani
Seminar Nastroje Jednotk Testovani
 

Kürzlich hochgeladen

A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 

Kürzlich hochgeladen (20)

A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 

Specification by example - course summary

  • 1. Morten Berg and Jakub Holy present: From user stories to acceptance tests What we learned about Specification by example Iterate :: 1/2012
  • 3. The Key Concerns of SbE "Doing the right thing vs. doing the thing right." Deliver true business value Build shared understanding (Evolve living documentation)
  • 4. Shared understanding in business terms Shared understanding + business terms and relations (also less rework) Aligned business, SW, test models Small change in business => small in SW, test Much, much better maintainability, evolvability Build the right thing
  • 5. Specify The Key Patterns of SbE collaboratively Business Scope derive goal (UC, US) ilustrate 1. Derive scope from business goal 2. Specify collaboratively 3. Ilustrate using examples 4. Refine the specification Key 5. Automate validation w/o changing specification 6. Validate frequently examples 7. Evolve into a documentation system automate w/o changing Often, Living Executable documentation specification evolve http://specificationbyexample.com/key_ideas.html
  • 6. Goal: Shared understanding 0. Clarify the goal 1. Build the shared understanding ○ Collaborative specification... ○ ... with examples 2. Keep it ○ Automate validation 3. Profit from it ○ Evolve into living documentation "The devil is in the details"
  • 7. Example specification with examples Title: Free book delivery Objective: VIP users who order more books get free shipping in Norway. Examples: Customer Books Country Free shipping? VIP 5 Norway Y VIP 4 Norway N VIP 10 Danmark N Regular 10 Norway N
  • 8. Sidenote: Automization Customer Books Country Free shipping? class FreeBookDeliveryTest { void setCustomer(..) {..} void setBooks(..) {..} void setCountry(..) {..} boolean isFreeShipping() {..} }
  • 10. What makes a good specification with examples? Good ● Good google-able title ● Clear objective - how to read the examples? ● Uses business language, unified terms ● Couple of key, focused examples, complete Bad ● Script ("click here, find css class X, ...) ● Too detailed, too verbose, duplication ● Many examples (bad understanding, bad representation, more concepts mixed)
  • 12. Introducing SbE & Its Applicability 9-15 mo Strategy: What's the team's top pain? Can something from SbE fix it? buzz- words Big Examples: Bang ● Lot of rework devs - testers => better shared understanding via Specification workshop ● Late feedback from testers => automate Key: Introduce what you need, when you need it, step by step. Shift culture first. It's easy!
  • 13. Why to specify collaboratively?
  • 14. can become Examples Tests ela rify bo ve rat e Requirements
  • 15. Single source of truth Devs: Truth in code Testers: Truth in test cases Business analyst: Truth in documents Use a single source of truth, avoid translation! => Start with business analyst Extend with examples from devs Extend with examples from testers
  • 16.
  • 18. How to Make Acceptance Tests Maintainable 1. Aligned business, software, and test models ○ => small change in one is small in the other too 2. Test under the surface level, if possible ○ Service > Servlet > UI - decide by risk vs. cost 3. Isolate tests from implementation by layers of test abstraction (What>Instrumentation>DSL) See The Holy Java: How to Create Maintainable Acceptance Tests (http://wp.me/pTHiC-tl)
  • 19. Why Are We Doing This? The Effect Maps Technique Simple mind-mapping technique that incredibly facilitates agile product design, planning, prioritisation, and scoping. demo Levels: 1. Why - the measurable business goal 2. Who can help/hinder achievel of the goal? 3. How can they do it? 4. What are the SW features or business activities that support it?
  • 20. Techniques: Spec Workshop and Diverge & Merge Specification Workshop (½ day → 2w sprint) ● All: business + devs + testers ○ Business: What, why ○ Devs: What's technically possible/troublesome ○ Testers: How to test (break) this? Corner cases ● Surface hidden complexities, discover assumptions ● Build shared understanding (=> feedback exercise) Diverge & Merge ● Groups of 3-5 work in parallel 10-20 min, then merge results ● More divergent => richer & better ideas ● Prevent paralysation by confining troublesome people
  • 21. Acceptance Test Automation Tools ● FitNesse - wiki-based ○ Cons: Long learning, encourages copy&paste ○ Pros: Wiki, mature ● Concordion - new, HTML+JUnit ○ Pros: Contrary to FitNesse disables copying, quick to learn, integrated anywhere via JUnit, free-form ○ Cons: No live editing, no copying => not for 104 tests ● Cucumber - new, websites, Ruby, ecosystem ○ Pros: Simple text format (RegExp), easy2learn, web ○ Cons: Only test execution - other tools for the rest ● Robot Framework - tabular, keyword-driven ○ Pros: Great for testers w/o devs, libraries (SQL,..) ● Commercial - GreenPepper (Confluence), ...
  • 22. The end is coming, run for your life!
  • 23. Other Key Lessons ● When the time is short ... do communicate! ● The key benefit of SbE aside of improved communication is living documentation; regression tests are only a minor by-product ● (and many others :-))
  • 24. Quiz What have we learned today?
  • 25. Resources Gojko Adzic: Specification by example, 2011 - condensed experience of 50 highly successful teams Eric Evans: Domain Driven Design, 2003 Gojko Adzic: Agile product management using Effect Maps (paper)