【发布时间】:2011-02-15 15:44:01
【问题描述】:
我们公司正在研究在手动回归测试期间使用 cobertura 代码覆盖率的想法,以找出我们在哪里拥有“相邻功能”。一般的想法是,如果回归测试 A 命中方法 businessLogicFoo(),并且回归测试 B 也命中该方法,我们可以说回归测试 A 和 B 具有“相邻功能”。
我们对有效确定哪些回归测试具有“相邻功能”特别感兴趣,以便我们可以安排更好的回归运行(我们有更多的测试需要测试 - 所以我们最终总是测试所有值得回归的子集测试)。
以前有没有人尝试过这样的事情?使用 cobertura 或其他代码覆盖率库?
我的第一个猜测是我们编写了一个 groovy 脚本(我首选的脚本语言)来将 cobertura 报告导出为 XML,然后解析出所涵盖的类/方法 - 过滤掉任何多余的类 - 然后找到方法/类之间的交叉点两份报告。理想情况下,所有控制都在 Maven 中。但我只是猜测。
【问题讨论】:
-
您的目标是识别(几乎)重复测试吗?在我的经验中,“有更多的测试时间来测试”是一种非常不寻常的情况。为什么您的测试需要这么长时间才能运行?
-
我遇到过这样的情况,由于各种原因,一些测试需要很长时间才能运行。测试需要一个生命数据库,运行其中的大量数据,而我们的测试/开发系统运行在严重不足的硬件和网络上。因此,应用程序的完整测试套件可能需要半个多小时(有时在网络/数据库负载高峰期超过 2 小时)才能运行。当然,它很少完全运行,我们通常只运行子集。
-
很抱歉,这可能不清楚:测试是手动功能测试,不是自动化的,不是单元的。
标签: java groovy maven cobertura