我们公司正在尝试强制执行测试驱动开发,作为开发经理,我正在尝试定义验收标准的真正含义。我们主要遵循敏捷方法,每个要测试的故事都需要一定程度的单元测试覆盖率保证(入口标准)。我很想听听你们如何在公司内部有效地从门控级别执行此操作(如果您这样做的话)。
2 回答
What you don't want is to set any code coverage requirements. Any requirement like that can and will be gamed.
Instead, I'd look at measuring RTF: Running, Tested Features. See http://xprogramming.com/articles/jatrtsmetric/
对于我们的 Ruby on Rails 应用程序,我们使用了一个名为SimpleCov的代码度量 gem 。我不确定贵公司使用什么语言,但我确信它有一个代码指标。SimpleCov 非常适合 Ruby,因为它提供了广泛的 GUI,可以突出显示代码是否被覆盖、跳过(过滤掉)或遗漏。
我们刚刚开始跟踪我们的代码覆盖率两个月。我们从 30% 开始,现在接近 60%。根据贵公司申请的年龄,您可能希望将覆盖率预期提高到 80% 或更高......根据 SimpleCov,任何 91% 或更高的东西都是“绿色”,低于 80% 是“红色” ”(用于很好的颜色类比)。
我觉得最重要的是确保你测试了你的关键特性——这些特性可能需要测试的代码行数最多。首先完成这些将大大增加覆盖率。
需要注意的另一件事是,如果您使用像 SimpleCov 这样的库,您可能能够跳过(过滤掉)您认为是遗留的代码行,甚至整个文件,并且可能会降低您的覆盖率。这也是我们的覆盖率在 2 个月内几乎翻了一番的另一个原因。
同样,我们是测量代码覆盖率的新手,但坚信它对我们当前的测试套件和应用程序开发有好处。