Wednesday, April 29, 2015

An Insight into Testing Methodologies

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:

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
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
Planning Phase
Risk Analysis
Engineering Phase
Evaluation Phase
Each Iteration has following phases:
Requirements Analysis
Design Phase & Test Planning
Test execution
Next phase and  Iteration depend on results of previous phase and  Iteration
Each Iteration has following phases:
Sprint Planning
Test execution
Deployment (Optional)
But all phases go hand in hand
Next Iteration depends on results of previous Iteration
Each Iteration has following phases:
Design & Development
Test execution
Closure:Pilot Launch (Optional)
But all phases go hand in hand
Next Iteration depends on results of previous Iteration
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
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
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