按路径覆盖要求进行测试是指,设计足够多测试用例,要求覆盖程序中所有可能的路径。
针对例中的4条可能路径
ace 记为 L1
abd 记为 L2
abe 记为 L3
acd 记为 L4
我们给出4个测试用例:CASE 1,CASE 7,CASE 8和CASE 11,使其分别覆盖这4条径:
这里所用的程序段非常简短,也只有4条路径。但在实际问题中,一个不太复杂的程序,其路径数都是一个庞大的数字,要在测试中覆盖这样多的路径是无法实现的。
为解决这一难题只得把覆盖的路径数压缩到一定限度内,例如,程序中的循环体只执行了一次。
其实,即使对于路径数很有限的程序已经作到了路径覆盖,仍然不能保证被测程序的正确性。
例如,在上述语句覆盖一段最后给出的程序段中出现的错误也不是路径覆盖可以发现的。
由此看出,各种结构测试方法都不能保证程序的正确性。
这一严酷的事实对热心测试的程序人员似乎是一个严重的打击。
但要记住,测试的目的并非要证明程序的正确性,而是要尽可能找出程序中的错误。确实并不存在一种十全十美的测试方法,能够发现所有的错误。
想要撒下几网把湖中的鱼全都捕上来是作不到的,软件测试是有局限性的。