Test Design Techniques
Test design means identify test conditions and test scenarios through which effective and efficient test cases can be written.Using test design techniques is a best approach rather the test cases picking out of the air. Test design techniques help in achieving high test coverage. In this post, we will discuss the following:
Black-box testing techniques
These includes specification-based and experienced-based techniques. These use external descriptions of the software, including specifications, requirements, and design to derive test cases. These tests can be functional or non-functional, though usually functional. Tester needs not to have any knowledge of internal structure or code of software under test.
Specification-based techniques:
Equivalence partitioning
Boundary value analysis
Use case testing
Decision tables
Cause-effect graph
State transition testing
Classification tree method
Pair-wise testing
Common features of specification-based techniques:
Models, either formal or informal, are used for the specification of the problem to be solved, the software or its components.
From these models test cases can be derived systematically.
Experienced-based techniques:
Error Guessing
Exploratory Testing
White-box techniques
Also referred as structure-based techniques. These are based on the internal structure of the component. Tester must have knowledge of internal structure or code of software under test.
Structural or structure-based techniques includes:
Statement testing
Condition testing
LCSAJ (loop testing)
Path testing
Decision testing/branch testing
Common features of structure-based techniques:
Information about how the software is constructed is used to derive the test cases, for example, code and design.
The extent of coverage of the software can be measured for existing test cases, and further test cases can be derived systematically to increase coverage.
Black-box testing techniques
These includes specification-based and experienced-based techniques. These use external descriptions of the software, including specifications, requirements, and design to derive test cases. These tests can be functional or non-functional, though usually functional. Tester needs not to have any knowledge of internal structure or code of software under test.
Specification-based techniques:
Equivalence partitioning
Boundary value analysis
Use case testing
Decision tables
Cause-effect graph
State transition testing
Classification tree method
Pair-wise testing
Common features of specification-based techniques:
Models, either formal or informal, are used for the specification of the problem to be solved, the software or its components.
From these models test cases can be derived systematically.
Experienced-based techniques:
Error Guessing
Exploratory Testing
White-box techniques
Also referred as structure-based techniques. These are based on the internal structure of the component. Tester must have knowledge of internal structure or code of software under test.
Structural or structure-based techniques includes:
Statement testing
Condition testing
LCSAJ (loop testing)
Path testing
Decision testing/branch testing
Common features of structure-based techniques:
Information about how the software is constructed is used to derive the test cases, for example, code and design.
The extent of coverage of the software can be measured for existing test cases, and further test cases can be derived systematically to increase coverage.