2010-09-13 129 views

回答

2

我觉得IBM Rational测试覆盖工具的仪器对象代码。

假设你有这样的工具,但没有访问源,代码覆盖究竟意味着什么,除了100%?

如果你没有100%的覆盖率,你会知道你没有做过什么。 但你无法知道什么。

+0

我有兴趣使用模糊测试和代码覆盖率分析来查找安全漏洞。首先,我可以在正常操作条件下运行应用程序,并识别尘土飞扬的未使用代码路径。然后尝试在假定最少覆盖的代码可能具有最多漏洞的情况下确定漏洞。 – 2010-09-13 19:50:28

+0

但是当你没有源时,究竟什么是“尘土飞扬的未使用的路径”?看起来你所拥有的只是“这条指令没有被执行”,你必须自己追踪(下游分支)路径。即便如此,你也不知道这个路径代表了什么;与密码相关的东西,或与打印“磁盘已满”相关的内容?那么你会怎么做一个未执行的指令位置列表? – 2010-09-13 21:11:55

+0

这是一个好点;我以某种方式相信自己,我可以通过检查其他输入如何映射到指令中,来了解如何形成输入来运行未使用的代码。现在我想更多了,看起来相当困难。 – 2010-09-14 15:04:56

0

如果您有入口点数(公共方法),则可以测试覆盖范围。尽管如此,我还不知道任何工具。 否则,你将不得不测试汇编代码覆盖率,我不知道它是否可能。

1

旧帖子...但我的两美分。

如果你有一堆罐子,并且你知道你正在使用的是什么类/方法,你可以使用Emma来测试这些罐子,并运行你的示例应用程序对付这些罐子。

在我的情况下,我有我的公司用来构建它的网页的实际专有组件(生成html代码)的jar。我们有一个示例应用程序,利用这些组件以及针对示例应用程序运行的一组测试。我编写了一个ant任务,将maven依赖关系复制到一个目录中,对它们进行测试并对这些测试过的jar进行测试。这个任务是从Maven POM调用的,因此是构建过程的一部分。

此外,作为构建过程的一部分,我们处理emma coverage数据以生成报告。此报告显示了我们没有源代码的jar中的类和方法!希望这可以帮助。