What is Behavior Driven Testing (BDT)? How does it differ from Behavior Driven Development? What tools support this kind of testing? The value proposition BDT offers. - Anand Bagmar
2. Case Study
• Multiple, long
running projects
• Legacy
applications
• Integrated
3. Testing Challenges
• No Automation - Long regression cycle
• Mini-Waterfall
• Huge cost of fixing defects
4. • No visibility into what is tested
• Outdated tests in QC
• Brittle
• Little / less value
• Maintenance nightmare
5.
6.
7. • Remove the ambiguity
• Same visibility for all
roles on the team
8.
9. Evolution of Test Frameworks
Behavior
Driven
Development
(BDD)
Optimized scripts
Record &
Playback
Core
Framework
10. Behavior Driven Development
(BDD)
• Specify the behavior looking at the system
from the outside.
• Collaborate and come up with a good and
clear set of Acceptance Criteria
11. Behavior Driven Development
(BDD)
• BDD is an extension of TDD
– primarily a development practice
• Developers translate the Acceptance Criteria
into product functionality
12. Expected Functionality:
The customer should be able to withdraw
money from his account
Given the account has balance of INR 5000
When the customer requests INR 1000
Then the account is debited by INR 1000
14. Given the account is in credit
And the dispenser contains cash
When the customer requests cash
Then ensure the account is debited
And ensure cash is dispensed
And ensure the card is returned
16. Given the account is in credit
And the card is valid
And the dispenser contains cash
When the customer requests cash
Then ensure the account is debited
And ensure cash is dispensed
And ensure the card is returned
19. What does this do for me?
• Identify the different user flows / behaviors
for the product
• Determine how the functionality under test
affects / impacts the above user flows
• Incrementally build up your user flows
20. What does this do for me?
• Provide visibility
• Automate the right set of tests
• Make your testing efforts more effective
25. Who is doing the action?
What is the business functionality?
Actions and verifications / assertions
happen implicitly
Long running tests
26. Current state
Testes running on Hudson / Jenkins Since 1st test was automated
Feature files 33
Scenarios 65
Smoke tests execution time 15 minutes
Regression tests execution time 45 minutes
Test case repository (manual + Cucumber .feature files with
automated) appropriate tagging
Project Management tool Mingle
28. Are you doing BDD or BDT?
Pattern Testing Type
The QA team does Test Automation along with BDT
other testing responsibilities.
The QA team focuses on defining acceptance BDD
criteria, doing manual / ad-hoc / exploratory
testing, etc. and the development team itself
will do Functional Test Automation.
The QA team focuses on defining acceptance BDD + BDT
criteria, doing manual / ad-hoc / exploratory
testing, etc. and pairs with the development
team to do Functional Test Automation.