Test Drive on Driven Development process
Software Development process
•A software development process or
life cycle is a structure imposed on the development of a software product.
•Six phases involved
- Requirements
- Design
- Development
- Testing
- Documentation
- Maintenance
Traditional Development Process
Common misconception:
•TDD/ATDD
is NOT about testing!!
Test Driven Development
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 3
Examples-Behavior Driven Development
A new frequent flyer starts off with
Bronze status.
If she earns 300 points, she becomes a
Silver Frequent Flyer.
BDD solution:
Scenario: New members should start out with Bronze status
Given: Jill Smith is not a frequent flyer member
When: she registers on the frequent flyer program
Then: she should have a Bronze status
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
Color coded UML
Yellow
– Person / Organization
Blue
– Description
Green
– Place/ Thing
Pink
- Time
Benefits-Feature Driven Development
•Bigger
Projects
•More
novice developers
•Critical
projects
Drawbacks-Feature Driven Development
Example:
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.
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










No comments:
Post a Comment