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.
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
requirements |
Model-based
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 Checklists |
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]
References
- ↑ István Forgács and Attila Kovács. "Practical Test Design: Selection of traditional and automated test design techniques". https://www.amazon.com/Practical-Test-Design-traditional-techniques/dp/1780174721.
- ↑ van Veenendaal, Erik. "Test Techniques for the Test Analyst". http://www.erikvanveenendaal.nl/site/wp-content/uploads/Test-Techniques-for-the-Test-Analyst-eBook.pdf.