Test Analysis and Test Design represent part of the software testing foundation are key tools in the arsenal of a Test Manager and should be used each according to each test level. Proper Test Analysis and Test Design can help improve the overall quality of the product or project.
Software Test Analysis
Test Analysis Is process of analyzing the test basis (all documents from which the requirements of a component or system can be inferred) and defining test objectives. It covers WHAT is to be tested in the form of test conditions and can start as soon as the basis for testing is established for each test level.
It can be performed in parallel, integrated or iterative with Test Design. Test Analysis evaluates and reviews the test objectives and product risks, while it defines detailed measures and targets for success.
- Deciding on the level of detail should consider:
- The level of testing; level of detail and quality of the test basis
- System/software complexity and development life cycle used
- Project and product risk
- Relationship between test basis, what is to be tested and how is to be tested
- Test management tool used
- The level of maturity of the test process and the skills and knowledge of the test analysts
- The level at which Test Design and other test work products are specified
- Availability of stakeholders for consultation
Software Test Design
Test Design Is an item or event of a component or system that could be verified by one or more test cases (ex: function, transaction, feature, etc.). Covers HOW something is to be tested by identifying test cases with step wise elaboration for the test conditions (from Test Analysis) or from the test basis using techniques identified in the test strategy or plan.
This phase can start for a given Test Level once Test Conditions are identified and enough information is available to enable the production of Test Cases.
In other words, a test case is a set of input values, execution preconditions, expected results and execution post-conditions, developed for a particular objective or test condition, such as to exercise a particular program path or to verify compliance with a specific requirement.
Although it can be merged together with Test Analysis, for higher levels of testing it will remain a separate activity. It is likely that some tasks that normally occur during test implementation will be integrated into the test design process. Especially when using an iterative approach.
The coverage of test conditions by either creating low-level and high-level test cases can be optimized by the creation of test data starting in Test Design.
This article is based on the ISTQB Advanced Syllabus version 2012 and it also references the ISTQB Foundation Syllabus version 2018. It uses terminology definitions from the ISTQB Glossary version 3.2.