首页 > 解决方案 > 我们是否有任何经验法则来估计 JUnit 测试用例的工时

问题描述

我们有一个已有 10 年历史的项目,其中包含超过 1000 万行 Java 代码。现在由于某些原因,组织决定为旧代码编写 JUnit 测试用例。我们正在使用 Mockito JUnit 测试用例。作为此更改的一部分,我们必须估算工时工作量。很难估计现有代码,而且我是该项目的新手。只是想知道是否有任何根据代码行数估算的经验法则。

标签: junitmockitojunit4junit5

解决方案


我不能给你一个现实的估计,但我可以给你一个下限估计——希望——表明手头的任务不应该完成。要获得 80% 以上的有用行覆盖率,您将需要大约与生产代码一样多的手工测试代码行;所以这是 10 mio LOTC。凭借 20 年的 TDD 经验,我认为我在一天内写过的代码不会超过 500 行(实际上大多数时候可能少于 50 行)。因此,下限是 10000000/500 = 20000 天或 100 个人一整年都在编写测试。

这听起来很荒谬吗?因为它是。使这种规模的系统达到合理质量的状态需要不同的方法。您可能想阅读处理和替换遗留系统的策略。现在让所有(或大部分)代码处于测试状态是不可行的。


推荐阅读