April 27, 2010

Test Strategy: How to create a powerful test strategy?

Let us begin with discussing what is a Test Strategy? As you know, Strategy means using the resources at one's disposal to achieve the desired objectives effectively. Test strategy means the plan that details how the testing objectives would be met effectively. See the video, How to create a  test strategy or read on.

Like any other strategy, the test strategy may be defined at different levels. You may have a test strategy at the organization level, at a program level or at a project level. The thing is that it may not be called a test strategy at the organization/ department/ program level; it may just exist as a management policy or as a part of a governance plan. At the project level, the test strategy may just be a part of the test plan. Further, depending on the nature of the project, the test strategy defined at the project level may or may not satisfy the test strategy outlined at a higher level.
The advantages of an effective test strategy are:
1. It mitigates the risks to objective testing.
2. It helps focus on different aspects of the system under test (by using distinct test phases such as unit testing, integrating testing and so on).
3. It provides clarity on the required people, procedures, tools and infrastructure.
4. It can be used to communicate the test approach to the various stakeholders (clients, project/ test managers, developers and testers) in the project.

How to create a powerful test strategy?

If you want to define a powerful test strategy for your project/ program/ organization, you should consider the following tips:
1. Before you define your test strategy, you should research the client(s) and the end user(s) with respect to the their needs and expectations from the application(s).
2. Your test strategy should aim at satisfying the test objectives alone.
3. Practically speaking, you may need to create two versions of your test strategy depending on the situation - one for communicating to all and a detailed/ tailored one for agreement with the key stakeholders.
4. You have the option of having different kinds of focus in different test phases. However, do not go over-board with defining too many test phases with overlapping effort. In other words, economize with the test phases. Define only the ones which you think are really required.
5. Your test strategy should be totally customized according to your specific situation. What has worked for other companies or what has worked for your company in the past may not apply to your current situation.
6. You should consider the required test environment while designing your test strategy. You should at least have one test environment that is the same as (or is a replica of) the production environment. Further, your test strategy should assume the most common test environment configurations for the most part.
7. Your test strategy should define the testing tools (test/ defect management systems and/ or automated test tools). It is best if you have evaluated the testing tools yourself. If not, base your decision on reliable (vendor-agnostic) and popular user reports.
8. You should look at any defined test processes (e.g. entry/ suspension/ resumption/ exit criteria for test, process to execute test cases and process to report a defect) to examine their feasibility in your situation. Identify the required test processes that will be re-used, modified or created from scratch.
9. Identify the data that will be recorded, measured, analyzed and reported to show the progress of testing.
10. Challenge all assumptions while you design your test strategy. Provide safeguards if any of the prior assumptions prove incorrect later.
11. Finally, remember that a powerful strategy is never static. Monitor the results obtained from the test strategy and do not hesitate in making the desired modifications to your test strategy.

11 comments:

  1. Very much useful.

    ReplyDelete
  2. This is the best definition for Test Strategy I have ever come across and many thanks.

    ReplyDelete
  3. Hi,
    It looks good. But, what I can see here is most of the content is from Test planning. Test Strategy should be at high level.

    Regards
    Shivanand B

    ReplyDelete
    Replies
    1. Exactly I go with you Shiva..

      Karthik K

      Delete
  4. Nice article!

    Completely agree that test strategy and test planing should be focused on end users.

    In my current development model, time to market is very less so deadlines for dev. and testing are usually very aggressive. Focus in this model is more towards quick test execution then towards automation and continuous integration. Test documentation is very minimal.

    ReplyDelete
  5. Thanks for nice article :)

    I agree with you that test strategy and test planing should be focused on end users

    But if your project is limited time and resources (EX: Fix-price project)and requirements is not good

    Do you think the above thing is correct? Pls give me your advices about this case :)

    Thanks

    ReplyDelete
    Replies
    1. Please note my response. The time and resources are always limited even if we don't see them as such. Additionally, in any project the testing scope is usually understood before the test strategy is designed. The test strategy HAS TO fulfill the scope given the constraints of time and resources.
      Let us say that it is practically impossible to devise a test strategy within the current time and resource constraints. In such a case, you should communicate to the project stakeholders and submit multiple test strategies, each with different testing scope and associated risks. Basically, the larger project team and stakeholders should decide the course of action. There is no use of a test strategy that WILL NOT meet the test objectives. Such a test strategy may well lead to false confidence and project failure.

      Remember, subsequent projects are often based on previous successful(of varying degrees of success) projects. It is better to think long-term than just to focus on a profitable project.

      Thank you for your comment.

      Delete
  6. Nice and informative blog! This type of information helps accelerate application delivery using the efficient testing method for global technology.
    If you want to know about QA outsourcing in US then you can click here.
    Thanks for sharing.

    ReplyDelete
  7. Nice and informative blog! This type of information aids in keeping the testing effort in the foreground as opposed to being an afterthought to development.
    If you want to know about Software testing company in Pune then you can click here.
    Thanks for sharing.

    ReplyDelete

Note: Only a member of this blog may post a comment.