Tuesday, October 19, 2010

A good Test Strategy.

A good Test Strategy is one that increases the probability of finding a defect in a application with minimal number of tests and utilizing minimal number of resources required to test the application.

To start with Test strategy should be planned in a way so that it aligns with the goal of the project and corroborate to the organizational vision. Some of the traits a good Test strategy should have are (but not limited to) context driven, robustness, flexible, modular, scalable, measurable, easy to maintain and easy to use.

As test strategy for different tests may varied significantly due to the differences to the context, I’m listing some of the generic steps that may be used to define an effective test strategy:

  1. Identify Goals of the project and align test strategy accordingly
  2. Consider success criteria for a test strategy
  3. Define test strategy considering the context of test e.g. a test strategy for a BI application will differ from a transactional system or an embedded system
  4. Identify key areas for defining test strategy (with some specific questions answered by them)
       a. Identifying scope (what you need to test?)
       b. Test approach needed (how you would test application effectively?)
       c. Identify test environment (where you will test?)
       d. Identify tool required to test (how effective you can test?)
       e. Identify test data to be used (how much coverage you can ensure through test?)
       f. Identify test techniques to be used (how you can optimize your test?)
       g. Identify dependencies (what can delay or hamper your test?)
       h. Identify review strategy (Have you included everything that you intend to test?)
       i. Identify Entry/Exit Criteria (when you will start and stop the test?)
      (This might be more related to a test plan but it is an important aspect we should considered for test.)
       j. Any other specific test you want to add

  5. Review test strategy frequently to check if any update needed
  6. Execute tests according to defined test strategy

Following are the some of the problems that may occur and respective actions that can be taken to mitigate them:

1. Lack of support from management – Most of the time you may face this issue when either you are not provided enough bandwidth or tools to execute the agreed test strategy. You should communicate regularly with management and keep them in loop with the progress and highlight issues as and when they occur.

2. Lack of resource to execute the test strategy – Most of the time while defining test strategy you may have budgeted resource which are not available during the execution. Before committing on a test strategy you should have management agreement on required resources. If the resources are not available on time, you should escalate them immediately. This should also be added as a risk to make it visible in front of management.

3. Test strategy becomes obsolete – If you do not keep you test strategy updated with the new findings and changes you test strategy may become obsolete and will bring lack of interest in the team. It is very important you go through test strategy frequently and if you find any update is needed then you should update the same and communicate back to the team.

4. Incomplete Test strategy – If test strategy is not thought out well then it may be incomplete and may result in incomplete tests and wrong or inappropriate test result. You should keep this mind before circulating a test strategy.