Test Design Techniques
What are the different test design techniques?
Test design techniques are standards of test designing that allow the creation of systematic and widely accepted test cases. These techniques are based on the different scientific models and over the years of experience of many QA professionals.
The test design techniques can be broadly categorized into two parts – “Static test design technique” and “Dynamic test design technique”.
Static Test Design Techniques
The Static test design techniques are the testing techniques that involve testing without executing the code or the software application. So, basically static testing deals with Quality Assurance, involving reviewing and auditing of code and other design documents.
The various static test design techniques can be further divided into two parts – “Static testing performed manually” and “Static testing using tools”.
1. Manual Static Design Techniques
A Walk-through is a step-by-step presentation of different requirements and design documents by their authors. This is done with the intent of finding defects or any missing pieces in the documents.
- Informal reviews
As the name suggests, an informal review done by an individual without any process or documentation.
- Technical reviews
A technical review involves reviewing the technical approach used during the development process. It is more of a peer review activity and less formal as compared to audit and inspection.
An audit is a formal evaluation of the compliance of the different processes and artifacts with standards and regulations. It is generally performed by an external or independent team or person.
An inspection is a formal and documented process of reviewing the different documents by experts or trained professionals.
- Management review
It is a review performed on the different management documents like project management plans, test plans, risk management plans, etc.
2. Static Design Techniques Using Tools
- Static analysis of code – The static analysis techniques for the source code evaluation using tools are-
- Control flow analysis – The control flow analysis requires analysis of all possible control flows or paths in the code.
- Data flow analysis – The data flow analysis requires the analysis of data in the application and its different states.
- Compliance with coding standards – This evaluates the compliance of the code with the different coding standards.
- Analysis of code metrics – The tool used for static analysis is required to evaluate the different metrics like lines of code, complexity, code coverage, etc.
Dynamic Test Design Techniques
Dynamic test design techniques involve testing by running the system under test. In this technique, the tester provides input data to the application and executes it. This is done to verify its different functional and non-functional requirements.
- Specification-based – Specification-based test design techniques are also referred to as black-box testing. These involve testing based on the specification of the system under test without knowing its internal architecture.
The different types of specification-based test design or black box testing techniques are – “Equivalence partitioning”, “Boundary value analysis”, “Decision tables”, “Cause-effect graph”, “State transition testing” and “Use case testing“.
- Structure-based – Structure-based test design techniques are also referred to as white box testing. In these techniques, the knowledge of code or internal architecture of the system is required to carry out the testing.
The various kinds of testing structure-based or white testing techniques are – “Statement testing”, “Decision testing/branch testing”, “Condition testing”, “Multiple condition testing”, “Condition determination testing” and “Path testing”.
- Experienced-based – The experienced-based techniques as the name suggest do not require any systematic and exhaustive testing. These are completely based on the experience or intuition of the tester. The two most common forms of experienced-based testing are – Adhoc testing and exploratory testing.
With this, we have come to the end of this part of the tutorial. If you have any questions, please ask in the comment section. Also, check out the complete software testing tutorial below.