Skip to main content

Detection of Infeasible Paths: Approaches and Challenges

  • Conference paper

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 410))

Abstract

Each execution of the program follows one path through its control flow graph. In general, a program has a large number of such paths. Most of the programs have an infinite number of these paths. Regardless of the quality of the program and the programming language used to develop it, in general, a sizable number of these paths are infeasible—that is no input can exercise them. Detection of these infeasible paths has a key impact in many software engineering activities including code optimization, testing and even software security. This paper reviews the approaches for detecting infeasible paths, discusses the challenges and proposes to revisit this important problem by considering also empirical aspect in conjunction to formal program analysis.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Altenbernd, P.: On the False Path Problem in Hard Real-Time Programs. In: Real-Time Systems, Euromicro Conference, p. 102 (1996)

    Google Scholar 

  2. Balakrishnan, G., Sankaranarayanan, S., Ivančić, F., Wei, O., Gupta, A.: SLR: Path-Sensitive Analysis through Infeasible-Path Detection and Syntactic Language Refinement. In: Alpuente, M., Vidal, G. (eds.) SAS 2008. LNCS, vol. 5079, pp. 238–254. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  3. Ball, T., Rajamani, S.K.: The SLAM project: debugging system software via static analysis. SIGPLAN Not. 37, 1–3 (2002)

    Article  Google Scholar 

  4. Ball, T., Rajamani, S.K.: Bebop: a path-sensitive interprocedural dataflow engine. Presented at the Proceedings of the 2001 ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, Snowbird, Utah, United States (2001)

    Google Scholar 

  5. Bodik, R., Gupta, R., Soffa, M.L.: Refining data flow information using infeasible paths. SIGSOFT Softw. Eng. Notes 22, 361–377 (1997)

    Article  Google Scholar 

  6. Bjørner, N., Tillmann, N., Voronkov, A.: Path Feasibility Analysis for String-Manipulating Programs. Presented at the Proceedings of the 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, York, UK (2009)

    Google Scholar 

  7. Botella, B., Delahaye, M., Hong-Tuan-Ha, S., Kosmatov, N., Mouy, P., Roger, M., Williams, N.: Automating structural testing of C programs: Experience with PathCrawler. In: Automation of Software Test, ICSE Workshop, pp. 70–78 (2009)

    Google Scholar 

  8. Cobleigh, J.M., Clarke, L.A., Ostenveil, L.J.: The right algorithm at the right time: comparing data flow analysis algorithms for finite state verification. Presented at the Proceedings of the 23rd International Conference on Software Engineering, Toronto, Ontario, Canada (2001)

    Google Scholar 

  9. Concolic testing, http://en.wikipedia.org/wiki/Concolic_testing (retrieved)

  10. Edmund, M., Clarke, E., Allen, E., Joseph, S.: Model Checking: Algorithmic Verification and Debugging. Communications of the ACM 52, 74–84 (2009)

    Google Scholar 

  11. Das, M., Lerner, S., Seigle, M.: ESP: path-sensitive program verification in polynomial time. SIGPLAN Not. 37, 57–68 (2002)

    Article  Google Scholar 

  12. Delahaye, M., Botella, B., Gotlieb, A.: Explanation-Based Generalization of Infeasible Path. Presented at the Proceedings of the 2010 Third International Conference on Software Testing, Verification and Validation (2010)

    Google Scholar 

  13. Dor, N., Adams, S., Das, M., Yang, Z.: Software validation via scalable path-sensitive value flow analysis. SIGSOFT Softw. Eng. Notes 29, 12–22 (2004)

    Article  Google Scholar 

  14. Dwyer, M.B., Clarke, L.A., Cobleigh, J.M., Naumovich, G.: Flow analysis for verifying properties of concurrent software systems. ACM Trans. Softw. Eng. Approachol. 13, 359–430 (2004)

    Article  Google Scholar 

  15. Ermedahl, A.: A modular tool architecture for worst-Case execution time Analysis. PHD thesis, Uppsala University, Dept. of Information Technology, Uppsala University, Sweden (June 2003)

    Google Scholar 

  16. Fischer, J., Jhala, R., Majumdar, R.: Joining dataflow with predicates. SIGSOFT Softw. Eng. Notes 30(5), 227–236 (2005)

    Article  Google Scholar 

  17. Forgács, I., Bertolino, A.: Feasible test path selection by principal slicing. SIGSOFT Softw. Eng. Notes 22, 378–394 (1997)

    Article  Google Scholar 

  18. Goldberg, A., Wang, T.C., Zimmerman, D.: Applications of feasible path analysis to program testing. Presented at the Proceedings of the 1994 ACM SIGSOFT International Symposium on Software Testing and Analysis, Seattle, Washington, United States (1994)

    Google Scholar 

  19. Gustafsson, J.: Worst case execution time analysis of Object-Oriented programs. In: The Proceedings of the Seventh International Workshop on Object-Oriented Real-Time Dependable Systems, San Diego, CA, USA, pp. 0071–0071 (2002)

    Google Scholar 

  20. Gustafsson, J., Ermedahl, A., Sandberg, C., Lisper, B.: Automatic derivation of loop bounds and infeasible paths for WCET analysis using abstract execution. Presented at the Proceedings of the 27th IEEE International Real-Time Systems Symposium (2006)

    Google Scholar 

  21. Gustafsson, J.: Analyzing execution-time of Object-Oriented programs using abstract interpretation. PhD thesis, Department of Computer Systems, Information Technology, Uppsala University (2000)

    Google Scholar 

  22. Gustafsson, J., Ermedahl, A., Lisper, B.: Algorithms for Infeasible Path Calculation. In: Sixth International Workshop on Worst-Case Execution Time Analysis, Dresden, Germany (2006)

    Google Scholar 

  23. Hampapuram, H., Yang, Y., Das, M.: Symbolic path simulation in path-sensitive dataflow analysis. SIGSOFT Softw. Eng. Notes 31, 52–58 (2005)

    Article  Google Scholar 

  24. Hedley, D., Hennell, M.A.: The cause and effects of infeasible paths in computer programs. Presented at the Proceedings of the 8th International Conference on Software Engineering, London, England (1985)

    Google Scholar 

  25. Khedker, U., Sanyal, A., Karkare, B.: Data flow analysis: theory and practice. Taylor and Francis (2009)

    Google Scholar 

  26. Korel, B.: Automated test data generation for programs with procedures. SIGSOFT Softw. Eng. Notes 21, 209–215 (1996)

    Article  Google Scholar 

  27. Liu, H., Tan, H.B.K.: Covering code behavior on input validation in functional testing. Information and Software Technology 51(2), 546–553 (2009)

    Article  Google Scholar 

  28. Liu, H., Tan, H.B.K.: Testing input validation in web applications through automated model recovery. Journal of Systems and Software 81(2), 222–233 (2008)

    Article  MathSciNet  Google Scholar 

  29. Liu, H., Tan, H.B.K.: An Approach for the maintenance of input validation. Information and Software Technology 50, 449–461 (2008)

    Article  Google Scholar 

  30. Liu, H., Tan, H.B.K.: An approach to aid the understanding and maintenance of input validation. In: Proceedings 22nd International Conference on Software Maintenance (ICSM 2006), pp. 370–379 (September 2006)

    Google Scholar 

  31. Malevris, N., Yates, D.F., Veevers, A.: Predictive metric for likely feasibility of program paths. Information and Software Technology 32, 115–118 (1990)

    Article  Google Scholar 

  32. McMinn, P.: Search-based software test data generation: a survey: Research Articles. Softw. Test. Verif. Reliab. 14, 105–156 (2004)

    Article  Google Scholar 

  33. Moura, L.D., Bjorner, N.: Z3: an efficient SMT solver. Presented at the Proceedings of the Theory and practice of software. In: 14th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, Budapest, Hungary (2008)

    Google Scholar 

  34. Ngo, M.N., Tan, H.B.K.: Applying static analysis for automated extraction of database interactions in web applications. Information and Software Technology 50(3), 160–175 (2008)

    Article  Google Scholar 

  35. Ngo, M.N., Tan, H.B.K.: Heuristics-based infeasible path detection for dynamic test data generation. Inf. Softw. Technol. 50, 641–655 (2008)

    Article  Google Scholar 

  36. Ngo, M.N., Tan, H.B.K.: Detecting Large Number of Infeasible Paths through Recognizing their Patterns. In: Proceedings ESEC-FSE 2007, Joint European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering, pp. 215–224. ACM Press (2007)

    Google Scholar 

  37. Padmanabhuni, B., Tan, H.B.K.: Defending against Buffer-Overflow Vulnerabilities. IEEE Computer 44(11), 53–60 (2011)

    Article  Google Scholar 

  38. Prather, R.E., Myers, J.P.: The Path Prefix Software Engineering. IEEE Trans. on Software Engineering (1987)

    Google Scholar 

  39. Robinson, A.J.A., Voronkov, A.: Handbook of Automated Reasoning, vol. II. North-Holland (2001)

    Google Scholar 

  40. Sen, K., Marinov, D., Agha, G.: CUTE: a concolic unit testing engine for C. SIGSOFT Softw. Eng. Notes 30, 263–272 (2005)

    Article  Google Scholar 

  41. Tahbildar, H., Kalita, B.: Automated Software Test Data Generation: Direction of Research. International Journal of Computer Science and Engineering Survey 2, 99–120 (2011)

    Article  Google Scholar 

  42. Vergilio, S., Maldonado, J., Jino, M.: Infeasible paths within the context of data flow based criteria. In: The VI International Conference on Software Quality, Ottawa, Canada, pp. 310–321 (1996)

    Google Scholar 

  43. Williams, N.: Abstract path testing with PathCrawler. Presented at the Proceedings of the 5th Workshop on Automation of Software Test, Cape Town, South Africa (2010)

    Google Scholar 

  44. Wilhelm, R., Engblom, J., Ermedahl, A., Holsti, N., Thesing, S., Whalley, D., Bernat, G., Ferdinand, C., Heckmann, R., Mitra, T., Mueller, F., Puaut, I., Puschner, P., Staschulat, J., Stenstrom, P.: The worst-case execution-time problem–overview of approaches and survey of tools. ACM Trans. Embed. Comput. Syst. 7, 1–53 (2008)

    Article  Google Scholar 

  45. Xie, T., Tillmann, N., Halleux, P.D., Schulte, W.: Fitness-Guided Path Exploration in Dynamic Symbolic Execution. Presented at the IEEE/IFIP International Conference on Dependable Systems & Networks, Lisbon (2009)

    Google Scholar 

  46. Zhang, J., Wang, X.: A constraint solver and its application to path feasibility analysis. International Journal of Software Engineering and Knowledge Engineering 11, 139–156 (2001)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Ding, S., Tan, H.B.K. (2013). Detection of Infeasible Paths: Approaches and Challenges. In: Maciaszek, L.A., Filipe, J. (eds) Evaluation of Novel Approaches to Software Engineering. ENASE 2012. Communications in Computer and Information Science, vol 410. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-45422-6_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-45422-6_5

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-45421-9

  • Online ISBN: 978-3-642-45422-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics