Software test strategy is about planning the testing activity in a software development cycle, It deals with test case creation and execution plan in an appropriate fashion. A best test strategy looks for maximum risk mitigation, optimal time to complete testing, best coverage and prioritizing of testing and optimal methods to perform software testing.
Maximum risk mitigation
Identification of areas which are more error prone, i.e. the development and testing team need to discuss with each other and identify the areas which require high attention and thorough testing to reduce the risk of compromising the quality of application under test. Understand the amount of risk that can incur by not testing the various functional areas, it can help to plan the testing at different levels of software development cycle. At times when there is less time to complete the testing, testers will scope only those functional cases which can avoid high risks.
There are different different types of risk mitigation strategies which could be adopted based on which would best suite for the development model and kind of application under test.
Best coverage and prioritizing of testing
It is responsibility of the tester to generate as many unique and optimal test cases to cover all the requirements and prioritize the cases.
There are several test management tools which can help to store requirements and test cases and analyze the coverage of test cases over requirements and risk analysis, which is also called as requirements traceability matrix. This helps to understand if all the requirements are covered and if there is any redundancy which could be avoided.
There should be a regular discussion between project managers, developers, testers and business analysts or the client to understand the plan and the approach of performing the test execution.
Optimal time to complete testing
Based on the understanding of the bug fixes, code changes and enhancements the developers, testers and project managers can get an understanding as which all areas are effected and need to be scoped. Even the design of test case scenario plays an important role as how effectively and quickly one can complete the testing.
For example:
Need to test if purchase order is successfully received on performing the receiving purchase order in the application under test.
There could be 2 ways of testing the above scenario, one is to create a purchase order and then receive or the the other way would be to copy an existing purchase order and perform the receive of purchase order. Here the later scenario is best as it needs less time to execute and yet validates the quality of the functionality to be tested.
Optimal methods to perform software testing
There are two methods to perform software testing, i.e. manual and automated testing. At the end of the test cycle, testers should have executed all the test cases at least once to make sure that no regressions are introduced due to bug fixes, enhancements, integration, code changes.
In case there is regular release of code and all the test cases need to be executed, it would be best to convert all feasible functional test cases to automated test cases, helps to complete the testing activity well in advance though the test coverage is huge.
The manual and automation testing teams need to discuss regularly to understand the which areas to be automated and which areas need to be tested manually, most of the times manual and automated testing are to be performed in tandem, i.e. when there is a necessity to test new features and to regression testing. to have an understanding on regression testing you can go through necessity of automation testing.
Request to share your queries or suggestions in the form of comments.
Hi,
Many time people ask about difference between what is contigency plan and what is mitigation plan.could you throw some light on it.
Regards,
Anil
Hi Anil,
Will write an article on the same and would keep you informed, thanks for your valuable suggestions.