用PDL语言描述的averagy过程如下:
PROCEDURE averagy
*This procedure computes the average of 100 or fewer numbers that lie bounding values; it also computes the total input and the total valid.
INTERFACE RETURENS averagy, total.input, total.valid;
INTERFACE ACCEPTS value, minimum, maximum;
TYPE value[1:100] IS SCALAR ARRAY;
TYPE averagy, total.input, total.valid, minmum, maximum, sum IS SCALAR;
TYPE i IS INTEGER;
1. i=1;
2. total.input =total.valid=0;
3. sum=0;
4. DO WHILE value [i]<>-999 AND value[i]<=maximum
5. increment total.input by 1;
6. IF value[i]>=minmum AND value[i]<=maximum
7. THEN increment total.valid by 1;
8. sum=sum+value[i];
9. ELSE skip;
10. ENDIF;
11. increment i by 1;
12. ENDDO
13. IF total.valid>0
14. THEN averagy=sum/total.valid;
15. ELSE averagy=-999;
16. ENDIF
17. END averagy
第1步:以详细设计或源代码作为基础,导出程序的控制流图。
?第2步:计算得到控制流图G的环路复杂性V(G)。
?V(G)=6(区域数)=5(判定节点数)+1=6
?第3步:确定线性无关路径的基本集
?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-8-9-2-10-11-13
?Path5:1-2-3-4-5-6-8-9-2-10-11-13
?Path6:1-2-3-4-5-6-7-8-9-210-11-13
?第4步:生成测试用例,确保基本路径集中每条路径的执行。