Fault localization based on information flow coverage

Fault localization based on information flow coverage
复制标题

DOI:
10.1002/stvr.409
复制
发表时间:
2010-06
期刊:
Software Testing
影响因子:
--
通讯作者:
Wes Masri
Wes Masri
中科院分区:
其他
文献类型:
--
作者:
Wes Masri

文献摘要

被引文献

相似文献

难以调试的失败通常涉及许多程序元素之间的复杂相互作用,假设信息流提供了这种相互作用的好模型,并根据信息流覆盖范围呈现了新的故障本地化技术。程序中的陈述是通过将失败运行引起的信息流与通过传递诱导的信息进行比较,而陈述的可能性。与给定流程相关的陈述主要是通过将失败的运行百分比与诱发的传递百分比进行对比。开放式Java程序,并在其故障定位效果方面进行了比较,另外三种使用类似样式指标的覆盖范围技术陈述,分支和DEF-使用对,结果表明信息流,分支和DEF的覆盖范围始终如一地表现出比语句覆盖率更好的。 Def-覆盖范围。
Failures triggered by hard to debug defects usually involve complex interactions between many program elements. This paper hypothesizes that information flows present a good model for such interactions and presents a new fault localization technique based on information flow coverage. Using a test suite, the technique ranks the statements in a program in terms of their likelihood of being faulty by comparing the information flows induced by the failing runs with the ones induced by the passing runs. The ranking of the statements associated with a given flow is primarily determined by contrasting the percentage of failing runs to the percentage of passing runs that induced it. Generally, a higher percentage of failing runs implies a higher rank. To show its potential, the technique was applied to several open‐source Java programs and was compared, with respect to its fault localization effectiveness, with three other coverage techniques that use similar style metrics that are defined for statements, branches, and def–use pairs, respectively. The results revealed that information flow, branch, and def–use coverage performed consistently better than statement coverage. In addition, in a considerable number of cases information flow coverage performed better than branch and def–use coverage. Specifically, it was always safer but not always more precise. Copyright © 2009 John Wiley & Sons, Ltd.