我在“我们如何在 Microsoft 进行测试”一书中遇到了“块测试”一词。我真的看不出这应该如何应用,你应该这样做而不是语句测试吗?据我了解,如果您进行语句测试,那么您基本上已经完成了块测试。
块测试有什么好处?
软件测试
技术
2022-01-11 17:29:35
1个回答
语句覆盖率和块覆盖率之间的区别在于数学。举个例子:
if (val == true)
{
DoThis();
DoThat();
DoTheOtherThing();
}
else
{
DoSomethingElse();
}
在该示例中,有两个代码块(语句的真实面和虚假面)。如果 true 块的第一条语句 (DoThis();) 执行,则以下两行将执行(假设没有异常)。
块覆盖背后的数学(对于那些关心这类事情的人)与执行了多少块有关。此代码示例中有两个块,因此测试一个块(例如 if 条件的真实一侧)将为您提供 50% 的块覆盖率。
语句覆盖率背后的数学与已覆盖的语句总数有关。if 条件的真实面在此摘录中的 4 条语句中有 3 条,因此编写一个涵盖真实情况的测试具有 75% 的语句覆盖率。
最后,数学并不重要。测量覆盖率的原因不是为了产生一个数字——它是为了帮助您发现哪些代码区域没有被您的测试覆盖,以便您确定是否需要进行更多测试。换句话说,覆盖测试是一种发现新测试的方法。