What are the different test design techniques?
Test design techniques are standards of test designing which allow creation of systematic and widely accepted test cases. These techniques are based on the different scentific models and over the years experiences of many QA professional.
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 which 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
- Walk through - A Walk-through is step by step presentation of different requirement and design documents by their authors with the intent of finding defects or any missing pieces in the documents.
- Informal reviews - As the name suggest, 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.
- Audit - 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.
- Inspection - An inspection is a formal and documented process of reviewing the different documents by experts or trained professional.
- 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 analysis of data in the application and its different states.
- Compliance to coding standard - 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 involves testing by running the system under test. In this technique, the tester provide input data to the application and execute it, in order to verify its different functional and non-functional requirements.
- Specification based - Specification based test design techniques are also referred to as blackbox 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 this 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 does not require any systematic and exhaustive testing. These are completely based on the experience or intution of the tester. Two most common forms of experienced based testing are - adhoc testing and exploratory testing.
In our next tutorials, we will be studying about the different test design techniques in detail.