Software testing techniques help in designing better solutions. While exhaustive testing is not possible, the testing techniques help in reducing the total number of test cases to be executed by increasing test coverage. They help to identify test conditions that are otherwise difficult to recognize. Though there are several types of testing techniques available, we shall focus on Black box testing and White box testing techniques only.
Black Box Testing Techniques
Black box testing is a type of software testing, which checks for the functionality of a software or an application without knowing the design, internal components, or structure of an application to be tested. The black box testing method is mainly used to find missing functions, performance errors, initialization errors, and errors while accessing the external database.
The testing techniques of black-box testing include:
Equivalence Partitioning
In equivalence partitioning, the input data of an application to be tested into equal partitions also known as groups. Inputs to the application are divided into groups that are expected to exhibit similar behavior. This technique ensures to cover each partition at least once. The key goal is to complete the test coverage and to lessen duplication.
Partition system inputs and outputs into 'equivalence sets' . If input is a 5-digit integer between 10,000 and 99,999, equivalence partitions are < 10,000, 10,000 - 99, 999 and > 10, 000
Boundary Value Analysis
In boundary value analysis is a technique used in which the testing of an application is done using the boundary values. In this technique, the test data chosen lie along the data extremes. Boundary values include maximum, minimum, just inside/outside boundaries, typical values, and error values. The idea is that, if a systems works correctly for these special values then it will work correctly for all values in between.
Choose test cases at the boundary of these sets : 00000, 09999, 10000, 99999, 10001
Cause-effect Graph
In this type of testing technique, causes are the inputs of a program and effects as the outputs of the program. Here, a graphical representation is used to show the relationship between the input and output and the factors that impact the outcome.
Decision Table based testing
Test cases are designed with the combination of inputs that contain logical conditions. In the entry decision table. It consists of four areas called the condition stub, the condition entry (TC1, TC2 etc,.), the action stub, and the action entry. Each column of the table is a rule that specifies the conditions under which the actions named in the action stub will take place. Where 1 is True and 0 is false, and X is a condition that is not applicable or irrelevant.
Error Guessing
The error guessing testing method utilizes the skills and experience of the tester to detect errors when tools fail to do. The technique is heavily based on the experience where the test analysts use their experience to guess the problematic part of the testing application. A deep understanding of the system under test, is implicit here, knowledge of typical implementation errors, combined with previous experience of the system, forms the very basis of this type of testing. This technique is highly cost effective, but requires an expert to design and perform the tests.
State Transition
In State Transition technique changes in input conditions change the state of the System Under Test. This testing technique allows the tester to test the behavior of an SUT. The tester can perform this action by entering various input conditions in a sequence. In State transition technique, the testing team provides positive as well as negative input test values for evaluating the system behavior.