BDD Lessons Learned
by Dave Haeffner
Monday, July 1, 13
Background & Primer
Monday, July 1, 13
• Cucumber
• Specification Workshops
• Selenium
• Continuous Integration
• A rabbit
Potent potables
Monday, July 1, 13
circa 2012/2013-ish BDD Implementation
Monday, July 1, 13
circa 2012/2013-ish
Introduced
Gherkin
Sold it, &
coached it
BDD Implementation
Monday, July 1, 13
circa 2012/2013-ish
ID’d,
autom., and
demoed
key
scenarios
Introduced
Gherkin
Sold it, &
coached it
BDD Implementation
Monday, July 1, 13
circa 2012/2013-ish
ID’d,
autom., and
demoed
key
scenarios
Introduced
Gherkin
Sold it, &
coached it
Dev
interest &
CI
Vacation
BDD Implementation
Monday, July 1, 13
circa 2012/2013-ish
ID’d,
autom., and
demoed
key
scenarios
Introduced
Gherkin
Sold it, &
coached it
Dev
interest &
CI
Vacation
BDD Implementation
Shambles & Initial Recovery
Gross gherkin, no new autom, & busted CI
CI notifications, standardized gherkin process
Monday, July 1, 13
circa 2012/2013-ish
ID’d,
autom., and
demoed
key
scenarios
Introduced
Gherkin
Sold it, &
coached it
Dev
interest &
CI
Vacation
BDD Implementation
Shambles & Initial Recovery
Gross gherkin, no new autom, & busted CI
CI notifications, standardized gherkin process
Churn
Monday, July 1, 13
circa 2012/2013-ish
ID’d,
autom., and
demoed
key
scenarios
Introduced
Gherkin
Sold it, &
coached it
Dev
interest &
CI
Vacation
BDD Implementation
Shambles & Initial Recovery
Gross gherkin, no new autom, & busted CI
CI notifications, standardized gherkin process
Churn
Churn
Monday, July 1, 13
circa 2012/2013-ish
ID’d,
autom., and
demoed
key
scenarios
Introduced
Gherkin
Sold it, &
coached it
Dev
interest &
CI
Vacation
BDD Implementation
Shambles & Initial Recovery
Gross gherkin, no new autom, & busted CI
CI notifications, standardized gherkin process
Churn
Churn
Autom. &
demo of
critical
funct.
Monday, July 1, 13
circa 2012/2013-ish
ID’d,
autom., and
demoed
key
scenarios
Introduced
Gherkin
Sold it, &
coached it
Dev
interest &
CI
Vacation
BDD Implementation
Shambles & Initial Recovery
Gross gherkin, no new autom, & busted CI
CI notifications, standardized gherkin process
Churn
Churn
Autom. &
demo of
critical
funct.
Renewed
Dev
interest in
automation
Monday, July 1, 13
circa 2012/2013-ish
ID’d,
autom., and
demoed
key
scenarios
Introduced
Gherkin
Sold it, &
coached it
Dev
interest &
CI
Vacation
BDD Implementation
Shambles & Initial Recovery
Gross gherkin, no new autom, & busted CI
CI notifications, standardized gherkin process
Churn
Churn
Autom. &
demo of
critical
funct.
Renewed
Dev
interest in
automation
Building
Blocks
Monday, July 1, 13
circa 2012/2013-ish
ID’d,
autom., and
demoed
key
scenarios
Introduced
Gherkin
Sold it, &
coached it
Dev
interest &
CI
Vacation
BDD Implementation
Shambles & Initial Recovery
Gross gherkin, no new autom, & busted CI
CI notifications, standardized gherkin process
Churn
Churn
Autom. &
demo of
critical
funct.
Renewed
Dev
interest in
automation
Building
Blocks
Training
Monday, July 1, 13
circa 2012/2013-ish
ID’d,
autom., and
demoed
key
scenarios
Introduced
Gherkin
Sold it, &
coached it
Dev
interest &
CI
Vacation
BDD Implementation
Shambles & Initial Recovery
Gross gherkin, no new autom, & busted CI
CI notifications, standardized gherkin process
Churn
Churn
Autom. &
demo of
critical
funct.
Renewed
Dev
interest in
automation
Building
Blocks
Training
Prod. like
env’s &
Spec.
Workshops
Monday, July 1, 13
circa 2012/2013-ish
ID’d,
autom., and
demoed
key
scenarios
Introduced
Gherkin
Sold it, &
coached it
Dev
interest &
CI
Vacation
BDD Implementation
Shambles & Initial Recovery
Gross gherkin, no new autom, & busted CI
CI notifications, standardized gherkin process
Churn
Churn
Autom. &
demo of
critical
funct.
Renewed
Dev
interest in
automation
Building
Blocks
Training
Prod. like
env’s &
Spec.
Workshops
Staggered
automation
Monday, July 1, 13
circa 2012/2013-ish
ID’d,
autom., and
demoed
key
scenarios
Introduced
Gherkin
Sold it, &
coached it
Dev
interest &
CI
Vacation
BDD Implementation
Shambles & Initial Recovery
Gross gherkin, no new autom, & busted CI
CI notifications, standardized gherkin process
Churn
Churn
Autom. &
demo of
critical
funct.
Renewed
Dev
interest in
automation
Building
Blocks
Training
Prod. like
env’s &
Spec.
Workshops
Staggered
automation
Churn
Monday, July 1, 13
circa 2012/2013-ish
ID’d,
autom., and
demoed
key
scenarios
Introduced
Gherkin
Sold it, &
coached it
Dev
interest &
CI
Vacation
BDD Implementation
Shambles & Initial Recovery
Gross gherkin, no new autom, & busted CI
CI notifications, standardized gherkin process
Churn
Churn
Autom. &
demo of
critical
funct.
Renewed
Dev
interest in
automation
Building
Blocks
Training
Prod. like
env’s &
Spec.
Workshops
Staggered
automation
Churn
Cross-
browser
testing
implem.
Monday, July 1, 13
Some good questions
to ask yourself
Monday, July 1, 13
• How often does it need to be checked (e.g. how often does it
change)?
• How long does it take to test manually?
• How valuable is it (e.g. core functionality that is used heavily by our
users, used by a prominent user group, legal or political, etc.)?
• How risky is the feature (e.g. fundamental back-end changes,
complex architecture, large user facing impact)?
• What is the level of effort to automate (S, M, L, XL)?
• Does it involve look and feel?
Monday, July 1, 13
• Where does the business logic live?
• How is it architected?
• What kind of test coverage exists already?
Monday, July 1, 13
BDD Lessons Learned
• Writing good gherkin is difficult
• If you plan to change behavior, change one
thing at a time
• Top down doesn’t matter as much as
bottom up
• Ask good questions
Monday, July 1, 13
Stay in touch!
http://sohelpfulme.com/tourdedave
Monday, July 1, 13
ElementalSelenium.com
Monday, July 1, 13

Bdd lessons-learned