计算机科学与探索 ›› 2014, Vol. 8 ›› Issue (8): 966-977.DOI: 10.3778/j.issn.1673-9418.1403005

• 系统软件与软件工程 • 上一篇    下一篇

基于变量感染分析的软件错误定位技术

江  联1,黄海亮1,周晓聪1+,王欣明2,李文军2   

  1. 1. 中山大学 信息科学与技术学院,广州 510275
    2. 中山大学 软件学院,广州 510275
  • 出版日期:2014-08-01 发布日期:2014-08-07

Software Fault Localization Technique Based on Variable Infection

JIANG Lian1, HUANG Hailiang1, ZHOU Xiaocong1+, WANG Xinming2, LI Wenjun2   

  1. 1. School of Information Science and Technology, Sun Yat-Sen University, Guangzhou 510275, China
    2. School of Software, Sun Yat-Sen University, Guangzhou 510275, China
  • Online:2014-08-01 Published:2014-08-07

摘要: 在实际调试中,程序员往往通过追溯错误的变量值及其传播来定位软件错误,其中具有错误值的变量称为感染变量,感染变量在失败运行中具有错误值的程序位置即为感染位置。提出了一种结合动态正向程序切片和语句覆盖信息对程序变量感染的初始位置进行定位的技术。该技术通过分析感染变量的起源与传播,可以更加精确地找到与感染变量相关的错误语句集合。与传统的基于程序覆盖信息的错误定位技术进行了对比实验,结果表明,该技术可定位程序中的感染变量及其初始感染位置,并且可以显著提高程序错误定位的精度。

关键词: 错误定位, 变量感染, 动态程序切片, 语句覆盖信息

Abstract: In order to fix the fault, the programmers not only need to know the code location of the fault, but also need to understand how the execution of the fault introduces errors into the program state in the form of variable infection, whose propagation results in the failure. This paper proposes a novel technique to locate the first infection by combining the statement coverage information and dynamic forward slicing analysis. This technique can accurately find the fault statements set associated with infected variable by analyzing the origin and spread of the infected variables. This paper also conducts an experiment to compare the new technique with other state-of-the-art fault localization techniques. The results show that the new technique can identify the location of the initial variable infection, and significantly improve the fault localization accuracy.

Key words: fault localization, variable infection, dynamic program slicing, statement coverage