运用测试集对程序错误语句定位算法,现在被统称为TBFL(testing based fault localization)方法。目前通行的算法,一般都没有利用测试员、程序员关于测试用例和程序的先验知识,致使这些"资源"白白浪费掉。随机TBFL方法是一类新的TBFL方法,其精神就是在随机理论的框架下,把这些先验知识和实际测试活动结合起来,从而对程序错误语句更好地定位。随机TBFL算法也可以看成是这种类型算法的一般"模式",人们可以从这个一般性的模式里,开发出不同的算法。基于Santelices等人的思想,对随机TBFL算法作了改进。主要是从测试结果里,构造执行矩阵E和功效矩阵F两个工具,通过它们结合测试集和程序先验知识,对程序语句出错可能性引入两个级别的排序,然后对这两个排序进行"平均",得到程序语句出错可能性的平均等级排序,它可以作为程序员改正程序错误的导向。还提出两个有关不同TBFL算法比较标准,就这两个标准,在一些具体实例上,该算法和其他一般方法以及随机TBFL方法对比,效果令人满意。
运用测试集对程序错误语句定位的算法,现在被统称为TBFL(testing based fault localization)方法。目前通行的算法一般都没有利用测试员、程序员关于测试用例和程序的先验知识,致使这些"资源"白白浪费掉。文献[12]引入了一类新的随机TBFL方法,其精神就是在随机理论的框架下,把这些先验知识和实际测试活动结合起来,从而对程序错误语句更好地定位。文献[12]提出的算法可以看成是这种类型算法的一般"模式",人们可以根据这个一般性的模式开发出不同的算法。基于文献[13]的思想,对文献[12]中的算法做了改进。主要是根据测试结果,构造执行矩阵E和功效矩阵F两个工具,并结合测试集和程序先验知识,对程序语句出错可能性引入两个级别的排序,然后对这两个排序进行"平均",得到程序语句出错可能性的平均等级排序,它可以作为程序员改正程序错误的导向。还提出两个有关不同TBFL算法的比较标准,根据这两个标准,在一些具体实例上,将所提算法和其他一般方法以及文献[12]中的方法进行了对比,结果显示所提算法的效果令人满意。