Specification-Based testing: This type of testing is done when a tester does not know anything about the internal architecture and algorithm, so a user is fully devoted to testing the business logic which needs to be working and has no intention to check how it is implemented. Specification here refers to any hard /soft copies of requirements or test cases or a prototype or an example to whom this project is to compare.
As a tester does not know the internal algorithm and is fully concentrated on functionality, the testing type is also called Behavioral Testing or Black Box Testing, Basically, the specification testing can be classified into four techniques:
1. Equivalence Partitioning technique: This technique is performed by dividing test data values into groups of equivalent values which provides the same output. Taking one value from each group and testing at a time
Advantages of Equivalence Partitioning: As we have divided the ranges or sets of values and picking one at a time, this optimizes the test cases and reduces the time to complete the regression testing.
2. Boundary Value Analysis technique: In this technique, a user tests edges of the limits or ranges and records the output. Also called BVA in short
Advantages of BVA: Taking edge values for testing reduces the testing time greatly and also the possibility of bugs at the edges is more.
3. Decision tables technique: Best way to test complex logic as they require more statement coverage and decision coverage and in decision tables sets of the combination is maintained. Also, fully focused on the business logic with all conditions like What if?
Advantages of Decision Tables: if a table is made correctly then tester can guarantee that each and every combination is tested also called completeness of testing.
4. State Transitioning technique: This technique is used when the system produces different outputs for same inputs depending upon the previous activities and data stored inside dependent cases. For this, a user needs to identify and analyze progressively with various sets of inputs and dependent conditions
Advantages of State Transition: This technique makes tester a better known of the project and then the user can understand the behavior easily for different conditions