程序频谱
关于程序频谱(Program Spectrum)和基于程序频谱的缺陷定位(SFL, Spectrum Fault Localization),定义和介绍如下:
Program spectra, also known as code coverage, can be defined as a set of program entities covered during test execution . Spectrum-based fault localization uses information from program entities executed by test cases to indicate entities more likely to be faulty. There are several synonyms of program spectrum used in the literature, such as code coverage, testing data, dynamic information, execution trace, execution path, path profile, and execution profile.
程序频谱,也称为代码覆盖,记录了程序在执行期间的实体覆盖情况。而基于程序频谱的缺陷定位,就是利用这些执行信息,进行软件的缺陷定位的技术。
目标
在西门子测试集中,已 replace 程序为例子,该例子中包含:
- 一个正确版本的程序,和 32 个错误版本(每个版本引入了一个 Bug)
- 5542 个测试用例,可以为每个版本程序产生 5542 个测试输出
目标输出:
- 对于每个错误版本,获得他们在每个测试用例下的语句执行频谱。例如:对于 v31 的程序,执行频谱是一个 5542 行,570列(程序编译生成的 replace.c.gcov 的行数) 的 0-1 矩阵。其中,每个 TestCase 对应频谱矩阵的一行。

本文介绍了程序频谱(Code Coverage)和基于频谱的缺陷定位技术,以西门子测试集中的replace程序为例,展示了如何使用Gcov工具获取每个测试用例的语句执行频谱,以及如何通过自动化脚本生成结果矩阵,实现软件缺陷定位的自动化流程。
最低0.47元/天 解锁文章
543

被折叠的 条评论
为什么被折叠?



