Is bytecode instrumentation as good as source code instrumentation: An empirical study with industrial tools (Experience Report)

Is bytecode instrumentation as good as source code instrumentation: An empirical study with industrial tools (Experience Report)
复制标题

字节码检测和源代码检测一样好吗:工业工具的实证研究(经验报告)

DOI:
--
复制
发表时间:
2013
期刊:
IEEE International Symposium on Software Reliability Engineering
影响因子:
--
通讯作者:
Lin Deng
Lin Deng
中科院分区:
--
文献类型:
--
作者:
Nan Li;Xin Meng;A. Offutt;Lin Deng

文献摘要

被引文献

相似文献

分支机构覆盖(BC)是一个广泛的测试标准,尽管教科书和研究文献都以不同的方式来衡量BC的标准定义,但该工具是通过不同的方式来支持的。计算每个分支的陈述,但如何完成此操作的细节可以影响一组测试是否满足BC的测量。定义是基于程序源,但一些工具仪器的字节降低了这些工具有效性的关键问题回答这个问题将帮助测试使用哪种工具,查看了31个代码覆盖工具,我们选择了一个支持分支机构的工具。来源。我们获得了105种方法,以发现这三个工具如何测量分支机构。每个工具的定义分支覆盖范围都不同,并且在字节码仪器工具中所谓的分支覆盖范围实际上与子句覆盖的标准定义匹配。
Branch coverage (BC) is a widely used test criterion that is supported by many tools. Although textbooks and the research literature agree on a standard definition for BC tools measure BC in different ways. The general strategy is to “instrument” the program by adding statements that count how many times each branch is taken. But the details for how this is done can influence the measurement for whether a set of tests have satisfied BC. For example, the standard definition is based on program source, yet some tools instrument the bytecode to reduce computation cost. A crucial question for the validity of these tools is whether bytecode instrumentation gives results that are the same as, or at least comparable to, source code instrumentation. An answer to this question will help testers decide which tool to use. This research looked at 31 code coverage tools, finding four that support branch coverage. We chose one tool that instruments the bytecode and two that instrument the source. We acquired tests for 105 methods to discover how these three tools measure branch coverage. We then compared coverage on 64 methods, finding that the bytecode instrumentation method reports the same coverage on 49 and lower coverage on 11. We also found that each tool defined branch coverage differently, and what is called branch coverage in the bytecode instrumentation tool actually matches the standard definition for clause coverage.