def test = new BDDMadeEasy(Selenium,EasyB,Groovy)
Rajiv Narula
www.rajivnarula.com
About you...
Java ?
Groovy ?
BDD ?
EasyB ?
Agenda
BDD
In action
Interruptions...solicited
What is BDD ?
A little bit of historyDan North
“How will the software behave under specific conditions ?”
Traditional documents
Requirement Specs
Functional Specs
Stories
Use Cases
Flow Charts
Many more…
The problem…
“How should the software behave under specific conditions ?”
BDD offers…A template for defining behavior
The templatePre-conditions
Steps
Expected behavior
An exampleGiven some precondition
When some action by the actor
Then some testable outcome is achieved
Another ExampleGiven some preconditionAnd some other preconditionWhen some action by the actorAnd some other actionAnd yet another actionThen some testable outcome is achievedAnd something else we can check happens too
easyB Scriptdescription "As simple as it gets"
scenario "Testing easyB setup",{
given "there is some precondition"
when "some steps are performed"
then "result can be validated"
}
Executable Requirements
What’s the big deal ?
Define the behavior of the software
The Three AmigosProduct Owner\BA
Developer
Tester
Old way-multiple documents
New way- singluar document
Collaboration
Business friendly
testing report
Tractability matrix
on steroids
Technologies
Groovy
easyB
Selenium
Groovy
Language for the JVM
Compiles to java byte-code
Excellent compatibility with Java
Syntax similar to Java
Wrap up
So what’s great about BDD- one more time ?
Alternate technologies Cucumber Jbehave Cuke4Duke RSPec
Questions ?
Follow-up
dannorth.net
easyB.org
groovy.codehaus.org
http://goo.gl/eQoqU (Bookmarks on Delicious)
www.rajivnarula.com
@rajivnarula