Aslak Hellesoy Executable User Stories R Spec Bdd

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    4 Favorites

    Aslak Hellesoy Executable User Stories R Spec Bdd - Presentation Transcript

    1. Behaviour-Driven Development Writing software that matters Aslak Hellesøy - Chief Scientist - BEKK
    2. Stakeholders Programmers Dual audience 2
    3. Origin and inspiration JBehave Test Driven FIT Dan North Development Ward Chris Matts Kent Beck Cunningham Example Driven Chelimsky, User Stories Development Hellesøy, Takita, Mike Cohn Brian Marick Astels, Baker Connextra Domain Driven Acceptance- Stories Design Test Driven Several Eric Evans Planning
    4. Software development is all about delivering business value 4
    5. What’s being used Source: CHAOS report
    6. Where errors are introduced Source: CHAOS report
    7. BDD: Business value 8
    8. Ubiqutous Language 10
    9. BDD User Stories Withdraw Cash Role As an Account Holder Operation I want to withdraw cash in an ATM So that I can get cash when the bank is closed 1 Business value
    10. Origin: Connextra
    11. Challenge: Common understanding of “Done” 13
    12. BDD Scenarios Given I have £200 in my account When I ask to withdraw £20 Then I should be given £20 And my balance should be £180 1 Business value
    13. ATDP Acceptance-Test Driven Planning Product Backlog Write Iteration Scenarios Planning Iteration N (end) Iteration N+1 (start)
    14. TDD Red 1 2 Write a Make the failing test pass test Green ? 3 Write a Refactor passing test
    15. Developers don’t know... • Where to start • What to test • What not to test • How much to test in one go • What to call tests • How to fix a broken test • That TDD is about design
    16. Outside-In 1 2 3 4 5
    17. Downloads Contributors 40,000 100 30,000 75 20,000 50 10,000 25 0 0 June 2007 February 2008 June 2007 February 2008 SVN commits RubyForge rank 3,313.00 40 2,484.75 30 1,656.50 20 828.25 10 0 0 June 2007 February 2008 June 2007 February 2008
    18. JRuby << RSpec
    19. RSpec consists of 2 parts Story Framework Example Framework
    20. RSpec User Stories Story: Log in As a Project contributor I want to log in So that I can see what projects I have access to Scenario: User provides wrong credentials Given I am on the login page When I log in with login nobody and password useless Then I should be informed that my password is incorrect And I should not see aslak.hellesoy on the page Scenario: User provides correct credentials Given I am on the login page When I log in with login aslak.hellesoy and password temporary Then I should see aslak.hellesoy on the page And I should have the opportunity to log out
    21. RSpec Examples require 'bowling' describe Bowling do before(:each) do @bowling = Bowling.new end it \"should score 0 for gutter game\" do 20.times { @bowling.hit(0) } @bowling.score.should == 0 end end
    22. Outside-In Story: Withdraw Money As an account holder I want to withdraw money 1 So that I can get cash when the bank is closed Scenario: Overdraft account Given an account with -1000 kr When I ask for 200 kr Given the balance should be -1000 kr 2 describe Bank do it \"should not be creatable with negative balance\" do lambda do 3 Bank.new(-9) end.should(raise_error(\"Negative balance\")) end 4 end 5
    23. Summary • As a <Role>, I want <Operation> So that <Business value> • Given <Known state>, When I <Action>, Then <Expected outcome> • Work Outside-in in the layer onion • Write scenarios and tests bottom up (start with outcome) • Tests are sentences
    24. References • http://behaviour-driven.org/ • http://dannorth.net/introducing-bdd/ • http://dannorth.net/whats-in-a-story/ • http://rspec.info/ • http://jtestr.codehaus.org/ • http://jruby.codehaus.org/ • http://blog.aslakhellesoy.com/

    + deimosdeimos, 2 years ago

    custom

    1815 views, 4 favs, 1 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 1815
      • 1809 on SlideShare
      • 6 from embeds
    • Comments 0
    • Favorites 4
    • Downloads 47
    Most viewed embeds
    • 6 views on http://www.soup.io

    more

    All embeds
    • 6 views on http://www.soup.io

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories