基本路径覆盖的例子
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
有一个求平均值的过程Averagy,用PDL 描述如下:
PROCEDURE Averagy;
INTERFACE RETURNS average,total.input,total.valid;
INTERFACE ACCEPTS value,minimum,maximum,sum IS SCALAR;
TYPE valid[0..100] IS SCALAR ARRAY;
TYPE averagy,total.input,total.valid,minimum,maximum,sun IS SCALAR; TYPE i IS INTEGER;
i = 1;
total.input=total.valid = 0; sum=0;
increment total.input by 1;
THEN increment total.valid by 1;
sum= sum + value[i]; ELSE skip
ENDIF; increment i by 1;
ENDDO T HEN averagy = sum / total.valid;
E LSE averagy = -999;
ENDIF END Averagy
⑪ 由过程导出控制流图
⑫ 计算得到的控制流图的环路复杂度
V(G)=6 ⑬ 确定线性无关的基本路径
计算出的环路复杂性的值,就是该图已有的 线性无关基本路径集中的路径数目:
Path1:1-2-10-11-13
Path2:1-2-10-12-13
Path3:1-2-3-10-11-13 Path4:1-2-3-4-5-6-7-8-9-2
Path5:1-2-3-4-5-6-8-9-2
Path6:1-2-3-4-5-8-9-2
⑭ 准备测试用例,确保基本路径集中的每一
条路径的执行。
根据判定结点给出的条件,选择适当的数据,
以保证某一条路径可以被测试到,满足上例基本路
径集的测试用例:
Path1: 输入数据 value[k]=有效输入,限于 k
value[i]=-999 2<=i<=100
①
④
⑦
⑧ ⑨ a 图10.8 Averagy过程的控制流图
预期结果 n个值的正确的平均值,正确的总计数
Path2: 输入数据 value[1]=-999
预期结果平均值=-999,总计数器取初值
Path3: 输入数据试图处理101或更多的值,而前100个是有效值
预期结果与测试用例1相同
Path4: 输入数据 value[i]=有效输入,限于 i<100
value[k]<最小值 k
预期结果 n个值的正确的平均值,正确的总计数
Path5: 输入数据 value[i]=有效输入,限于 i<=100
value[k]>最大值 k
预期结果 n个值的正确的平均值,正确的总计数
Path6: 输入数据 value[i]=有效输入, i<=100
预期结果 n个正确的平均值,正确的总计数
注意:一些独立的路径,往往不是完全孤立的,有时它是程序正常的控制流的一部分。这些路径的测试可以是另一条路径测试的一部分。