首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码覆盖率泛型函数/参数?

代码覆盖率泛型函数/参数?
EN

Stack Overflow用户
提问于 2008-12-08 21:31:17
回答 2查看 468关注 0票数 1

我正在为我的应用程序开发一些代码覆盖率。现在,我知道代码覆盖率是一个链接到您创建的测试类型和您希望为其进行代码覆盖率的语言的活动。

我的问题是:有没有可能做一些泛型代码覆盖?像在中一样,我们是否可以有一组特性/测试用例,这些特性/测试用例可以运行(以及针对被测应用程序的更具体的测试),以获得10%或更多代码的代码覆盖率?

更像是,如果我希望为代码覆盖率构建一个框架,那么创建一个泛型框架的最佳可能方法是什么?有没有可能让某些功能自动化或通用化?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-12-08 22:23:24

我不确定通用覆盖工具是否是圣杯,原因有几个:

  1. 的报道不是一个目标,它是一种工具。它会告诉您代码的哪些部分没有被测试完全命中。它没有说明测试有多好。
  2. 生成的测试无法猜测代码的语义。只为你生成测试的框架可以从读取你的代码中推断出意义,这在本质上可能是错误的,因为单元测试的全部要点是看看代码是否真的像你想要的那样运行。
  3. 因为自动化框架将生成人工覆盖,你永远不能判断一段代码是使用适当的单元测试进行的,还是由框架进行的表面测试。我宁愿让未测试的代码显示为未覆盖的代码,所以我对此进行了修复。

您可以做的(我已经做了;-) )是编写一个通用测试来测试Java bean。通过反射,您可以根据Java bean的Sun规范测试Java bean。断言equals和hashcode都实现了(或者都没有实现),查看getter实际上返回了您使用setter推入的值,检查是否所有属性都有getter和setter。

例如,对于实现“可比较”的任何东西,您都可以使用相同的基本技巧。

它很容易做,很容易维护,并迫使你拥有干净的bean。至于其余的单元测试,我试着先把重点放在重要的部分上,然后进行粗略的测试。

覆盖可能会给人一种错误的安全感。常识不能被自动化。

票数 1
EN

Stack Overflow用户

发布于 2008-12-08 21:41:19

这通常是通过将静态代码分析(Coverity、Klockwork或它们的免费类似物)与动态分析相结合来实现的,方法是对插装的应用程序(profiler +内存检查器)运行测试。不幸的是,这很难自动化测试算法,大多数工具都是一种“记录器”,能够记录流量/密钥/信号-依赖于域并重放它们(通过最小的更改/替换,如会话ID/用户/等)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/350981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档