TEST DRIVE ON 
DRIVEN DEVELOPMENT 
PROCESS 
By - Swathi Lakshmi Rajan
Agenda 
• What is Software Development Process? 
• Traditional development process 
• TDD 
• BDD 
• FDD 
• ATDD 
• Q & A session
What are we covering? 
• Test Driven Development 
• Behavior Driven Development 
• Feature Driven Development 
• Acceptance Test Driven Development
What are we not covering? 
• Model Driven Development 
• Domain Driven Development
Software Development process 
software development process or life cycle is a structure imposed on the 
development of a software product. 
ix phases involved
Traditional Development Process 
Copyrighted to: Manning Publications Co.
Common misconception: 
•TDD/ATDD is NOT about testing!!
Test Driven Development 
•Short development iterations 
•Based on requirements and unit test cases 
•Necessary code to pass the test cases 
•Refactor
Test Driven Development 
Source: http://joshldavis.com/
Benefits-Test Driven Development 
•Stability 
•Necessary code to pass the test cases 
•Refactor 
•Cut rework 
•Reduce bugs
Drawbacks-Test Driven Development 
•Programmers like to code, not to test 
•Big time investment 
•Additional Complexity 
•Effectiveness depends on developers
Behavior Driven Development 
•User stories 
•Ubiquitous language 
•Format: 
- Given[context] 
- When[event] 
- Then[outcome] 
•Power of: 
- Business Analyst, Developer, Tester
Examples-Behavior Driven Development 
A new frequent flyer 
starts off with Bronze 
status 
If she earns 300 
points, she 
becomes a Silver 
Frequent Flyer 
Silver 300 points 
Gold 700 points 
Platinum 1500 points
Examples-Behavior Driven Development
Benefits-Behavior Driven Development 
•Deliver more valuable software 
•Faster & Reliable releases 
•Reduced maintenance costs
Challenges- Behavior Driven Development 
•Writing good scenarios takes practice 
•Requires high business engagement and collaboration
Feature Driven Development 
•Short iterations 
•Developing by Feature 
•Color coded UML 
•Delivers frequent, tangible working results at all steps
Feature Driven Development 
Yellow – Person / Organization 
Blue – Description 
Green – Place/ Thing 
Pink - Time 
Source: Palmer, SR, Felsing, JM.2002.p.124
Feature Driven Development 
Source: Palmer, SR, Felsing, JM.2002.p.57
Feature Driven Development 
Source: Palmer, SR, Felsing, JM.2002.p.77, 80
Feature Driven Development 
Source: Palmer, SR, Felsing, JM.2002.p.85
Benefits-Feature Driven Development 
•Bigger Projects 
•More novice developers 
•Critical projects
Drawbacks-Feature Driven Development 
•Not as powerful on smaller projects 
•High reliance on chief programmer
Acceptance Test Driven Development 
•Crystallize acceptance criteria 
•Develop right product
Acceptance Test Driven Development 
Begin with the 
end in mind 
-Stephen R. Covey
Acceptance Test Driven Development 
“It's not enough to know how to do things 
You must know why you do them.” 
– Harvey Mackay
Acceptance Test Driven Development 
Source: David Starr
Acceptance Test Driven Development 
As an administrator, I want users creating 
accounts to be required to choose secure 
passwords so that their accounts cannot be 
hacked by someone using a password 
guessing program.
Acceptance Test Driven Development 
Copyrighted to: Quality Tree Software Inc.
Acceptance Test Driven Development 
Copyrighted to: Quality Tree Software Inc.
Benefits- Acceptance Test Driven 
Development 
•Avoid misunderstood requirements 
•Thorough product testing 
•Earlier defect detection
Drawbacks-Acceptance Test Driven 
Development 
•Time constraint 
•Getting entire team to follow the process 
•Project progress may be slow due to additional work
Q & A
To dive deeper: 
ttp://dannorth.net/introducing-bdd/ 
ttp://lizkeogh.com/ 
ttp://testobsessed.com/wp-content/uploads/2011/04/atddexample.pdf
Test drive on driven development process

Test drive on driven development process