Presentation on theme: "2 A programmer is going out for a stroll one evening. His wife asks him to swing by the store and pick up a gallon of milk, and if they had eggs, to get."— Presentation transcript:
2 A programmer is going out for a stroll one evening. His wife asks him to swing by the store and pick up a gallon of milk, and if they had eggs, to get a dozen. He returned with twelve gallons of milk and said "They had eggs."
I’m Shawn My dog My Son My Daughter My Family I live here My Favorite Team Where I work Favorite Movie I a Marine Vet
The Problem with Agility
We are trying to “productize” our approaches...again.
8 Fundamentally agile is about approaching the work in a different way.
We need thinking business analysts
We’re not building a house...
We’re cleaning the house...
It’s NOT easy It is MUCH easier to slice up a backlog horizontally Developers want to work horizontally (efficiency argument)
Why vertical slices? It is about delivering working functionality as soon as possible. Feedback.
Why Behavior Driven Design Work is done from the perspective of the user Can slice vertically but narrowly Tests behavior of the system Executable requirements Need to move as fast as business Appropriate feedback loop Manual regression is EXPENSIVE
Acceptance Tests vs. Unit and Integration Tests
22 Acceptance Tests vs. Unit and Integration Tests Unit Tests confirm that you built it right (INSIDE OUT) Acceptance Tests confirm that you build the right thing (OUTSIDE IN)
23 Benefits Implementing changes more efficiently Quick feedback Higher product quality Less rework Better work alignment to priority (not just for agile teams)
Describes how software should behave in plain text Gherkin – Usable in many different human languages – Features can be written and understood by both non/technical project members Not a replacement for unit testing; it’s not a low level testing/spec framework Easy to execute in Continuous Integration environment (except MS TFS)
25 Technology Stack Cucumber - Domain Specification Ruby, JRuby or.NET - map cukes to application UI testing framework - Watir, Watin, Selenium, Capybara (headless), anything that supports WebDriver Open source STRONG community support
Features Who’s using the system? What are they doing? Why do they care? As a I want So that
Who’s Using the System What are they doing? Why do they care? Features
Scenarios Features are defined by one or more scenarios Sequence of steps thru the feature that exercises on path Use BDD style – given-when-then Scenario: …
Scenarios Given – Sets up preconditions, or context, for the scenario When – The action, or behavior, that we’re focused on Then – Checks post-conditions – Verifies that the right thing happened in the When stage And
Given - Sets up preconditions, or context, for the scenario When - The action, or behavior, that we’re focused on Then - Checks post-conditions and verifies that the right thing happened in the When stage Scenarios
Q&A For more information... cukes.info Gojko Adzic – cuke4ninja.com – Specification by Example https://github.com/aslakhellesoy/cucumber/wiki The Cucumber Book, Matt Wayne, Aslak Hellesøy: The Rspec Book, David Chelimsky: bookhttp://www.pragprog.com/titles/achbd/the-rspec- book user-stories-slicing-the-cake user-stories-slicing-the-cake