Software Testing Strategies
Test Strategy and Test Approach
A test strategy provides a generalized description of the test process, usually at the product or organizational level. Common types of test strategies include:
This type of test strategy is based on an analysis of some factor (e.g., requirement or
risk). Risk-based testing is an example of an analytical approach, where tests are designed and prioritized based on the level of risk.
In this type of test strategy, tests are designed based on some model of some
required aspect of the product, such as a function, a business process, an internal structure, or a non-functional characteristic (e.g., reliability). Examples of such models include business process models, state models, and reliability growth models
This type of test strategy relies on making systematic use of some predefined set of
tests or test conditions, such as a taxonomy of common or likely types of failures, a list of
important quality characteristics, or company-wide look-and-feel standards for mobile apps or web pages
(or standard-compliant): This type of test strategy involves analyzing,
designing, and implementing tests based on external rules and standards, such as those
specified by industry-specific standards, by process documentation, by the rigorous identification and use of the test basis, or by any process or standard imposed on or by the organization
(or consultative): This type of test strategy is driven primarily by the advice, guidance, or
instructions of stakeholders, business domain experts, or technology experts, who may be
outside the test team or outside the organization itself.
This type of test strategy is motivated by a desire to avoid regression of existing capabilities. This test strategy includes reuse of existing testware (especially test cases and test data), extensive automation of regression tests, and standard test suites.
In this type of test strategy, testing is reactive to the component or system being tested, and the events occurring during test execution, rather than being pre-planned (as the preceding strategies are). Tests are designed and implemented, and may immediately be executed in response to knowledge gained from prior test results. Exploratory testing is a common technique employed in reactive strategies.
An appropriate test strategy is often created by combining several of these types of test strategies. For example, risk-based testing (an analytical strategy) can be combined with exploratory testing (a reactive
strategy); they complement each other and may achieve more effective testing when used together
While the test strategy provides a generalized description of the test process, the test approach tailors the test strategy for a particular project or release.
Factors to Consider
Risk management a major focus during testing. Choose a risk-based analytical strategy for a new app.
Test should satisfy the needs of stakeholders to succeed. If the objective is to look for as many defects as possible with less up-front time and effort invested, a dynamic strategy makes sense.
Consider the skills the testers possess and lack. A standard compliant strategy is a smart option when lacking skills and time in the team to create an approach.
If you have a well specified requirement go for an analytical strategy that is requirements-based.
Business considerations and strategy are often important. If using a legacy system as a model for a new one, one could use a model-based strategy.
At some instances, one may not only have to satisfy stakeholders, but regulators as well. In this case, one may require a methodical strategy which satisfies these regulators
1. Leave time for fixing
There should be time for fixing, re-testing, and regression testing, without which testing is futile.
2. Discourage passing the buck
Testing and fixing are all about collaboration. A strategy should be followed to report the bug. Make it a point not to shuffle the bug back and forth but just get it fixed if it need to be fixed.
3. Manual testing has to be exploratory
The use cases are good to begin the test but a manual test should attempt all unconventional way of exploring the product
4. Encourage clarity
The bug should be reported with all means to reproduce it and if possible a root cause analysis can be shared with developers
5. Test often
Test should be done often (weekly or bi-weekly during development. Frequent testing is considered the best approach.
Strategies in SW Testing
A healthy software testing or QA strategy requires tests at all technology stack levels to ensure that every part, as well as the entire system, works correctly.