我们有一个已有 10 年历史的项目,其中包含超过 1000 万行 Java 代码。现在由于某些原因,组织决定为旧代码编写 JUnit 测试用例。我们正在使用 Mockito JUnit 测试用例。作为此更改的一部分,我们必须估算人工日的工作量。很难估计现有代码,而且我是这个项目的新手。只是想知道是否有任何经验法则可以根据代码行数进行估算。
最佳答案
我不能给你一个现实的估计,但我可以给你一个下限估计,这将 - 希望 - 表明手头的任务不应该完成。要使行覆盖率达到 80% 以上,您需要的手工测试代码行数与您的生产代码行数大致相同;所以这是 10 mio LOTC。凭借 20 年的 TDD 经验,我认为我从未在一天内编写超过 500 LOC 的代码(实际上,大多数日子可能少于 50 行)。所以下限是 10000000/500 = 20000 天或 100 人一整年除了编写测试之外什么都不做。
这听起来很可笑吗?因为它是。使这种规模的系统达到合理质量的状态需要不同的方法。您可能想阅读有关处理和替换遗留系统的策略。现在让所有(或大部分)代码接受测试是不可行的。
关于junit - 我们是否有任何经验法则来估算 JUnit 测试用例的工时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52703338/