Upload
daniel-kummer
View
2.310
Download
4
Embed Size (px)
DESCRIPTION
How to do behavior driven development with cucumber, generate easy readable and understandable test reports for your business.
Citation preview
BDD Testing with Cucumber
Dev.Talk. Zürich. 19. Sept 2012
BDD
Business• Domain
driven design
Technology• Test driven
development
Core Principles
1. Enough is enough do as much planning, analysis, and design as you need, but no more.
2. Deliver stakeholder value everything you do should deliver value or increase your ability to do so.
3. It’s a behavior everyone involved should have the same way of talking about the system and what it does.
describe the behavior of your software in a very understandable way
1 Describe Behaviour
2 Write step definition
3 Run and fail
4 Write code to make
step pass
5 Run and pass
Behavior
Feature: <short description> <story> <scenario 1> <scenario n>
WHO? As a <role>WHAT? I want <feature>WHY? so that <business value>
Scenario: <description>Given <preconditions, context>[And] <additional preconditions>When <action, behaviour>Then <postconditions>[And] <additional
postconditions>
Step definition
• Regex based• Reusable• Cucumber gives you copy & paste
code
Human Language support
# language: deFunktionalität: Addition Um dumme Fehler zu vermeiden möchte ich als Matheidiot die Summe zweier Zahlen gesagt bekommen
Szenariogrundriss: Zwei Zahlen hinzufügen Angenommen ich habe <Eingabe_1> in den Taschenrechner eingegeben Und ich habe <Eingabe_2> in den Taschenrechner eingegeben Wenn ich <Knopf> drücke Dann sollte das Ergebniss auf dem Bildschirm <Ausgabe> sein
Beispiele: | Eingabe_1 | Eingabe_2 | Knopf | Ausgabe | | 20 | 30 | add | 50 | | 2 | 5 | add | 7 | | 0 | 40 | add | 40 |
What about Java, .net, …?
Java: Cucumber-Jvm • Pure Java• Supports: Java, JavaScript, JRuby,
Scala, Python, Groovy, Ioke
.NET: IronRuby• Cucumber Wrapper for IronRuby
Testing possibilities…
• Selenium browser testing• Webrat acceptance testing• Interface testing (example mozo poc)• Many many more – just take a look at
the cucumber tutorials
More Information
https://github.com/cucumber/cucumber/wiki
http://behaviour-driven.org/