例:下例程序流程圖描述了最多輸入50個值(以–1作為輸入結束標志),計算其中有效的學生分數的個數、總分數和平均值。
步驟1:導出過程的流圖。
步驟2:確定環形復雜性度量V(G):
1)V(G)= 6 (個區域)
2)V(G)=E–N+2=16–12+2=6
其中E為流圖中的邊數,N為結點數;
3)V(G)=P+1=5+1=6
其中P為謂詞結點的個數。在流圖中,結點2、3、5、6、9是謂詞結點。
步驟3:確定基本路徑集合(即獨立路徑集合)。于是可確定6條獨立的路徑:
路徑1:1-2-9-10-12
路徑2:1-2-9-11-12
路徑3:1-2-3-9-10-12
路徑4:1-2-3-4-5-8-2…
路徑5:1-2-3-4-5-6-8-2…
路徑6:1-2-3-4-5-6-7-8-2…
步驟4:為每一條獨立路徑各設計一組測試用例,以便強迫程序沿著該路徑至少執行一次。
1)路徑1(1-2-9-10-12)的測試用例:
score[k]=有效分數值,當k < i ;
score[i]=–1, 2≤i≤50;
期望結果:根據輸入的有效分數算出正確的分數個數n1、總分sum和平均分average。
2)路徑2(1-2-9-11-12)的測試用例:
score[ 1 ]= – 1 ;
期望的結果:average = – 1 ,其他量保持初值。
3)路徑3(1-2-3-9-10-12)的測試用例:
輸入多于50個有效分數,即試圖處理51個分數,要求前51個為有效分數;
期望結果:n1=50、且算出正確的總分和平均分。
4)路徑4(1-2-3-4-5-8-2…)的測試用例:
score[i]=有效分數,當i<50;
score[k]<0, k< i ;
期望結果:根據輸入的有效分數算出正確的分數個數n1、總分sum和平均分average。
文章來源于領測軟件測試網 http://www.kjueaiud.com/