A test strategy serves as a crucial outline, detailing the testing approach throughout the software development cycle. Its primary purpose is to systematically connect high-level organizational objectives with concrete test activities, all from a quality assurance perspective. This comprehensive document ensures that all testing goals are thoroughly covered and understood by every stakeholder involved in the project. It's not a static document; rather,
it requires frequent review, challenges, and updates as both the organization and the product evolve over time.
Beyond outlining the testing approach, a test strategy also aims to harmonize various quality assurance stakeholders. This alignment covers critical aspects such as terminology, different test and integration levels, clearly defined roles and responsibilities, traceability, and resource planning. Essentially, it describes how potential product risks identified by stakeholders will be mitigated at the testing level, specifies the types of testing to be performed, and establishes the entry and exit criteria for these tests. These strategies are fundamentally built upon development design documents, primarily system design documents, though conceptual design documents may also be referenced.
Foundation in Design Documents and Feature Testing
The creation of a test strategy is deeply rooted in the software's design documents. These documents provide a detailed description of the functionality that the software is intended to enable in an upcoming release. For each distinct stage of development design, a corresponding test strategy must be developed. This ensures that every new feature set introduced during development is adequately tested, aligning the testing efforts directly with the intended functionality and design specifications.
This systematic approach guarantees that testing is not an afterthought but an integrated part of the development process. By linking test strategies to design documents, teams can proactively identify potential issues and ensure that the software meets its functional requirements from the earliest stages. This also helps in maintaining consistency between what is designed and what is ultimately delivered, contributing significantly to the overall quality and reliability of the software product.
Defining Roles, Responsibilities, and Environmental Needs
A well-structured test strategy clearly defines the roles and responsibilities of key personnel involved in the testing process. This includes the test leader, individual testers, and the project manager. While specific names may not be associated, the roles themselves must be articulated with precision at the project level. Testing strategies are subject to review by developers to ensure technical accuracy and by leads for all testing levels to confirm complete, non-overlapping coverage. Both the testing manager and development managers must approve the test strategy before any testing activities can commence, establishing a clear chain of command and accountability.
Environmental requirements form another vital component of the test strategy. This section specifies the operating systems that will be utilized for testing, along with necessary OS patch levels and security updates. For instance, a particular test plan might mandate the installation of Windows 8.1 as a prerequisite for testing. Clearly defining these environmental parameters ensures that testing is conducted in a consistent and controlled setting, minimizing variables that could impact test results and ensuring that the software functions correctly across specified platforms.
Managing Risks and Planning the Test Schedule
Any risks that could potentially impact the testing process must be meticulously listed within the test strategy, accompanied by their corresponding mitigation plans. Documenting these risks allows for their anticipation well in advance, enabling proactive measures to prevent their occurrence or to lessen their impact. Examples of such risks might include dependencies on coding completion by subcontractors or the capabilities of specific testing tools. This forward-thinking approach helps teams prepare for challenges and maintain project momentum.
The test schedule is another critical element, providing an estimation of the time required to complete the entire testing phase. This estimation must account for several factors: testers executing all test cases at least once, developers fixing any defects found, testers re-testing failed cases until they function correctly, and regression testing to ensure that fixes haven't inadvertently broken other parts of the software. The schedule should also detail the number of available testers and, if possible, assign test cases to each. Recognizing the inherent uncertainties in testing, planners should factor in extra time for contingent issues. A practical approach for new software is to double the initial testing schedule approximation, while for existing software, historical data from previous releases can inform more accurate estimates.

















