Aslak Hellesoy Executable User Stories R Spec Bdd

63 %
38 %
Information about Aslak Hellesoy Executable User Stories R Spec Bdd

Published on March 18, 2008

Author: deimos


Behaviour-Driven Development Writing software that matters Aslak Hellesøy - Chief Scientist - BEKK

Stakeholders Programmers Dual audience 2

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

Software development is all about delivering business value 4

What’s being used Source: CHAOS report

Where errors are introduced Source: CHAOS report

BDD: Business value 8

Ubiqutous Language 10

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

Origin: Connextra

Challenge: Common understanding of “Done” 13

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

ATDP Acceptance-Test Driven Planning Product Backlog Write Iteration Scenarios Planning Iteration N (end) Iteration N+1 (start)

TDD Red 1 2 Write a Make the failing test pass test Green ? 3 Write a Refactor passing test

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

Outside-In 1 2 3 4 5

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

JRuby << RSpec

RSpec consists of 2 parts Story Framework Example Framework

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

RSpec Examples require 'bowling' describe Bowling do before(:each) do @bowling = end it quot;should score 0 for gutter gamequot; do 20.times { @bowling.hit(0) } @bowling.score.should == 0 end end

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 quot;should not be creatable with negative balancequot; do lambda do 3 end.should(raise_error(quot;Negative balancequot;)) end 4 end 5

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

References • • • • • • •

Add a comment

Related pages

Aslak Hellesøy

Cucumber was designed around the core principles of BDD, ... Given the user "Aslak" has an account When he ... Scenarios in User Stories by ...
Read more

Aslak Hellesoy Person-Info

Aslak Hellesoy Person-Info (Ich bin Aslak Hellesoy) Matt Wynne Cucumber Book Development for Testers RSpec Agile Behaviour-Driven Development Ian Dees ...
Read more

The Pragmatic Bookshelf | The RSpec Book

... Cucumber, and Friends, by: David Chelimsky, Dave Astels, Zach Dennis, Aslak ... executable tests that bring users ... It’s not just TDD and BDD, ...
Read more

Bdd - Guide to Agile Practices

Bdd Definition. BDD ... to each proposed User Story, ... portion of "functional documentation" in the form of User Stories augmented with executable ...
Read more

SpecFlow - Cucumber for .NET

... (BDD) Binding business ... SpecFlow uses the official ... Specification by Example by Gojko Adzic The Cucumber Book by Matt Wynne and Aslak Hellesoy;
Read more

Behavior-driven development - Wikipedia, the free encyclopedia

These DSLs convert structured natural language statements into executable ... developed by Aslak Hellesøy. Principles of BDD ... user story should, in ...
Read more