- March 8, 2016
- Posted by: AFourTech
- Category: Blogs
For any given project, the choice of test approaches or Test Strategy is one of the most essential and deciding factors in the success of the test effort along with the accuracy of the test plans and estimates prepared. Wikipedia gives the definition of Test Strategy as ‘an outline that describes the testing approach of the software development cycle.’ Simply put, strategy is something which seldom allows one to follow a methodical defined process and achieve the target.
WHAT IS TEST STRATEGY?
For starters, Test Strategy helps testers/testing team define the approach to test an application. This approach is what will eventually lead to an excellent quality of product which can be released to the end user/client. Test Strategy is expected to be ready/prepared in the design phase of the project or even earlier. This is done in order to discover any missing requirements and to define the testing scope and test coverage in a better and well organized manner. Test Strategy should not be confused with Test Plan. Test plan is derived from the Test Strategy devised. A project may have multiple Test Plans as per the project (small or big) but only one Test Strategy.
WHY IS TEST STRATEGY REQUIRED?
The purpose of a Test Strategy is to create an understanding of the overall targets, approach, tools and timing of test activities to be done. It should clarify the major challenges and tasks of the test project. A good Test Strategy should be easy to understand, specific to requirements, practically applicable and have achievable targets. Test team analyzes the requirements, writes the test strategy and reviews the plan with the project team.
The Test Strategy document provides a formal description of how a software product will be tested. It is developed for all levels of testing (unit, integration, system, manual, automation, performance etc.). This is done in order to eradicate any conflicts/confusions that may arise as the product moves into the next phases of its testing and release.
HOW TO PREPARE A TEST STRATEGY?
The main contents of a Test Strategy document include Business Goals, Quality objectives and their alignment with the business goals, Scope, Break down of test efforts into logical areas and sub-areas, Testing Approach and Methodologies, Test Automation Strategy, Testing Environments, Release criteria, Tools, Processes and Metrics, and Risk Mitigation techniques. Different types of Test Strategies have to be employed as per the project requirement. Commonly used Test Strategies are Analytical, Model-based, Methodical and Dynamic among others. The factors that contribute towards the selection of a type of Test Strategy should be Objectives of testing, Product that is under test, Risks involved and Business perspectives. Along with these factors, the schedule, budget and feature constraints of the project and the realities of the organization and its politics should also be considered before selecting a Test Strategy. Test Strategy is also heavily dependent on the SDLC model being used for software development.
AGILE TEST STRATEGY
With the advent of Agile methodology, preparing a Test Strategy has become a challenging task for the testing team as a whole. While all sprints cannot be accounted for in a Test Strategy due to time constraints, a high level Test Strategy provides a guideline for the agile teams. Typically this should include a Release Plan(or a Test Plan), Individual Sprints(which include estimation of the tasks, unit testing, integration testing, feature testing, manual/automation testing, non functional testing among others) and Release (which define the exit criterion for a project and final release and deployment). Most importantly, the agile Test Strategy should be prepared in such a manner that is easily adaptable to the progressive changing nature of the project.
Rarely does a project succeed without a well designed Test Strategy. The possibility of missing any test activity is very low when there is a proper Test Strategy in place. The key to a Test Strategy is to maintain the flexibility in the complete process and at the same time not changing the dynamics of the testing activity. This helps to achieve highest possible quality especially with rapidly evolving/changing environments.