Automatic detection of infeasible paths in software testing

A challenging problem in path-oriented test data generation is the presence of infeasible paths. Timely detecting these infeasible paths cannot only save test resources but also improve test efficiency. A popular method of detecting infeasible paths is to determine branch correlations, which is a difficult task and usually cannot be done timely and exactly. In this study, the authors propose a method of automatically determining the branch correlations of different conditional statements, therefore detecting infeasible paths. First, some theorems are given to determine branch correlations based on the probabilities of the conditional distribution corresponding to different branches' outcome (i.e. true or false); then, the maximum likelihood estimation is employed to obtain the values of these probabilities; finally, infeasible paths are detected according to branch correlations. The authors apply the proposed method in some typical programs, and the results show that the proposed method can accurately detect infeasible paths. The achievement provides an effective and automatic method of detecting infeasible paths, which is significant in improving the efficiency of software testing.

[1]  Hee Beng Kuan Tan,et al.  Heuristics-based infeasible path detection for dynamic test data generation , 2008, Inf. Softw. Technol..

[2]  Antonia Bertolino,et al.  Feasible test path selection by principal slicing , 1997, ESEC '97/FSE-5.

[3]  Michael A. Hennell,et al.  The causes and effects of infeasible paths in computer programs , 1985, ICSE '85.

[4]  Nicos Malevris A path generation method for testing LCSAJs that restrains infeasible paths , 1995, Inf. Softw. Technol..

[5]  D. F. Yates,et al.  Predictive metric for likely feasibility of program paths , 1990 .

[6]  Jian Zhang,et al.  A Constraint Solver and Its Application to Path Feasibility Analysis , 2001, Int. J. Softw. Eng. Knowl. Eng..

[7]  Mario Jino,et al.  Identification of potentially infeasible program paths by monitoring the search for test data , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[8]  Sigrid Eldh Software Testing Techniques , 2007 .

[9]  Rajiv Gupta,et al.  Refining data flow information using infeasible paths , 1997, ESEC '97/FSE-5.

[10]  Chidchanok Lursinsap,et al.  An address mapping approach for test data generation of dynamic linked structures , 2005, Inf. Softw. Technol..

[11]  Sriram Sankaranarayanan,et al.  SLR: Path-Sensitive Analysis through Infeasible-Path Detection and Syntactic Language Refinement , 2008, SAS.

[12]  Mario Jino,et al.  Automatic Test Data Generation for Program Paths Using Genetic Algorithms , 2002, Int. J. Softw. Eng. Knowl. Eng..

[13]  F. Cazorla,et al.  20th International Workshop on Worst-Case Execution Time Analysis , 2010 .

[14]  Antonella Santone,et al.  Formula-based abstractions and symbolic execution for model checking programs , 2004, Microprocess. Microsystems.

[15]  Ting Chen,et al.  Exploiting Branch Constraints without Exhaustive Path Enumeration , 2005, WCET.

[16]  Farhad Arbab,et al.  Automated Analysis of Reo Circuits using Symbolic Execution , 2009, FOCLASA.

[17]  P. D. Coward,et al.  Symbolic execution and testing , 1990 .

[18]  Boris Beizer,et al.  Software Testing Techniques , 1983 .