15. 中山大学 软件工程实验室
择主要参考了 Wong 的选择[1],对于其中没有选用的程序集,本文优先考虑失败测试用例较
多的程序版本。
(通过查看 info 目录下 SIR 研究人员给出的报告可知失败测试用例个数。)
Siemens 程序集并没有列出,因为它没有可供选择的程序版本和测试集。
程序集(名称/ 选用版本(程序版本 对应错误个数 测试用例(个数/规格
规模) /SIR 版本) 文件)
grep 2.2 18 470
10068 LOC v3 v0_1.tsl.universe
146 procedures
gzip 1.1.2 16 217
5680 LOC v1 v0.tsl.universe.orig
104 procedures
make 3.76.1 19 793
35545 LOC v1 v0_1.tsl.universe
268 procedures
space 38 13585
6199 LOC universe
136 procedures
flex 2.5.1 20 525
10459 LOC v2 v0.tsl.universe
162 procedures (v1 [2], v5 [3])
sed 3.01 6 360
14427 LOC v3 v0_2.universe
255 procedures
bash 2.05 6 1061
59846 LOC v3 testplans.fine
1061 procedures
.test 结尾皆为测例
vim 5.6 4 975
122169 LOC v5 grep ‘FAULTY_F*’ *.c
1999 procedures
相关问题
1. 问:如何抓取多个源代码程序的覆盖信息?
答:在每个步骤,执行命令使用通配符匹配对对应文件即可。
(gcov 收集多个文件的覆
盖信息总存在部分文件不可被覆盖的错误情况,致使收集的覆盖信息无效,正确方法还
版权所有 请勿翻印 内部资料 请勿外传
16. 中山大学 软件工程实验室
在探索中。
)
2. 问:每个程序运行位置应该在哪?
答:SIR 的目录结构有 source 文件夹,所有版本的程序都应该复制到该目录下再执行,
这是因为部分程序的输出是程序的位置相关的,例如 gzip 程序。如果位置不对,使其
在对照 oracle 程序的输出时就会产生误判,得到错误的测试结果。
参考文献
[1]. Eric Wong, W., V. Debroy and B. Choi, A family of code coverage-based heuristics for
effective fault localization. Journal of Systems and Software, 2010. 83(2): p. 188-208.
[2]. Liu, C., Statistical Debugging and Automated Program Failure Triage. 2008: VDM Verlag.
156.
[3]. Zhang, X., et al., Experimental evaluation of using dynamic slices for fault location, in
Proceedings of the 6th International Symposium on Automated and Analysis-Driven Debugging,
AADEBUG 2005. 2005: Monterey, CA, United states. p. 33-42.
版权所有 请勿翻印 内部资料 请勿外传