In the world of software testing, infeasible path are those path which can't be tested and verified by any set of possible input values. Each and every software program consists of multiple paths and during the process of testing each of these path is executed and validated. However, some of these path are infeasible and could not be executed with any sort of input value.
These infeasible paths costs very much to the software testing process, especially to the automation process as it's setup, run and maintenance requires huge amount of money & time and presence of any infeasible path may produce deadlock or bottleneck in the execution of the testing task. Further, these infeasible paths hinders the task of test generation and detection of the bugs.
Further these infeasible path causes obstacles to the white box testing approach, which makes use of the internal code and structure of the system to generate tests and subsequently executing them. The execution of the white box testing technique on the software program containing the infeasible path(s) may leads to two possible situation as stated below:
Let us consider an example to understand the concept of infeasible path. Below given is a program of placing the order and subsequently providing the discount based on the ordered amount.
A → Place Order (Amount in Rs.);
B → If Order Amount< 500;
C → then Print "No Discount";
D → Else Print "Applicable for 25% discount";
E → If Order Amount>1000;
F → then Print "Applicable for 40% discount";
G → End
By studying and analysing the above stated program and its corresponding control flow graph, we may find that that the path ABCEFG is an infeasible path as Node or the Statement 'F' can't be executed, while traversing the path in the direction A→B→C→E→F, whereas the path ABDEFG and ABDEG may seems to be an appropriate and feasible path.
In view of the above, it may be stated that there is always a possibility that all and even the smallest software programs contains the infeasible path(s), which may obstruct a tester in the task of creating appropriate and suitable test cases, especially during the white box testing. Thus, a tester needs to identify and get rid of these infeasible paths by making using of their acquired skills, gained knowledge & experience and other possible approaches and solution, in order to generate suitable and desired test cases for the successful test execution on the software application.