Methodology is combination of methods which will help in
overall project management: the way it will be developed and tested. Testing
methodology is not about type of testing, it’s a roadmap which will be used
throughout SDLC and will decide development and testing phases. There are 5
popular Testing methodologies. Let’s have a quick look at what they are and how
they differ:
Waterfall
|
Spiral
|
Iterative
|
AGILE
|
||
Scrum
|
XP(Extreme Programming)
|
||||
Incremental:With
expeditious cycles catering to continuous change in Requirements. An agile
project can initially start with scrum and then, discover extreme programming
by following few engineering processes
|
|||||
Definition
|
Sequential:Next phase begins when previous phase completed
|
Incremental:This model considers risk at every step and
solutions are created. The whole development is done in Iterations and
product passes through all phases of this model in each iteration. Prototypes
are developed based on risk analysis which become basis for development
|
Multiple Iterations:Larger Project =Small parts using waterfall
approach.
|
1. Comparatively Longer sprints
2. Sprints are predefined and can't change 3. No particular engineering process 4. Roles:Scrum Master, Product Owner, Scrum Team |
1. Shorter sprints than
Scrum
2. Requirements can be swapped within a sprint 3. Continuous Integration Test Driven Development(TDD), focus on automated testing |
Phases
|
Requirements
Design Implementation Verification Maintenance |
Planning Phase
Risk Analysis Engineering Phase Evaluation Phase |
Each Iteration has following phases:
Requirements Analysis Design Phase & Test Planning Development Test execution Next phase and Iteration depend on results of previous phase and Iteration |
Each Iteration has following phases:
Sprint Planning Development Test execution Demo Deployment (Optional) But all phases go hand in hand Next Iteration depends on results of previous Iteration |
Each Iteration has following phases:
Planning Analysis Design & Development Test execution Wrapping Closure:Pilot Launch (Optional) But all phases go hand in hand Next Iteration depends on results of previous Iteration |
Approach
|
Requirements should be finalised before Test Planning starts.
Similarly, Testing team can move further only when previous phase is
completed
|
Planning Phase: Bussiness Requirement Specifications created
Risk Analysis:Risk is identified and possible solutions created.Prototype is created Engineering Phase:Software is developed and testing is done at the end Evaluation Phase:Customer evaluates output and project continues to next cycle |
Testing is done in each iteration so, lot of regression and
retesting is done. In Subsequent Iterations: A new requirement is added or
existing system in upgraded
|
Agile is a combination of team's roles, tasks and daily meetups.
Each Release is tested extensively and development is flexible and
provisioned to serve ever changing requirements
|
|
Advantages
|
1. Simple and easy to manage
2. Can be used if requirements are clearly defined and scope finalised |
1. Risk can be avoided
2. Documentation oriented 3. Software gets some shape in earlier cycles 4. New Requirements can be added in further stages |
Progress can be checked earlier and response from Testing is
available soon
|
1. Customer and Team interaction is more important than process
and tools
2. Customer satisfaction 3. Face to face meetings 4. Easy adaptation to changing requirements 5. Self managed teams |
|
Disadvantages
|
1. Next phase cant begin if previous phase is not complete
2. It can't be used when Requirements are unclear or can change |
1. Costly Model
2. Risk analysis dependent 3. High level skills proficiency needed for risk analysis |
1. Highly Communication Oriented
2. It still depends on waterfall approach for each Iteration so, Testing can begin only after development is complete for one iteration |
1. Sprint Planning is required in each Iteration
2. High level skills proficiency needed for development, programming and testing |