计算机科学
代码覆盖率
软件错误
象征性执行
模糊测试
回归检验
测试用例
源代码
程序切片
静态程序分析
编码(集合论)
软件
软件测试
静态分析
缓冲区溢出
无效代码
测试套件
算法
作者
Yibiao Yang,Yuming Zhou,Hao Sun,Zhendong Su,Zhiqiang Zuo,Lei Xu,Baowen Xu
出处
期刊:International Conference on Software Engineering
日期:2019-05-25
卷期号:: 488-499
被引量:8
标识
DOI:10.1109/icse.2019.00061
摘要
Reliable code coverage tools are critically important as it is heavily used to facilitate many quality assurance activities, such as software testing, fuzzing, and debugging. However, little attention has been devoted to assessing the reliability of code coverage tools. In this study, we propose a randomized differential testing approach to hunting for bugs in the most widely used C code coverage tools. Specifically, by generating random input programs, our approach seeks for inconsistencies in code coverage reports produced by different code coverage tools, and then identifies inconsistencies as potential code coverage bugs. To effectively report code coverage bugs, we addressed three specific challenges: (1) How to filter out duplicate test programs as many of them triggering the same bugs in code coverage tools; (2) how to automatically reduce large test programs to much smaller ones that have the same properties; and (3) how to determine which code coverage tools have bugs? The extensive evaluations validate the effectiveness of our approach, resulting in 42 and 28 confirmed/fixed bugs for gcov and llvm-cov, respectively. This case study indicates that code coverage tools are not as reliable as it might have been envisaged. It not only demonstrates the effectiveness of our approach, but also highlights the need to continue improving the reliability of code coverage tools. This work opens up a new direction in code coverage validation which calls for more attention in this area.
科研通智能强力驱动
Strongly Powered by AbleSci AI