junit - 我们是否有任何经验法则来估算 JUnit 测试用例的工时

标签 junit mockito junit4 junit5

我们有一个已有 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/

相关文章:

java - 运行 junit 测试时未知实体

java - Mockito 模拟 when() 两种不同类型的泛型方法

java - 如何重新初始化我的 bean

java - 如何以编程方式在我的 Java 应用程序中运行所有 JUnit 测试?

java - 如何识别其他 JUnit 测试何时窃取我的 Spring Root Controller ?

java - JUnit 测试 SpringJUnit4ClassRunner

java - 简单的 cucumber 测试类通过,无需胶水文件

java - 如何使用 Mockito 对返回的模拟对象进行断言

java - 在 JUnit 测试中抛出所有异常是不好的做法吗?

android - 在 Android 上使用 Espresso 测试 EditText 错误