基本測試技巧 軟件測試方法
基本測試被McCabe描述為通過源代碼或程序流程圖產生程序模塊的控制流圖。流程圖可用來列舉獨立的控制路徑和計算秩數v(G)——一種過程復雜度的測度(參見Myers的秩復雜度測量的擴展[17])。覆蓋獨立路徑的測試用例的基本集隨后被創建。
控制流圖是一種用節點代表程岸段,邊代表從給定程序段到別的程序段的連接的一種網絡圖。邊描出了從一個節點到另一個節點的控制轉移,可以代表條件的和非條件的任何轉移形式。節點代表了一種具有多發射邊的決策。循環是一個具有返回節點的發射邊的節點。區域是圖內被節點和邊包圍的范圍。每一個圖都有人口和出口節點。路徑是整個圖中從一個節點到另一個節點穿越邊的路徑,該路徑從人口節點開始到出口節點結束[11]。
4節點是順序執行的行為塊,而邊是一個塊到男一個塊的控制轉移。If/Th朗/Else/Endif和嵌套的If/rhen/Else/Endif是有條件地轉移控制到特殊行為組的語句的例子。
程序模塊中的內部結構復雜性是模塊執行功能數、模塊的輸入和輸出數、模塊的決策數的結果。結構化編程學說指出一個模塊應該執行且只執行一個功能[21、22]。如果這一基本原則被遵循了,由功能數引起的復雜度就會最小化。結構化程序還基于如下一個前提:每個模塊有且只有一個進入點和退出點。如果這樣的話,由于模塊接口的簡化,由輸入和輸出引起的復雜度將會得到控制。這樣抉策數就成了引起模塊復雜度的主要結構化維因素。
Me(五be復雜度測度是模塊的決策結構的指示。它通過控制流圈中決策的數量來測量過程復雜度[兒、12]。秩復雜度是個有用的度量,這是因為它也代表了感知的復雜度。Miller發現人類大腦可同時處理的最大信息量是3比特(用比特作為信息的單位是為了區分兩個平等的可能選擇)。整個可選擇事物的數目是2的冪,它等于包含在復雜決策中的區分數目[13]。
根據他的發現,Min盯制定了7±2規則。由于每個選擇都是可區分的,7個選擇是人腦默記的最優值。Mm口確定人類可同時處理的最多選擇數是9[13]。如果這一定理被用到程序模塊的決策結構。程序必須處理以理解復雜決策的比特數是2次冪的函數,它代表了在決策中包含的條件的數量。一個3級深度的If/Else嵌鞋包括23或者8個選擇.它低于Mill日給出的限制。再增加一個決策嵌套就會使選擇達到了16,超出了限制。因此,秩復雜度大于10的模塊,對人的瞬間記憶來說是難于完全理解的。所以如果c大于10。那么模塊就應該被重構,否則它將可能不可溯試。秩數可用三個簡單的公式來計算。第一個表明秩數的公式是
C=E—N+2 ’、i一- 。式中,c是秩數(為了簡化符號和使符號更有意義,c用來代替V(G),2用于代替2P(P通常為O’);E是邊的數目;Ⅳ是節點的數目。秩復雜度可通過邊與節點的關系函數來計算
復雜度也可以根據控制流圖中的區域的函數來計算。邊不能夠互相交叉,并且違反這個規則形戚的區域是雨合祛的區域叫只有合法區域才可代人復雜度公式進行計算。 +r1基于區域數的計算公式如下h:_ 。
” C。R十l式中,c是秩數;R是合法區域數。
秩數也可以根據圖中的簡單決策數來計算。簡單決策是這樣一個分支,它評估一個與單一條件相關聯的條件狀態。嵌套的條件和由邏輯運算符(AND、OR等)連接的條件應該被看成完全獨立的決策。
公式如下: ,
C=D+1
式中,D是簡單決策的數目。 一
文章來源于領測軟件測試網 http://www.kjueaiud.com/