0

我试图证明 100% 的语句覆盖率在证明和测试方面并没有多大意义。我想不出任何简单的例子,这是我最好的尝试:

TestObject t = null;

            if (Console.ReadLine() == "A")
            {
                t = new TestObject();
                t.Value = 5;

            }
            Console.WriteLine(t.Value);  //exception only when the IF statement was not run as the variable remains null.

此外,当用户按“A”时,语句覆盖率为 100%。但是,当按下其他任何内容时,就会发生异常。

4

3 回答 3

1

我会说你的例子是为此目的的好处。

  • 您只需一个测试用例就拥有完整的 (100%) 语句覆盖率。该错误没有被发现。
  • 从覆盖率来看,有两个分支(IF 评估 TRUE 或 FALSE),只有一个被覆盖(50%)。如果分支覆盖率达到 100%,就会暴露 bug。这称为分支覆盖。
于 2013-01-25T18:05:54.267 回答
0

来自 Bullseye 测试覆盖工具的 Steve Cornnett 有一篇很棒的文章,名为“语句覆盖有什么问题?

您将找到一个完整的分析,说明为什么语句覆盖被认为是最弱的覆盖形式。

于 2013-01-26T10:24:36.903 回答
0

我认为你的断言是不正确的。通过 100% 的语句覆盖率,您可以确保您能够设计测试用例来验证您的所有代码。您似乎混淆了这样的想法,因为您可以使用单元测试来访问代码中的每一行,因此它正在使用一个测试用例进行全面测试。

于 2013-01-25T15:18:39.420 回答