Behavior Driven Developmentby Aliaksandr Ikhelis, 2013 @Expedia.comSunday, 10 March 13
• BDD• Development workflow• Testing quadrants (types of tests)• Testing Pyramid• Stubbing in Functional Tests• Continuous ...
Communication IssueThey areslow!..They do not knowwhat they need!..Sunday, 10 March 13
Communication IssueThey areslow!..They do not knowwhat they need!..Sunday, 10 March 13
Building communication bridgeSunday, 10 March 13
Building communication bridgeSunday, 10 March 13
Behavior Driven DevelopmentBDD is an evolution in the thinkingbehind TDD & ATDPFocus on delivery of theprioritized and ver...
Behavior Driven DevelopmentPracticesSunday, 10 March 13
Behavior Driven DevelopmentPractices• Establish goalsSunday, 10 March 13
Behavior Driven DevelopmentPractices• Establish goals• Draw out features using feature injectionSunday, 10 March 13
Behavior Driven DevelopmentPractices• Establish goals• Draw out features using feature injection• Involve stakeholders in ...
Behavior Driven DevelopmentPractices• Establish goals• Draw out features using feature injection• Involve stakeholders in ...
Behavior Driven DevelopmentPractices• Establish goals• Draw out features using feature injection• Involve stakeholders in ...
What BDD adds to TDDSunday, 10 March 13
What BDD adds to TDD• Test what an object does insteadof what it isSunday, 10 March 13
What BDD adds to TDD• Test what an object does insteadof what it is• Design top-down, which is essentialfor YAGNI – You Ar...
What BDD adds to TDD• Test what an object does insteadof what it is• Design top-down, which is essentialfor YAGNI – You Ar...
The BDD “Outside-In” cycleSunday, 10 March 13
The BDD “Outside-In” cycleSunday, 10 March 13
Gherkin: feature title and narrativeFeature: Adding movies to the queueSunday, 10 March 13
Gherkin: feature title and narrativeFeature: Adding movies to the queueSunday, 10 March 13
Gherkin: feature title and narrativeFeature: Adding movies to the queueSunday, 10 March 13
Gherkin: feature title and narrativeFeature: Adding movies to the queueSunday, 10 March 13
Describing Features with CucumberCucumber is a BDD tool that reads plaintext descriptions of application features withexam...
© 2012 Expedia, Inc..Cucumber step definitionsSunday, 10 March 13
Describing code with RSpecRSpec is a BDD framework, which isused to write executable examples ofthe expected behaviour of ...
Describing code with RSpecDescribing code with RSpecSunday, 10 March 13
Example: process flowSunday, 10 March 13
Example: story cardSunday, 10 March 13
Describing code with RSpecDescribing code with RSpecSunday, 10 March 13
Benefits• Communication• Living Documentation• Traceability• Focus on behaviorSunday, 10 March 13
Sunday, 10 March 13
Testing quadrandsSunday, 10 March 13
AFTERBEFOREGet the testing pyramid (un)fitSunday, 10 March 13
© 2012 Expedia, Inc..Stubbing services/back-endsSunday, 10 March 13
© 2012 Expedia, Inc..• Spoofing the service (replicate behavior with mockedbackend + store data)• Prepared canned response...
© 2012 Expedia, Inc..Stage 1 Stage 2 Stage 3- Compile - Deploy - Stub- Package - isWorking acceptance- Unit tests - Stub- ...
© 2012 Expedia, Inc..Jenkins: trunk pipelineSunday, 10 March 13
© 2012 Expedia, Inc..•Start small•Keep it fast – set a limit•Fail Fast•Keep it green•Everyone is responsible for Quality•P...
Speaking the same language =building togetherAs an awesome teamWe want to build such a great productSo that everyone loves...
Do not forget to Have Fun!Sunday, 10 March 13
• alex.ikhelis@gmail.com• www.linkedin.com/in/aikhelis/Sunday, 10 March 13
Recommended readingby Aliaksandr Ikhelis, 2013Sunday, 10 March 13
Upcoming SlideShare
Loading in …5
×

Solit Jan 2013, Behaviour Driven Development, Ихелис Александр

1,064 views

Published on

Александр Ихелис, Лондон, видео выступления: https://www.youtube.com/watch?v=4VnCA1VIMlE

отсюда: http://www.slideshare.net/solit/bdd-intro-solitjan2013

«Behaviour Driven Development». Процессы, принципы разработки, бенефиты, примеры. Лекция. Development секция. Webinar из Лондона.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,064
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Solit Jan 2013, Behaviour Driven Development, Ихелис Александр

  1. 1. Behavior Driven Developmentby Aliaksandr Ikhelis, 2013 @Expedia.comSunday, 10 March 13
  2. 2. • BDD• Development workflow• Testing quadrants (types of tests)• Testing Pyramid• Stubbing in Functional Tests• Continuous IntegrationAgendaSunday, 10 March 13
  3. 3. Communication IssueThey areslow!..They do not knowwhat they need!..Sunday, 10 March 13
  4. 4. Communication IssueThey areslow!..They do not knowwhat they need!..Sunday, 10 March 13
  5. 5. Building communication bridgeSunday, 10 March 13
  6. 6. Building communication bridgeSunday, 10 March 13
  7. 7. Behavior Driven DevelopmentBDD is an evolution in the thinkingbehind TDD & ATDPFocus on delivery of theprioritized and verifiable business valueby providing a common vocabularySunday, 10 March 13
  8. 8. Behavior Driven DevelopmentPracticesSunday, 10 March 13
  9. 9. Behavior Driven DevelopmentPractices• Establish goalsSunday, 10 March 13
  10. 10. Behavior Driven DevelopmentPractices• Establish goals• Draw out features using feature injectionSunday, 10 March 13
  11. 11. Behavior Driven DevelopmentPractices• Establish goals• Draw out features using feature injection• Involve stakeholders in the implementationprocess through outside-in softwaredevelopmentSunday, 10 March 13
  12. 12. Behavior Driven DevelopmentPractices• Establish goals• Draw out features using feature injection• Involve stakeholders in the implementationprocess through outside-in softwaredevelopment• Use examples to describe behaviorSunday, 10 March 13
  13. 13. Behavior Driven DevelopmentPractices• Establish goals• Draw out features using feature injection• Involve stakeholders in the implementationprocess through outside-in softwaredevelopment• Automate examples to provide quickfeedback and regression testing• Use examples to describe behaviorSunday, 10 March 13
  14. 14. What BDD adds to TDDSunday, 10 March 13
  15. 15. What BDD adds to TDD• Test what an object does insteadof what it isSunday, 10 March 13
  16. 16. What BDD adds to TDD• Test what an object does insteadof what it is• Design top-down, which is essentialfor YAGNI – You Arent Gonna Need ItSunday, 10 March 13
  17. 17. What BDD adds to TDD• Test what an object does insteadof what it is• Design top-down, which is essentialfor YAGNI – You Arent Gonna Need It• Define acceptance criteria with thecustomer and specify it in theautomated way, serve the living specSunday, 10 March 13
  18. 18. The BDD “Outside-In” cycleSunday, 10 March 13
  19. 19. The BDD “Outside-In” cycleSunday, 10 March 13
  20. 20. Gherkin: feature title and narrativeFeature: Adding movies to the queueSunday, 10 March 13
  21. 21. Gherkin: feature title and narrativeFeature: Adding movies to the queueSunday, 10 March 13
  22. 22. Gherkin: feature title and narrativeFeature: Adding movies to the queueSunday, 10 March 13
  23. 23. Gherkin: feature title and narrativeFeature: Adding movies to the queueSunday, 10 March 13
  24. 24. Describing Features with CucumberCucumber is a BDD tool that reads plaintext descriptions of application features withexample scenarios, which can be convertedinto automation. The text is written in abusiness readable domain language,known as Gherkin.Sunday, 10 March 13
  25. 25. © 2012 Expedia, Inc..Cucumber step definitionsSunday, 10 March 13
  26. 26. Describing code with RSpecRSpec is a BDD framework, which isused to write executable examples ofthe expected behaviour of a small bitof code in a controlled context.Code example: Output:Sunday, 10 March 13
  27. 27. Describing code with RSpecDescribing code with RSpecSunday, 10 March 13
  28. 28. Example: process flowSunday, 10 March 13
  29. 29. Example: story cardSunday, 10 March 13
  30. 30. Describing code with RSpecDescribing code with RSpecSunday, 10 March 13
  31. 31. Benefits• Communication• Living Documentation• Traceability• Focus on behaviorSunday, 10 March 13
  32. 32. Sunday, 10 March 13
  33. 33. Testing quadrandsSunday, 10 March 13
  34. 34. AFTERBEFOREGet the testing pyramid (un)fitSunday, 10 March 13
  35. 35. © 2012 Expedia, Inc..Stubbing services/back-endsSunday, 10 March 13
  36. 36. © 2012 Expedia, Inc..• Spoofing the service (replicate behavior with mockedbackend + store data)• Prepared canned responses• Stubbing per browser sessionStubbing services/back-endsSunday, 10 March 13
  37. 37. © 2012 Expedia, Inc..Stage 1 Stage 2 Stage 3- Compile - Deploy - Stub- Package - isWorking acceptance- Unit tests - Stub- PMD (static analysis) integrationJenkins: trunk pipelineSunday, 10 March 13
  38. 38. © 2012 Expedia, Inc..Jenkins: trunk pipelineSunday, 10 March 13
  39. 39. © 2012 Expedia, Inc..•Start small•Keep it fast – set a limit•Fail Fast•Keep it green•Everyone is responsible for Quality•Pre-checkin Ant TargetsCI tipsSunday, 10 March 13
  40. 40. Speaking the same language =building togetherAs an awesome teamWe want to build such a great productSo that everyone loves itGiven the investment of 22M of bricksWhen you place all the bricks properlyThen the Solit Conference Toweris visible to all people across the GlobeSunday, 10 March 13
  41. 41. Do not forget to Have Fun!Sunday, 10 March 13
  42. 42. • alex.ikhelis@gmail.com• www.linkedin.com/in/aikhelis/Sunday, 10 March 13
  43. 43. Recommended readingby Aliaksandr Ikhelis, 2013Sunday, 10 March 13

×