The question of how to build a testing environment is dependent upon the test plan and the test strategy. Both documents are immensely important to ensuring the quality of your testing processes – and thus, your end product. Together, these define not only the testing approach and testing environment, but also set the role for software testers.
The questions of what kind of testing to do and how much testing is enough are influenced by a variety of factors including project size and complexity. These factors collectively determine not only the extent of testing as well as testing resources, but also the testing environment. More often than not, the scope of testing is in part defined by the risk appetite of management who have to balance the risks of either too little testing (with the potential risks of the software not meeting the client's requirements), and too much testing (not meeting shareholder expectations due to higher costs & later release).
While there's some confusion as some use the terms test plan and test strategy interchangeably, in general test strategy is part of the test plan. The test plan is used to define the scope and focus of testing, dealing with topics such as the coverage of testing (what features to test and what not to test), resource estimation and management, and test scheduling.
Test strategy, on the other hand, refers to the document that outlines the testing approach to be followed. These guidelines help achieve the objectives defined in the test plan. The approach outlined in the test strategy involves testing objectives, test environment (including test automation tools), and risk analysis.
Testing strategy: Role of the Testers and Testing Objectives
The first step to building a testing environment is to determine the role of the testers and testing objectives, but it also requires management to make decisions on the following areas:
- A clear testing role
- Testing Policy (based on testing plan, defines what will be included in testing processes and communicates the role of testing to interested parties)
- Software Testing Support
- Methodology, processes and tools for testing
- Location & organization of testing labs
- Resource allocation
Different test environments should be set up for functional testing, unit testing, etc. When planning your testing activites, you'll need to determine the number, role, and permissions of each user on your testing teams, as well as the software and hardware requirements. Similarly, requirements on test data have to be laid out, as well as backup and restore strategies for your testing data.
Last but not least, you will have to specify what testing tools (data management, test execution, and automated testing platforms) should be used during testing. In case of commercial tools, plan with the number of licenses available!
Testing strategy: Risk Management
Risk Management is also an important part of your testing strategy. Make sure you plan for any and all risks that might come up during testing, and define a mitigation plan.
In addition, the risks associated with managements decisions with regards to the above points can also result in a product that is not up to specifications. These risks include:
- Insufficient time and budget
- Inadequate test processes
- Software design failures
- Not meeting clients requirements
- Data issues
Testing strategy: Customer Requirements
In essence, the general purpose of testing is to see if the delivered software meets general customer requirements of product quality, reliability, and safety (if applicable). Specifically:
- Does the software meet industry standards (compliance)
- Software reliability (service level requirements)
- Tests to ensure ease of use (UX testing)
- Operation & maintenance testing
- Integration points fit requirements
- Performance meets expectations
- Complexity of deployment is manageable
- Access control meets customers needs
Throughout every phase of the SDLC testing verification activities are carried out. For each phase of testing, adequate documentation must be ensured. Documentation should be consistent with previously generated docs, and can be used to help the planning of testing activities. Complete transparency is key when it comes to quality testing activities.
All this planning and strategizing, let alone the actual process of testing, adds complexity to your SDLC. Managing this complexity across the lifecycle is greatly supported by codeBeamer ALM which also offers advanced QA & testing capabilities to facilitate the delivery of high quality products. To learn more, watch our webinar recording from Sep 2016 below, contact us with your questions, or start your free trial!