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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Altenbernd, P.: On the False Path Problem in Hard Real-Time Programs. In: Real-Time Systems, Euromicro Conference, p. 102 (1996)
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)
Ball, T., Rajamani, S.K.: The SLAM project: debugging system software via static analysis. SIGPLAN Not. 37, 1–3 (2002)
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)
Bodik, R., Gupta, R., Soffa, M.L.: Refining data flow information using infeasible paths. SIGSOFT Softw. Eng. Notes 22, 361–377 (1997)
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)
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)
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)
Concolic testing, http://en.wikipedia.org/wiki/Concolic_testing (retrieved)
Edmund, M., Clarke, E., Allen, E., Joseph, S.: Model Checking: Algorithmic Verification and Debugging. Communications of the ACM 52, 74–84 (2009)
Das, M., Lerner, S., Seigle, M.: ESP: path-sensitive program verification in polynomial time. SIGPLAN Not. 37, 57–68 (2002)
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)
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)
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)
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)
Fischer, J., Jhala, R., Majumdar, R.: Joining dataflow with predicates. SIGSOFT Softw. Eng. Notes 30(5), 227–236 (2005)
Forgács, I., Bertolino, A.: Feasible test path selection by principal slicing. SIGSOFT Softw. Eng. Notes 22, 378–394 (1997)
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)
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)
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)
Gustafsson, J.: Analyzing execution-time of Object-Oriented programs using abstract interpretation. PhD thesis, Department of Computer Systems, Information Technology, Uppsala University (2000)
Gustafsson, J., Ermedahl, A., Lisper, B.: Algorithms for Infeasible Path Calculation. In: Sixth International Workshop on Worst-Case Execution Time Analysis, Dresden, Germany (2006)
Hampapuram, H., Yang, Y., Das, M.: Symbolic path simulation in path-sensitive dataflow analysis. SIGSOFT Softw. Eng. Notes 31, 52–58 (2005)
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)
Khedker, U., Sanyal, A., Karkare, B.: Data flow analysis: theory and practice. Taylor and Francis (2009)
Korel, B.: Automated test data generation for programs with procedures. SIGSOFT Softw. Eng. Notes 21, 209–215 (1996)
Liu, H., Tan, H.B.K.: Covering code behavior on input validation in functional testing. Information and Software Technology 51(2), 546–553 (2009)
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)
Liu, H., Tan, H.B.K.: An Approach for the maintenance of input validation. Information and Software Technology 50, 449–461 (2008)
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)
Malevris, N., Yates, D.F., Veevers, A.: Predictive metric for likely feasibility of program paths. Information and Software Technology 32, 115–118 (1990)
McMinn, P.: Search-based software test data generation: a survey: Research Articles. Softw. Test. Verif. Reliab. 14, 105–156 (2004)
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)
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)
Ngo, M.N., Tan, H.B.K.: Heuristics-based infeasible path detection for dynamic test data generation. Inf. Softw. Technol. 50, 641–655 (2008)
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)
Padmanabhuni, B., Tan, H.B.K.: Defending against Buffer-Overflow Vulnerabilities. IEEE Computer 44(11), 53–60 (2011)
Prather, R.E., Myers, J.P.: The Path Prefix Software Engineering. IEEE Trans. on Software Engineering (1987)
Robinson, A.J.A., Voronkov, A.: Handbook of Automated Reasoning, vol. II. North-Holland (2001)
Sen, K., Marinov, D., Agha, G.: CUTE: a concolic unit testing engine for C. SIGSOFT Softw. Eng. Notes 30, 263–272 (2005)
Tahbildar, H., Kalita, B.: Automated Software Test Data Generation: Direction of Research. International Journal of Computer Science and Engineering Survey 2, 99–120 (2011)
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)
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)
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)
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)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)