What is specification based testing?
Specification based testing is also referred to as black-box testing. In specification based testing, testing activities are performed based on the specification of the system under test. Unlike white-box testing, the knowledge of the internal architecture and the application code is not required in specification based testing.
Specification based testing techniques
The different types of specification based test design techniques are-
- Equivalence class partitioning - Equivalence class partitioning is a test design techniques in which we group the input test data into different logical groups or equivalence classes. The test data lying in a particular equivalence class is assumed to have similar behavior when passed as input to the application under test. Take for example, an application that finds square of a number. The different equivalence classes can be - all the positive numbers, negative numbers, decimal numbers, negative decimal numbers etc.
- Boundary value analysis - Boundary value analysis testing involves creating test data based on the boundary values of the equivalence classes. E.g. equivalence classes for test data with value lying between 0 to 100, the boundary values would be 0 and 100.
- Decision tables - In decision tables testing, we test application based on different combination of input values or the test data. It involves creation of decision tables that have different set of input combination and their corresponding expected outcome on each row.
- Cause-effect graph - Cause-effect graph testing is a test design technique that is carried out using graphical representation of input (cause) and output(effect). The coverage of cause effect graphs can be calculated based on the percentage of combinations of inputs tested out of the total possible combinations.
- State transition testing - State transition testing involves use of state machine model. In this technique, the transition between different states of the application are graphically represented based on the different events and actions.
- Use case testing - Use case testing involves the use of use cases. In this technique, the application is tested using use-cases that represent the interaction of the application under test with its different users or actors.