摘要
现有的基于程序频谱的缺陷定位方法是通过利用语句覆盖信息计算可疑度从而确定其检查次序的,但在系统测试时,待定位对象代码量庞大,导致这类方法效果不佳。针对以上情况,提出一种基于对数几率回归的函数级别软件定位方法,其主要是分析失败测试用例的子系统和模块的执行信息,区分缺陷根源互异的失败测试用例,缩小定位范围;依次进行模块级别和函数级别的缺陷定位,计算每个模块和函数与失败测试用例的关联度,根据可疑值确定检查次序。实验表明,提出的方法能够有效缩小缺陷定位范围,提高缺陷函数的定位效率。
The method of fault localization based on spectrum determines the check order by calculating the suspicious of the coverage information of statements. However,during the system test,the size of the object to be located is large,which leads to the poor effect of those methods. This paper proposed a method to locate the functions faults during system test. In order to narrow the range of location,we analyzed the execution information of failed test cases subsystem and module,and distinguished the failed test cases with different faults. The correlation degree is calculated for each module and function,and the order of functions to be checked is determined by locating the faults at module level and function level in sequence. The experiments show that the proposed method can reduce the range of fault localization and improve the efficiency of fault localization.
引文
[1]Agrawal H,Horgan J R,London S,et al.Fault localization using execution slices and dataflow tests[C]//IEEE International Symposium on Software Reliability Engineering.1995:143-151.
[2]陈翔,鞠小林,文万志,等.基于程序频谱的动态缺陷定位方法研究[J].软件学报,2015,26(2):390-412.
[3]Kim J,Park J,Lee E.A new spectrum-based fault localization with the technique of test case optimization[J].Journal of Information Science&Engineering,2016,32(1):177-196.
[4]Zhang Xiaohong,Wang Ziyuan,Zhang Weifeng,et al.Spectrum-based fault localization method with test case reduction[C]//IEEE Conference on Computer Software and Applications.2015:548-549.
[5]Zhang Peng,Mao Xiaoguang,Lei Yan,et al.Fault localization based on dynamic slicing via JSlice for Java programs[C]//IEEE International Conference on Software EngineeringandServiceScience.2014:565-568.
[6]Mao Xiaoguang,Lei Yan,Dai Ziying,et al.Slice-based statistical fault localization[J].Journal of Systems and Software,2014,89(1):51-62.
[7]文万志,李必信,孙小兵,等.一种基于层次切片谱的软件错误定位技术[J].软件学报,2013,24(5):977-992.
[8]曹鹤玲,姜淑娟,鞠小林,等.基于动态切片和关联分析的错误定位方法[J].计算机学报,2015,38(11):2188-2202.
[9]Gong Dandan,Wang Tiantian,Su Xiaohong,et al.State dependency probabilistic model for fault localization[J].Information&Software Technology,2015,57(1):430-445.
[10]Casanova P,Schmerl B,Garlan D,et al.Architecturebased run-time fault diagnosis[C]//European Conference on Software Architecture.2011:261-277.
[11]Casanova P,Garlan D,Schmerl B,et al.Diagnosing architectural run-time failures[C]//IEEE Software Engineering for Adaptive and Self-Managing Systems.2013:103-112.
[12]宗芳芳,黄鸿云,丁佐华.基于二次定位策略的软件故障定位[J].软件学报,2016,27(8):1993-2007.
[13]叶俊民,何印标,陈曙,等.基于分层程序频谱的软件故障定位方法研究[J].小型微型计算机系统,2015,36(9):1953-1957.
[14]Liu Cheng,Wong Hua-san.Structured penalized logistic regression for gene selection in gene expression data analysis[J].IEEE/ACM Transactions on Computational Biology&Bioinformatics,2017:doi:10.1109/TCBB.2017.2767589.
[15]Yan Lixin,Huang Zhen,Zhang Yishi,et al.Driving risk status prediction using Bayesian networks and logistic regression[J].IET Intelligent Transport Systems,2017,11(7):431-439.
[16]Nishiura K,Choi E H,Mizuno O.Improving faulty interaction localization using logistic regression[C]//IEEE International Conference on Software Quality,Reliability and Security.2017:138-149.
[17]Yang Yaoqing,Grover P,Kar S.Fault-tolerant distributed logistic regression using unreliable components[C]//2016the 54th Annual Allerton Conference on Communication,Control,and Computing.2017:940-947.