语句测试

语句测试,语句测试指的是设计若干测试用例来执行程序代码中的语句;语句覆盖指的是被执行的语句数与所有可能的语句数之间的比值,如有些项目要求程序代码达到100%的语句覆盖。

下面是一个简单的程序,如果在基于结构的测试技术中没有特别说明,均将该源程序及其控制流图作为例子讲解:

if(a > 0 && b > 0) {c = c/a;}
if(a > 1 || c > 1) {c = c + 1;}
c = c + b;

该程序的控制流图如图所示。
语句测试

分析源代码的控制流图可以看出,只要设计一个测试用例就可以满足100%的语句覆盖准则。表所示为满足100%的语句覆盖准则所对应的测试用例。
语句测试

除了表中的测试用例可以满足100%的语句覆盖之外,还可以选择其他两条不同路径,即abdfh(T1F2)和acegh(F1T2)来满足覆盖要求,测试用例如表所示。
语句测试

尽管语句测试可以识别没有测试到的代码块,但是可能无法正确判断程序代码中的逻辑关系。当选择测试用例1作为语句测试的测试用例时,如果开发人员在写代码过程中将判定(a > 0 && b > 0)写为(a > 0 || b > 0),那么测试用例1并不能发现其中的错误(读者可以分析其中的原因),尽管其满足了100%的语句覆盖。

另外,语句覆盖可能会遗漏多个路径。例如,选择测试用例1虽然覆盖了100%的语句,但是它只覆盖了其中的一条路径,而遗漏了其他3条路径;选择测试用例2和3,也只覆盖了其中的两条路径,而遗漏了其他两条路径。

尽管语句覆盖是最低级别的测试覆盖,但是在实际的测试过程中达到100%的语句覆盖有时也是非常困难的。因为程序代码中很多的程序块用来处理异常情况,如内存耗尽。测试人员经常会发现很难在测试过程中模拟这样的异常情况,从而导致无法覆盖相关的语句。

酷客教程相关文章:

赞(0)

评论 抢沙发

评论前必须登录!