Test design technique

From HandWiki

In software engineering, test design technique is a procedure for determining test conditions, test cases and test data during software testing.

Test design techniques always include test selection criteria determining when to stop designing more test cases. They differ from test creation, which are based on the test data adequacy criteria by selecting appropriate test data in order to reduce the risks to an acceptable level.

Test design techniques relates to different test design categories and test basis.

Test basis Test design category Test design technique
Informal requirements Specification-based Equivalence partitioning

Boundary value analysis

Decision table

Cause and effect graphing

Use case testing

User story testing

Classification tree

Ad hoc testing

Semiformal or formal



Model checking

State transition testing

Syntax testing

Structure (e.g. code) Structure-based Control-flow testing

Data-flow testing

Path testing

Condition testing

Mutation testing

Experience Experience based Error guessing

Exploratory testing

Attack testing


Faults, failures Fault-based Failure-based

Taxonomy-based testing

For example, specification-based techniques are based on some available information about the software to be implemented such as requirements, user stories, etc. Experience-based techniques are based on the tester knowledge, the running application and experience gained during the testing process. Test design techniques should be applied systematically.

How to select appropriate test design techniques?[1]

Software test design refers to the process of designing different tests answering the questions: Which test case? How many? How to get these test cases?

Each test design technique is suitable for identifying a particular type of software defect. The selected test design technique should meet the testing objectives and the result of risk and complexity analysis. In most cases, one should apply more than one test design technique together. In some test design techniques, an appropriate test selection criterion should also be selected. For example, in state transition testing we can select several test selection criteria. On the other hand, for boundary value analysis, the test selection criterion is involved in the technique.

The most adopted test techniques are: use case testing, boundary value analysis, equivalence partitioning, decision tables, state transition testing, pairwise testing and classification trees, all being specification-based[2]