计算机工程与应用 ›› 2016, Vol. 52 ›› Issue (9): 6-11.

• 理论与研发 • 上一篇    下一篇

基于基因表达式编程的错误定位方法

张  柯,张德平   

  1. 南京航空航天大学 计算机科学与技术学院,南京 210016
  • 出版日期:2016-05-01 发布日期:2016-05-16

Fault localization based on gene expression programming

ZHANG Ke, ZHANG Deping   

  1. College of Computer Science and Technology, Nanjing University of Aeronautics & Astronautics, Nanjing 210016, China
  • Online:2016-05-01 Published:2016-05-16

摘要: 错误定位是软件调试中最重要且最耗时的部分,错误定位中的任何改进都可以大大降低软件成本,而其中秩函数的选择问题则尤为关键。结合基因表达式编程技术以及基于频谱的错误定位算法,找到适应程序的高效秩函数,提出了一种新的错误定位方法。从程序测试用例的覆盖信息中提取出四种类型的子集信息;通过基因表达式编程训练出适应程序的最优秩函数;利用秩函数计算出每条语句的可疑度值,并按照可疑度值由高到低的顺序逐条检查程序的可疑语句进行错误定位。通过实验,将训练出的秩函数与已经提出的秩函数(如Tarantula,Ochiai等)进行比较分析,结果表明,基于基因表达式编程的错误定位方法具有更精确的错误定位效果和更显著的定位效率。

null

关键词: 错误定位, 软件调试, 秩函数, 基因表达式编程, 软件测试

Abstract: Fault location is the most important and most time-consuming part of software debugging. Any improvement in error location can significantly reduce software costs, and the choice of ranking function has become a top priority. This paper presents a fault localization algorithm with gene expression programming techniques based on spectrum to adapt the program to find the ranking function efficiently, and proposes a new fault localization algorithm. First, it extracts a subset of four types of the test case coverage information and the execution result information from the program; then, it trains the optimal ranking function by gene expression programming techniques; finally, it calculates the suspicious values of each statement by the ranking function and locates the fault by suspicious statement with the descending suspicious values. The experiment results show that using the fault location method based on gene expression programming algorithm is more accurate and is more significantly efficient than the ranking functions of Tarantula, Ochiai, etc.

Key words: fault localization, program debugging, ranking function, Gene Expression Programming(GEP), software testing