摘要:The existence of infeasible program paths remains an obstacle in applying static analysis to software engineering activities, such as test data generation and bug finding. Knowledge about these infeasible paths is valuable to improve the precision of static analysis. This study presented a hybrid approach for detecting infeasible paths effectively, by combining program analysis and data mining techniques. The approach is based upon two assumptions: (1) most infeasible paths are caused by branch correlations and (2) runtime values of correlated branch predicates can display certain patterns which reveal the underlying correlations between the branches. The approach discovers the possible correlation rules by mining the data collected through instrumenting target programs and executing adequate test cases. Then the approach scores the infeasibility of each program path according to the number of rules it breaks. The evaluation shows that the approach can detect a large portion of infeasible paths and some of them are difficult to be identified by existing infeasible path detecting methods.