关于这个文章,感觉东西好像做得还不错,但看起来有点费力,文字好多,帮助解释的图表比较少。加之自己本来对测试了解非常少,要看得比较懂就更难了。不过,主要是兴趣不大,所以就只简单看了下前面和后面。
自己理解可能不是太对,很初步,之前看题目连multi-faults的failing test是啥都不知道。后面看了下文章的说明,大概好像明白了点。
像我们的test,往往分为程序运行成功的passing test和程序fail的failing test。然而一个程序可能有多个faults。在这些failing tests中,如果一个test能同时执行到多个faults则该test为multi-faults test,否则为single-fault test。作者的目的之一即是将failing tests中这2类tests区分出来,自己实现的已有算法,将failing tests中的每一个failing test与其他的passing tests结合,每一个这样的test suite都能用fault localization的方法定位与该failing test相对应的最suspicious的code elements list。然后多个list综合在一起,分析出这2类tests。然后,对每一类tests,将其中的每一个与其最近的passing test做对比,从而定位出fault最可能的位置。
好像大概思路是这样的。具体的不管了,以后要详细的话再来仔细看。
对了。文章做实验用的5个medium-sized projects,其中很多multi-faults是用基于变异的方法产生的,虽然我也不知道其他的方式方法,但总感觉人为产生的实例可能离真实情况都会有点距离。还有,找出multi-faults的failing test确实还蛮不错,我在想,研究如何能构造一次执行到多个faults的failing tests之后再检测出来也许更有意义!
以上!
ps:想了下,可能前面说的方法由于我没看具体的细节,自己描述的也许与文章完全背离,不能相信这片面之词,还是应该读文章。。。我的话,只想按照自己的思路了解那么一点点了。
zou@NanChang
2015-07-22