[1]许高阳,李必信,孙小兵,等.一种基于层次切片的软件错误定位方法[J].东南大学学报(自然科学版),2010,40(4):692-698.[doi:10.3969/j.issn.1001-0505.2010.04.006]
 Xu Gaoyang,Li Bixin,Sun Xiaobing,et al.Software fault localization based on hierarchical slicing[J].Journal of Southeast University (Natural Science Edition),2010,40(4):692-698.[doi:10.3969/j.issn.1001-0505.2010.04.006]
点击复制

一种基于层次切片的软件错误定位方法()
分享到:

《东南大学学报(自然科学版)》[ISSN:1001-0505/CN:32-1178/N]

卷:
40
期数:
2010年第4期
页码:
692-698
栏目:
计算机科学与工程
出版日期:
2010-07-20

文章信息/Info

Title:
Software fault localization based on hierarchical slicing
作者:
许高阳 李必信 孙小兵 陶传奇
东南大学计算机科学与工程学院,南京 210096
Author(s):
Xu Gaoyang Li Bixin Sun Xiaobing Tao Chuanqi
School of Computer Science and Engineering, Southeast University, Nanjing 210096, China
关键词:
层次切片模型 抽象语法树 执行历史 逐步求精
Keywords:
hierarchical slicing model abstract syntax tree execution history stepwise refinement
分类号:
TP311
DOI:
10.3969/j.issn.1001-0505.2010.04.006
摘要:
提出了一种基于层次切片模型适合面向对象语言的错误定位方法.首先分别在包层、类层、方法层删去通过测试的包、类和方法,缩小软件错误存在的范围; 其次,在语句层将删减后的程序按抽象语法树划分成若干模块,统计模块内变量使用的数目; 通过动态分析,选取一组测试用例计算其执行历史; 根据模块内使用变量数目的规模,采用逐步求精算法,计算产生错误测试用例的程序执行历史与静态分析过程中所产生模块的交集及交集的后向切片,直至实现错误定位.实验数据表明:该方法能够查出前期定位程序中绝大部分错误的位置,尤其适用在方法调用比较少的程序中.在方法调用比较频繁的程序中,由于在调用语句处迭代调用逐步求精算法,效率会降低.
Abstract:
A novel HSM(hierarchical slicing model)-based fault localization technique is proposed for object-oriented programs. Firstly, the scope of fault localization is reduced by deleting packages, classes and methods which have passed the tests, then the reduced program will be partitioned into some modules based on AST(abstract syntax tree)by analyzing statements, and further, the number of variables within each module are computed independently. Then, execution history is computed based on a set of test cases. Finally, according to the size of the variables used in the modules, the intersection of each module and its backward slice are iteratively calculated using the SSA(stepwise slicing algorithm)until faults are eventually localized. Experimental results show that: the method can locate the most faults early, especially in the program with less method calling relationship. The SSA is called iteratively in the program where the method is called more frequently. Thus, the efficiency is reduced.

参考文献/References:

[1] Korel B,Laski J.Algorithmic software fault localization[C] //Proceedings of the Twenty-Fourth Annual Hawaii International Conference on System Sciences.Hawaii,USA,1991:246-252.
[2] Weiser M.Program slicing[C] //Proceedings of the 5th International Conference on Software Engineering.San Diego,CA,USA,1981:439-449.
[3] Korel B,Laski J.Dynamic program slicing [J].Information Processing Letters,1988,29(3):155-163.
[4] Zeller A.Yesterday,my program worked.Today,it does not.Why?[C] //Proceedings of the 7th European Software Engineering Conference.Toulouse,France,1999:253-267.
[5] Zhang X,Gupta N.Locating faulty code by multiple points slicing[J].Software-Practice & Experience,2007,37(9):935-961.
[6] Wong W E,Qi Y.Effective program debugging based on execution slices and inter-block data dependency [J].Journal of Systems and Software,2006,79(7):891-903.
[7] Sun J,Li Zh,Ni J.Software fault localization based on testing requirement and program slice[C] //International Conference on Networking,Architecture,and Storage.Guilin,China,2007:168-176.
[8] 李必信.程序切片技术及其应用[M].北京:科学出版社,2006:251-272.
[9] 李必信.一种面向对象程序的分层切片方法[J].软件学报,2001,12(12):1810-1817.
  Li Bixin.An approach for hierarchy slicing object-oriented program[J].Journal of Software,2001,12(12):1810-1817.
[10] Harrold M J,Rothermel G.Syntax-directed construction of program dependence graphs,OH 43210-1277 [R].Columbus,OH,USA:Ohio State University,1996.
[11] Kit E.Software testing in the real world:improving the process[M].New York:ACM Press/Addison-Wesley,1995:110-116.
[12] 张海藩.软件工程导论[M].4版.北京:清华大学出版社,2003:166-169.

备注/Memo

备注/Memo:
作者简介: 许高阳(1983—),男,硕士生; 李必信(联系人),男,博士,教授,博士生导师,bx.li@seu.edu.cn.
基金项目: 国家自然科学基金资助项目(60773105)、国家高技术研究发展计划(863计划)资助项目(2007AA01Z141)、教育部新世纪优秀人才支持计划资助项目(NCET-06-0466).
引文格式: 许高阳,李必信,孙小兵,等.一种基于层次切片的软件错误定位方法[J].东南大学学报:自然科学版,2010,40(4):692-698. [doi:10.3969/j.issn.1001-0505.2010.04.006]
更新日期/Last Update: 2010-07-20