我正在为我的应用程序开发一些代码覆盖率。现在,我知道代码覆盖率是一个链接到您创建的测试类型和您希望为其进行代码覆盖率的语言的活动。
我的问题是:有没有可能做一些泛型代码覆盖?像在中一样,我们是否可以有一组特性/测试用例,这些特性/测试用例可以运行(以及针对被测应用程序的更具体的测试),以获得10%或更多代码的代码覆盖率?
更像是,如果我希望为代码覆盖率构建一个框架,那么创建一个泛型框架的最佳可能方法是什么?有没有可能让某些功能自动化或通用化?
发布于 2008-12-08 22:23:24
我不确定通用覆盖工具是否是圣杯,原因有几个:
您可以做的(我已经做了;-) )是编写一个通用测试来测试Java bean。通过反射,您可以根据Java bean的Sun规范测试Java bean。断言equals和hashcode都实现了(或者都没有实现),查看getter实际上返回了您使用setter推入的值,检查是否所有属性都有getter和setter。
例如,对于实现“可比较”的任何东西,您都可以使用相同的基本技巧。
它很容易做,很容易维护,并迫使你拥有干净的bean。至于其余的单元测试,我试着先把重点放在重要的部分上,然后进行粗略的测试。
覆盖可能会给人一种错误的安全感。常识不能被自动化。
发布于 2008-12-08 21:41:19
这通常是通过将静态代码分析(Coverity、Klockwork或它们的免费类似物)与动态分析相结合来实现的,方法是对插装的应用程序(profiler +内存检查器)运行测试。不幸的是,这很难自动化测试算法,大多数工具都是一种“记录器”,能够记录流量/密钥/信号-依赖于域并重放它们(通过最小的更改/替换,如会话ID/用户/等)
https://stackoverflow.com/questions/350981
复制相似问题