|
||||
關注測試,也關注成長 |
公告
日歷
統計
導航常用鏈接留言簿(17)隨筆分類
隨筆檔案
搜索最新評論
閱讀排行榜評論排行榜 |
白盒測試的測試 其中運用最為廣泛的是基本路徑測試法。 設計出的測試用例要保證在測試中程序的每個可執行語句至少執行一次。 1. 程序的控制流圖:描述程序控制流的一種圖示方法。 2. 程序圈復雜度:McCabe復雜性度量。從程序的環路復雜性可導出程序基本路徑集合中的獨立路徑條數,這是確定程序中每個可執行語句至少執行一次所必須的測試用例數目的上界。 3. 導出測試用例:根據圈復雜度和程序結構設計用例數據輸入和預期結果。 4. 準備測試用例:確保基本路徑集中的每一條路徑的執行。 工具方法: 程序的控制流圖:描述程序控制流的一種圖示方法。 圓圈稱為控制流圖的一個結點,表示一個或多個無分支的語句或源程序語句
流圖只有二種圖形符號: 圖中的每一個圓稱為流圖的結點,代表一條或多條語句。 流圖中的箭頭稱為邊或連接,代表控制流 任何過程設計都要被翻譯成控制流圖。 如何根據程序流程圖畫出控制流程圖? 在將程序流程圖簡化成控制流圖時,應注意: n 在選擇或多分支結構中,分支的匯聚處應有一個匯聚結點。 n 邊和結點圈定的區域叫做區域,當對區域計數時,圖形外的區域也應記為一個區域。 如下頁圖所示
n 如果判斷中的 例如: 1 if a or b 2 x 3 else 4 y 對應的邏輯為:
o 第一步:畫出控制流圖
畫出其程序流程圖和對應的控制流圖如下
o 第二步:計算圈復雜度 流圖中區域的數量對應于環型的復雜性; 給定流圖G的圈復雜度V(G),定義為V(G)=E-N+2,E是流圖中邊的數量,N是流圖中結點的數量; 給定流圖G的圈復雜度V(G),定義為V(G)=P+1,P是流圖G中判定結點的數量。
o 第三步:導出測 根據上面的計算方法,可得出四個獨立的路徑。(一條獨立路徑是指,和其他的獨立路徑相比,至少引入一個新處理語句或一個新判斷的程序通路。V(G)值正好等于該程序的獨立路徑的條數。) ü 路徑1:4-14 ü 路徑2:4-6-7-14 ü 路徑3:4-6-8-10-13-4-14 ü 路徑4:4-6-8-11-13-4-14 o 第四步:準備測試用例
例:下例程序流程圖描述了最多輸入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… 1)路徑1(1-2-9-10-12)的測試用例: score[k]=有效分數值,當k < i ; score[i]=–1, 2≤i≤50; 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。 5)路徑5的測試用例:score[i]=有效分數, 當i<50; score[k]>100, k< i ; 期望結果:根據輸入的有效分數算出正確的分數個數n1、總分sum和平均分average。 6)路徑6(1-2-3-4-5-6-7-8-2…)的測試用例: score[i]=有效分數, 當i<50; 期望結果:根據輸入的有效分數算出正確的分數個數n1、總分sum和平均分average。 注意事項: 方法工具:圖形矩陣 利用圖形矩陣可以實現自動地確定一個基本路徑集。一個圖形矩陣是一個方陣,其行/列數控制流圖中的結點數,每行和每列依次對應到一個被標識的結點,矩陣元素對應到結點間的連接(即邊)。在圖中,控制流圖的每一個結點都用數字加以標識,每一條邊都用字母加以標識。如果在控制流圖中第i個結點到第j個結點有一個名為x的邊相連接,則在對應的圖形矩陣中第i行/第j列有一個非空的元素x。 對每個矩陣項加入連接權值(link weight),圖矩陣就可以用于在測試中評估程序的控制結構,連接權值為控制流提供了另外的信息。最簡單情況下,連接權值是 1(存在連接)或0(不存在連接),但是,連接權值可以賦予更有趣的屬性: 執行連接(邊)的概率。 穿越連接時所需的內存。 穿越連接時所需的資源。 根據上面的方法對例4畫出圖形矩陣如下:
連接權為“1”表示存在一個連接,在圖中如果一行有兩個或更多的元素“1”,則這行所代表的結點一定是一個判定結點,通過連接矩陣中有兩個以上(包括兩個)元素為“1”的個數,就可以得到確定該圖圈復雜度的另一種算法。
評論:
|
![]() |
|
Copyright © Cinderella | Powered by: 博客園 模板提供:滬江博客 |