Test design technique

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.
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?
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