38
def test = new BDDMadeEasy(Selenium, EasyB,Groovy)

def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

Page 2: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

Rajiv Narula

www.rajivnarula.com

Page 3: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

About you...

Java ?

Groovy ?

BDD ?

EasyB ?

Page 4: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

Agenda

BDD

In action

Interruptions...solicited

Page 5: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

What is BDD ?

Page 6: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

A little bit of historyDan North

Page 7: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

“How will the software behave under specific conditions ?”

Page 8: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

Traditional documents

Page 9: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

Requirement Specs

Functional Specs

Stories

Use Cases

Flow Charts

Many more…

Page 10: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

The problem…

Page 11: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

“How should the software behave under specific conditions ?”

Page 12: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

BDD offers…A template for defining behavior

Page 13: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

The templatePre-conditions

Steps

Expected behavior

Page 14: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

An exampleGiven some precondition

When some action by the actor

Then some testable outcome is achieved

Page 15: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

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

Page 16: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

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"

}

Page 17: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

Executable Requirements

Page 18: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

What’s the big deal ?

Page 19: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

Define the behavior of the software

Page 20: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

The Three AmigosProduct Owner\BA

Developer

Tester

Page 21: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

Old way-multiple documents

Page 22: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

New way- singluar document

Page 23: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

Collaboration

Page 24: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

Business friendly

testing report

Page 25: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

Tractability matrix

on steroids

Page 26: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

Technologies

Groovy

easyB

Selenium

Page 27: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

Groovy

Page 28: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

Language for the JVM

Page 29: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

Compiles to java byte-code

Page 30: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

Excellent compatibility with Java

Page 31: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

Syntax similar to Java

Page 32: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)
Page 33: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

Wrap up

Page 34: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

So what’s great about BDD- one more time ?

Page 35: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

Alternate technologies Cucumber Jbehave Cuke4Duke RSPec

Page 36: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

Questions ?

Page 37: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)

Follow-up

dannorth.net

easyB.org

groovy.codehaus.org

http://goo.gl/eQoqU (Bookmarks on Delicious)

www.rajivnarula.com

@rajivnarula

[email protected]

Page 38: def test = new BDDMadeEasy(Selenium,EasyB,Groovy)