ISSN 1000-1239 CN 11-1777/TP

Journal of Computer Research and Development ›› 2016, Vol. 53 ›› Issue (5): 1072-1085.doi: 10.7544/issn1000-1239.2016.20148031

Previous Articles     Next Articles

Detecting Infeasible Paths Based on Branch Correlations Analysis

Jiang Shujuan1,4, Han Han1, Shi Jiaojiao1, Zhang Yanmei1,2, Ju Xiaolin1,3, Qian Junyan4   

  1. 1(School of Computer Science and Technology, China University of Mining and Technology, Xuzhou, Jiangsu 221116); 2(State Key Laboratory for Novel Software Technology (Nanjing University), Nanjing 210023); 3(School of Computer Science and Technology, Nantong University, Nantong, Jiangsu 226019); 4(Guangxi Key Laboratory of Trusted Software (Guilin University of Electronic Technology), Guilin, Guangxi 541004)
  • Online:2016-05-01

Abstract: The existence of infeasible paths causes a waste of test resources in software testing. Detecting these infeasible paths effectively can save test resources and improve test efficiency. Since the correlation of different conditional statements is the main reason of causing infeasible paths of a program and it costs effort for attempting to cover these paths which are never executed during software testing, the determination of branch correlations plays an important role in detecting infeasible paths. The paper proposes a new approach for detecting the infeasible paths based on association analysis and data flow analysis. Firstly, it builds the data-sets that reflect the static dependencies and the dynamic execution information of conditional statements by combining static analysis with dynamic analysis; then, with two types of branch correlations (called A-B correlation and B-B correlation) defined, it determines the branch correlations respectively with two introduced algorithms which are based on association analysis and data flow analysis; finally, it detects the infeasible paths in accordance with the obtained and refined branch correlations. The paper applies the proposed approach to some benchmarks programs and industry programs to validate its efficiency and effectiveness. The experimental results indicate that our approach can detect infeasible paths accurately and improve the efficiency of software testing.

Key words: software testing, infeasible paths, branch correlations, association analysis, data flow analysis

CLC Number: