SlideShare a Scribd company logo
1 of 42
Download to read offline
Behavior Driven Development




                                  by Aliaksandr Ikhelis, 2012
Friday, 30 November 12
Communication Issue
                           They are   They do not know
                            slow!..   what they need!..




Friday, 30 November 12
Communication Issue
                           They are   They do not know
                            slow!..   what they need!..




Friday, 30 November 12
Building communication bridge




Friday, 30 November 12
Building communication bridge




Friday, 30 November 12
Behavior Driven Development




Friday, 30 November 12
Behavior Driven Development

                         BDD is an evolution in the thinking
                         behind TDD & ATDP




Friday, 30 November 12
Behavior Driven Development

                                 BDD is an evolution in the thinking
                                 behind TDD & ATDP



                               Focus on delivery of the
                     prioritized and verifiable business value
                        by providing a common vocabulary




Friday, 30 November 12
Behavior Driven Development
                       Practices




Friday, 30 November 12
Behavior Driven Development
                       Practices
                         • Establish goals




Friday, 30 November 12
Behavior Driven Development
                       Practices
                         • Establish goals

                         • Draw out features using feature injection




Friday, 30 November 12
Behavior Driven Development
                       Practices
                         • Establish goals

                         • Draw out features using feature injection

                         • Involve stakeholders in the implementation
                           process through outside-in software
                           development




Friday, 30 November 12
Behavior Driven Development
                       Practices
                         • Establish goals

                         • Draw out features using feature injection

                         • Involve stakeholders in the implementation
                           process through outside-in software
                           development

                         • Use examples to describe behavior




Friday, 30 November 12
Behavior Driven Development
                       Practices
                         • Establish goals

                         • Draw out features using feature injection

                         • Involve stakeholders in the implementation
                           process through outside-in software
                           development

                         • Use examples to describe behavior

                         • Automate examples to provide quick
                           feedback and regression testing



Friday, 30 November 12
What BDD adds to TDD




Friday, 30 November 12
What BDD adds to TDD
                          • Test what an object does instead
                            of what it is




Friday, 30 November 12
What BDD adds to TDD
                          • Test what an object does instead
                            of what it is

                          • Design top-down, which is essential
                            for YAGNI – You Aren't Gonna Need It




Friday, 30 November 12
What BDD adds to TDD
                          • Test what an object does instead
                            of what it is

                          • Design top-down, which is essential
                            for YAGNI – You Aren't Gonna Need It

                          • Define acceptance criteria with the
                            customer and specify it in the
                            automated way, serve the living spec




Friday, 30 November 12
The BDD “Outside-In” cycle




Friday, 30 November 12
The BDD “Outside-In” cycle




Friday, 30 November 12
Gherkin: feature title and narrative
       Feature: Adding movies to the queue




Friday, 30 November 12
Gherkin: feature title and narrative
       Feature: Adding movies to the queue




Friday, 30 November 12
Gherkin: feature title and narrative
       Feature: Adding movies to the queue




Friday, 30 November 12
Gherkin: feature title and narrative
       Feature: Adding movies to the queue




Friday, 30 November 12
Describing Features with Cucumber




Friday, 30 November 12
Describing Features with Cucumber
                         Cucumber is a BDD tool that reads plain
                          text descriptions of application features with
                          example scenarios, which can be converted
                          into automation. The text is written in a
                          business readable domain language,
                          known as Gherkin.




Friday, 30 November 12
Describing Features with Cucumber
                         Cucumber is a BDD tool that reads plain
                          text descriptions of application features with
                          example scenarios, which can be converted
                          into automation. The text is written in a
                          business readable domain language,
                          known as Gherkin.




Friday, 30 November 12
Describing code with RSpec




Friday, 30 November 12
Describing code with RSpec
                         RSpec is a BDD framework, which is
                          used to write executable examples of
                          the expected behaviour of a small bit
                          of code in a controlled context.




Friday, 30 November 12
Describing code with RSpec
                               RSpec is a BDD framework, which is
                                used to write executable examples of
                                the expected behaviour of a small bit
                                of code in a controlled context.


               Code example:                    Output:




Friday, 30 November 12
Describing code with RSpec




Friday, 30 November 12
Example: story card




Friday, 30 November 12
Example: process flow




Friday, 30 November 12
Describing code with RSpec




Friday, 30 November 12
Testing quadrands




Friday, 30 November 12
Get the testing pyramid (un)fit
                BEFORE         AFTER




Friday, 30 November 12
Communications in the business org




Friday, 30 November 12
Communications in the business org




    1. Translate business goals into prioritized list of features




Friday, 30 November 12
Communications in the business org




    1. Translate business goals into prioritized list of features
    2. Trace required behavior within the team - drive design by
    behavior, build transparency, trust and confidence.




Friday, 30 November 12
Communications in the business org




    1. Translate business goals into prioritized list of features
    2. Trace required behavior within the team - drive design by
    behavior, build transparency, trust and confidence.

    3. Clarify business value and desired software behavior -
    ask “5 Why”, provide feedback, if application logic appears
    overcomplicated.

Friday, 30 November 12
Speaking the same language =
                      building together

             As an awesome team
             We want to build such a great product
             So that everyone loves it




                                              Given the investment of 22M of bricks
                                              When you place all the bricks properly
                                              Then the Microsoft Tower of Babel
                                               is visible to all people across the Globe




Friday, 30 November 12
Recommended reading




                                          by Aliaksandr Ikhelis, 2012
Friday, 30 November 12

More Related Content

Similar to Bdd intro for Microsoft, 29 Nov 2012

Mike Krieger, Instagram, Warm Gun 2012
Mike Krieger, Instagram, Warm Gun 2012Mike Krieger, Instagram, Warm Gun 2012
Mike Krieger, Instagram, Warm Gun 2012500 Startups
 
Webinar: MongoDB on the JVM
Webinar: MongoDB on the JVMWebinar: MongoDB on the JVM
Webinar: MongoDB on the JVMMongoDB
 
How BDD can save your agile?
How BDD can save your agile?How BDD can save your agile?
How BDD can save your agile?Laurent PY
 
How to be an agile programmer.
How to be an agile programmer.How to be an agile programmer.
How to be an agile programmer.Tsuyoshi Ushio
 
Solit 2013, Behaviour Driven Development, Ихелис Александр
Solit 2013, Behaviour Driven Development, Ихелис АлександрSolit 2013, Behaviour Driven Development, Ихелис Александр
Solit 2013, Behaviour Driven Development, Ихелис Александрsolit
 
Velocity Marketing and Growth Hacking, Nov '12
Velocity Marketing and Growth Hacking, Nov '12Velocity Marketing and Growth Hacking, Nov '12
Velocity Marketing and Growth Hacking, Nov '12Ken Rutsky
 
iOS Prototyping with Xcode Storyboards
iOS Prototyping with Xcode StoryboardsiOS Prototyping with Xcode Storyboards
iOS Prototyping with Xcode StoryboardsKyle Oba
 
Brad Hauck - Better Wordpress Blogging Workshop - Breakout Session
Brad Hauck - Better Wordpress Blogging Workshop - Breakout SessionBrad Hauck - Better Wordpress Blogging Workshop - Breakout Session
Brad Hauck - Better Wordpress Blogging Workshop - Breakout SessionBrad Hauck
 
Morning with MongoDB Paris 2012 - Accueil et Introductions
Morning with MongoDB Paris 2012 - Accueil et IntroductionsMorning with MongoDB Paris 2012 - Accueil et Introductions
Morning with MongoDB Paris 2012 - Accueil et IntroductionsMongoDB
 
The Use of Open Source Javascript Libraries with CICS.
The Use of Open Source Javascript Libraries with CICS. The Use of Open Source Javascript Libraries with CICS.
The Use of Open Source Javascript Libraries with CICS. Matter of Fact Software
 
SEF for students 2012. Product Management vs. Project Management
SEF for students 2012. Product Management vs. Project ManagementSEF for students 2012. Product Management vs. Project Management
SEF for students 2012. Product Management vs. Project ManagementAnthony Marchenko
 
Interfaces Inteligentes para Android
Interfaces Inteligentes para AndroidInterfaces Inteligentes para Android
Interfaces Inteligentes para AndroidNelson Glauber Leal
 
Bridging the gap between business and it using cucumber
Bridging the gap between business and it using cucumberBridging the gap between business and it using cucumber
Bridging the gap between business and it using cucumberwoody huang
 
Custom Android Code Templates
Custom Android Code TemplatesCustom Android Code Templates
Custom Android Code Templatesmurphonic
 
Architecting large Node.js applications
Architecting large Node.js applicationsArchitecting large Node.js applications
Architecting large Node.js applicationsSergi Mansilla
 
NCDevCon2012_designing the mobile experience
NCDevCon2012_designing the mobile experienceNCDevCon2012_designing the mobile experience
NCDevCon2012_designing the mobile experienceDee Sadler
 

Similar to Bdd intro for Microsoft, 29 Nov 2012 (18)

Mike Krieger, Instagram, Warm Gun 2012
Mike Krieger, Instagram, Warm Gun 2012Mike Krieger, Instagram, Warm Gun 2012
Mike Krieger, Instagram, Warm Gun 2012
 
Webinar: MongoDB on the JVM
Webinar: MongoDB on the JVMWebinar: MongoDB on the JVM
Webinar: MongoDB on the JVM
 
Ultimate agilisttokyo
Ultimate agilisttokyoUltimate agilisttokyo
Ultimate agilisttokyo
 
How BDD can save your agile?
How BDD can save your agile?How BDD can save your agile?
How BDD can save your agile?
 
How to be an agile programmer.
How to be an agile programmer.How to be an agile programmer.
How to be an agile programmer.
 
Solit 2013, Behaviour Driven Development, Ихелис Александр
Solit 2013, Behaviour Driven Development, Ихелис АлександрSolit 2013, Behaviour Driven Development, Ихелис Александр
Solit 2013, Behaviour Driven Development, Ихелис Александр
 
Velocity Marketing and Growth Hacking, Nov '12
Velocity Marketing and Growth Hacking, Nov '12Velocity Marketing and Growth Hacking, Nov '12
Velocity Marketing and Growth Hacking, Nov '12
 
iOS Prototyping with Xcode Storyboards
iOS Prototyping with Xcode StoryboardsiOS Prototyping with Xcode Storyboards
iOS Prototyping with Xcode Storyboards
 
Brad Hauck - Better Wordpress Blogging Workshop - Breakout Session
Brad Hauck - Better Wordpress Blogging Workshop - Breakout SessionBrad Hauck - Better Wordpress Blogging Workshop - Breakout Session
Brad Hauck - Better Wordpress Blogging Workshop - Breakout Session
 
Morning with MongoDB Paris 2012 - Accueil et Introductions
Morning with MongoDB Paris 2012 - Accueil et IntroductionsMorning with MongoDB Paris 2012 - Accueil et Introductions
Morning with MongoDB Paris 2012 - Accueil et Introductions
 
The Use of Open Source Javascript Libraries with CICS.
The Use of Open Source Javascript Libraries with CICS. The Use of Open Source Javascript Libraries with CICS.
The Use of Open Source Javascript Libraries with CICS.
 
SEF for students 2012. Product Management vs. Project Management
SEF for students 2012. Product Management vs. Project ManagementSEF for students 2012. Product Management vs. Project Management
SEF for students 2012. Product Management vs. Project Management
 
Interfaces Inteligentes para Android
Interfaces Inteligentes para AndroidInterfaces Inteligentes para Android
Interfaces Inteligentes para Android
 
Bridging the gap between business and it using cucumber
Bridging the gap between business and it using cucumberBridging the gap between business and it using cucumber
Bridging the gap between business and it using cucumber
 
Custom Android Code Templates
Custom Android Code TemplatesCustom Android Code Templates
Custom Android Code Templates
 
Architecting large Node.js applications
Architecting large Node.js applicationsArchitecting large Node.js applications
Architecting large Node.js applications
 
NCDevCon2012_designing the mobile experience
NCDevCon2012_designing the mobile experienceNCDevCon2012_designing the mobile experience
NCDevCon2012_designing the mobile experience
 
Scrum Version 3
Scrum Version 3Scrum Version 3
Scrum Version 3
 

Recently uploaded

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 

Recently uploaded (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 

Bdd intro for Microsoft, 29 Nov 2012

  • 1. Behavior Driven Development by Aliaksandr Ikhelis, 2012 Friday, 30 November 12
  • 2. Communication Issue They are They do not know slow!.. what they need!.. Friday, 30 November 12
  • 3. Communication Issue They are They do not know slow!.. what they need!.. Friday, 30 November 12
  • 7. Behavior Driven Development BDD is an evolution in the thinking behind TDD & ATDP Friday, 30 November 12
  • 8. Behavior Driven Development BDD is an evolution in the thinking behind TDD & ATDP Focus on delivery of the prioritized and verifiable business value by providing a common vocabulary Friday, 30 November 12
  • 9. Behavior Driven Development Practices Friday, 30 November 12
  • 10. Behavior Driven Development Practices • Establish goals Friday, 30 November 12
  • 11. Behavior Driven Development Practices • Establish goals • Draw out features using feature injection Friday, 30 November 12
  • 12. Behavior Driven Development Practices • Establish goals • Draw out features using feature injection • Involve stakeholders in the implementation process through outside-in software development Friday, 30 November 12
  • 13. Behavior Driven Development Practices • Establish goals • Draw out features using feature injection • Involve stakeholders in the implementation process through outside-in software development • Use examples to describe behavior Friday, 30 November 12
  • 14. Behavior Driven Development Practices • Establish goals • Draw out features using feature injection • Involve stakeholders in the implementation process through outside-in software development • Use examples to describe behavior • Automate examples to provide quick feedback and regression testing Friday, 30 November 12
  • 15. What BDD adds to TDD Friday, 30 November 12
  • 16. What BDD adds to TDD • Test what an object does instead of what it is Friday, 30 November 12
  • 17. What BDD adds to TDD • Test what an object does instead of what it is • Design top-down, which is essential for YAGNI – You Aren't Gonna Need It Friday, 30 November 12
  • 18. What BDD adds to TDD • Test what an object does instead of what it is • Design top-down, which is essential for YAGNI – You Aren't Gonna Need It • Define acceptance criteria with the customer and specify it in the automated way, serve the living spec Friday, 30 November 12
  • 19. The BDD “Outside-In” cycle Friday, 30 November 12
  • 20. The BDD “Outside-In” cycle Friday, 30 November 12
  • 21. Gherkin: feature title and narrative Feature: Adding movies to the queue Friday, 30 November 12
  • 22. Gherkin: feature title and narrative Feature: Adding movies to the queue Friday, 30 November 12
  • 23. Gherkin: feature title and narrative Feature: Adding movies to the queue Friday, 30 November 12
  • 24. Gherkin: feature title and narrative Feature: Adding movies to the queue Friday, 30 November 12
  • 25. Describing Features with Cucumber Friday, 30 November 12
  • 26. Describing Features with Cucumber Cucumber is a BDD tool that reads plain text descriptions of application features with example scenarios, which can be converted into automation. The text is written in a business readable domain language, known as Gherkin. Friday, 30 November 12
  • 27. Describing Features with Cucumber Cucumber is a BDD tool that reads plain text descriptions of application features with example scenarios, which can be converted into automation. The text is written in a business readable domain language, known as Gherkin. Friday, 30 November 12
  • 28. Describing code with RSpec Friday, 30 November 12
  • 29. Describing code with RSpec RSpec is a BDD framework, which is used to write executable examples of the expected behaviour of a small bit of code in a controlled context. Friday, 30 November 12
  • 30. Describing code with RSpec RSpec is a BDD framework, which is used to write executable examples of the expected behaviour of a small bit of code in a controlled context. Code example: Output: Friday, 30 November 12
  • 31. Describing code with RSpec Friday, 30 November 12
  • 32. Example: story card Friday, 30 November 12
  • 34. Describing code with RSpec Friday, 30 November 12
  • 36. Get the testing pyramid (un)fit BEFORE AFTER Friday, 30 November 12
  • 37. Communications in the business org Friday, 30 November 12
  • 38. Communications in the business org 1. Translate business goals into prioritized list of features Friday, 30 November 12
  • 39. Communications in the business org 1. Translate business goals into prioritized list of features 2. Trace required behavior within the team - drive design by behavior, build transparency, trust and confidence. Friday, 30 November 12
  • 40. Communications in the business org 1. Translate business goals into prioritized list of features 2. Trace required behavior within the team - drive design by behavior, build transparency, trust and confidence. 3. Clarify business value and desired software behavior - ask “5 Why”, provide feedback, if application logic appears overcomplicated. Friday, 30 November 12
  • 41. Speaking the same language = building together As an awesome team We want to build such a great product So that everyone loves it Given the investment of 22M of bricks When you place all the bricks properly Then the Microsoft Tower of Babel is visible to all people across the Globe Friday, 30 November 12
  • 42. Recommended reading by Aliaksandr Ikhelis, 2012 Friday, 30 November 12