Software Testing - Infeasible Path



Software testing is performed by applying both the black box, and white box testing techniques. While the black box testing mainly verifies the output generated from the software by feeding it with a specific set of data, the white box testing verifies the source code, algorithm, data flow etc of the software. It also includes checking every path, condition, and statement of the code.

Infeasible Path of a Software

The infeasible paths refer to whose paths which are impossible to be tested, and validated by any combinations of input data. All program source codes consist of various paths. At the start of testing, all these paths are targeted to be executed and verified. But it is seen that some of these paths are impracticable, and could not be traversed by using any sort of data inputs.

The infeasible paths add to the overall cost of the testing process, mainly for automation. The configuration, execution, and maintenance of the automated test cases created to verify the infeasible paths is very time-consuming, and costly. Besides, they also hinder, and slow down the total testing activities, test report generation, and identification of defects in the software. Thus a path within a program source code is considered infeasible in case there exists no data to be fed to the global, and input variables, and settings of the program that enables it to be executed.

The infeasible paths in the software does not help to proceed with the white box testing as well. The usage of the white box testing to validate the infeasible paths in the software may lead to the below conditions −

  • The infeasible paths do not give the scope, and possibility of generating test cases. Thus it creates a circumstance of deadlock, and uncertainty for the testing team.
  • The infeasible paths in the source code may lead to the inaccurate test cases design, thereby leading to adaptation of improper testing methodologies.

Example of Software Infeasible Paths

Let us take an example of the below piece of code to illustrate the infeasible path of the software.

  • Create an order for some amount.
  • If the order amount is less than five hundred.
  • Then there is no discount.
  • Else there is twenty-five percent of discount available.
  • If the order amount is greater than thousand.
  • Then there is a thirty-five percent discount available.
  • End

By going through the above piece of code and its control flow graph, we can conclude that the path 1 → 2 → 3 → 5 → 6 → 7 refers to an infeasible path because it is not possible to execute the node or statement 6. However, the paths 1 → 2 → 4 → 5 → 6 → 7 and 1 → 2 → 4 → 5 → 7 are correct, and feasible as well.

Best Practices to Identify Software Infeasible Paths

Thus it can be concluded that every program source code may contain infeasible paths, which makes it more difficult for the testers to design correct, and appropriate test cases at the time of the white box testing. As a result, it is recommended that a tester should be able to detect, and remove, all the possible infeasible paths by utilizing his experience, skills, various methodologies, solutions etc. This will allow him to create proper and efficient test cases to carry out a successful test execution on the software.

Disadvantages of Software Infeasible Paths

The disadvantages of the software infeasible paths are listed below −

  • The software infeasible paths eat up time, effort, and money for the testing team.
  • The software infeasible paths create problems for the automation of test cases.
  • The software infeasible paths pose hindrance to the testing process especially during the white box testing.

Conclusion

This concludes our comprehensive take on the tutorial on Software Infeasible Path. Weve started with describing what is the infeasible path of a software, what are the different types of the software performance testing, an example of software infeasible paths, and best practices to identify software infeasible paths. This equips you with in-depth knowledge of Software Infeasible Path. It is wise to keep practicing what youve learned and exploring others relevant to Software Testing to deepen your understanding and expand your horizons.

Advertisements