不正确的语句覆盖意义的更好例子?

时间:2013-01-25 15:13:26

标签: c# code-coverage

我试图证明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%。但是,当按下任何其他内容时,会发生异常。

3 个答案:

答案 0 :(得分:1)

我想说你的例子是为了这个目的的好处。

  • 只有一个测试用例,您可以完成(100%)语句覆盖。这个漏洞没有透露。
  • 从覆盖范围来看,有两个分支(IF评估为TRUE或FALSE),只覆盖一个(50%)。如果分支覆盖率达到100%,则会暴露该错误。这称为分支覆盖。

答案 1 :(得分:0)

我认为你的断言是不正确的。凭借100%的声明覆盖率,您可以确保能够设计测试用例以验证所有代码。您似乎对这个想法感到困惑,因为您可以使用单元测试来命中代码中的每一行,并使用一个测试用例对其进行全面测试。

答案 2 :(得分:0)

来自Bullseye测试覆盖率工具的Steve Cornnett有一篇名为“What is wrong with Statement Coverage?”的精彩文章

你会发现一个完整的分析,说明为什么声明覆盖被认为是最薄弱的覆盖范围。