一些测试方法 - 语句覆盖

设计若干个测试用例,运行所测程序,使得每一可执行语句至少执行一次。语句覆盖是最弱的逻辑覆盖准则。IF (( A > 1) AND ( B = 0 ))THEN X = X / A IF (( A = 2) OR ( X > 1 ) THEN X = X + 1其中“AND”和“OR”是两个逻辑运算符。图给出了它的流程图。a、b、c、d和e是控制流上的若干程序点。

语句覆盖的含意是,在测试时,首先设计若干个测试用例,然后运行被测程序,使程序中的每个可执行语句至少执行一次。

这时所谓“若干个”,自然是越少越好。

在上述程序段中,我们如果选用的测试用例是:

则程序按路径ace执行。这样该程序段的4个语句均得到执行,从而作到了语句覆盖。

但如果选用的测试用例是:

程序按路径abe执行,便未能达到语句覆盖。

从程序中每个语句都得到执行这一点来看,语句覆盖的方法似乎能够比较全面地检验每一个语句。但它也绝不是完美无缺的。

假如这一程序段中两个判断的逻辑运算有问题,例如,第一个判断的运算符“AND”错成运算符“OR”或是第二个判断中的运算符“OR”错成了运算符“AND”。这时仍使用上述前一个测试用例CASE1,程序仍将按路径ace执行。这说明虽然也作到了语句覆盖,却发现不了判断中逻辑运算的错误。