To be rationalised...
What is a strategy? Why does testing need one?
A strategy outlines what to plan, and how to plan it. A successful strategy is your guide through change, and provides a firm foundation for ongoing improvement. Unlike a plan, which is obsolete from the point of creation, a strategy reflects the values of an organisation - and remains current and useful.
When an organisation tests its products or its tools, it tries to compare them against its expectations and values. By its nature, testing introduces change as problems are identified and resolved. A test strategy is necessary to allow these two impulses to work together. Furthermore, testing can never be said to be 'complete', and a core skill in testing is the justified management of conflicting demands; without a strategy, these judgements will be inconsistent to the point of failure.
Software development is a creative process. A test strategy is a vital enabler to this process - keeping focus on core values and consistent decision-making to help achieve desired goals with best use of resource. A good strategy stands as a clear counter to reactive, counter-productive test approaches.
Examples and Templates
A test strategy is not a document. It is a framework for making decisions about value, and has strong links to the unique values of an organisation. It is part of the creative process. Although templates exist, most organisations and projects are poorly served by a one-size-fits-all approach to their specific goals. You may find templates useful on projects where the product to be tested can be created and marketed simply by following templates - but on other projects, they're dangerous.
I try to avoid using Test Strategy templates. Instead, I use my skills and experience to rapidly help your team arrive at an understanding of their shared goals and potential conflicts. From this, a strategy will be both obvious, and shared. If you have an existing, problematic strategy, I will suggest areas where it could be slimmed down, and identify aspects that have been missed.
Test strategies can cover a wide range of testing and business issues. While not a checklist, you might expect to see some of the following in your own strategy:
- values and decision-making framework
- approaches to risk assessment, costs and quality through the organisation
- test techniques, test data, test scope and test planning
- completion criteria and analysis
- test management, metrics and improvement
- skills, staffing, team structure and training
- test environment, change control and release strategy
- defect control, tracking and the approach to fixes
- re-tests and regression tests
- profiling and analysis for non-functional testing
- test automation and test tool assessment
Testing as a genuinely strategic part of software development
A strategic decision is one that opens up opportunities which are otherwise unapproachable - a strategic resource is the mechanism by which these opportunities are exploited.
Design, coding, and testing are the three key parts of software development. These are activities, not phases; they operate in parallel and are closely coupled. On a not-too-turbulent project, testing and defect resolution typically account for 25-35% of the final cost of development. Information produced by software testing is clearly an input to the overall organisation's strategic decisions about marketability and release - but testing can provide much more than this for the significant spend it absorbs.
To explore ways that testing can realise its strategic value to your organisation and your project, email jdl[at]workroom-productions.com, or call me on Skype.