<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Ready Test? Go, Go, Go !!!
     

    關注測試,也關注成長

    公告
    • 關注軟件測試自動化,性能測試。
      目前負責醫療軟件功能測試以及
      測試過程改進

    日歷
    <2008年3月>
    2425262728291
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345
    統計
    • 隨筆 - 22
    • 文章 - 0
    • 評論 - 87
    • 引用 - 0

    導航

    常用鏈接

    留言簿(17)

    隨筆分類

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

     


    作者:軒緣 來源:blogchina 引用地址:http://se.csai.cn/testtech/200803041451591663.htm

    白盒測試的測試方法有代碼檢查法、靜態結構分析法、靜態質量度量法、邏輯覆蓋法、基本路徑測試法、域測試、符號測試、Z路徑覆蓋、程序變異。

      其中運用最為廣泛的是基本路徑測試法。

      基本路徑測試法是在程序控制流圖的基礎上,通過分析控制構造的環路復雜性,導出基本可執行路徑集合,從而設計測試用例的方法。

      設計出的測試用例要保證在測試中程序的每個可執行語句至少執行一次。

      在程序控制流圖的基礎上,通過分析控制構造的環路復雜性,導出基本可執行路徑集合,從而設計測試用例。包括以下4個步驟和一個工具方法:

      1. 程序的控制流圖:描述程序控制流的一種圖示方法。

      2. 程序圈復雜度:McCabe復雜性度量。從程序的環路復雜性可導出程序基本路徑集合中的獨立路徑條數,這是確定程序中每個可執行語句至少執行一次所必須的測試用例數目的上界。

      3. 導出測試用例:根據圈復雜度和程序結構設計用例數據輸入和預期結果。

      4. 準備測試用例:確保基本路徑集中的每一條路徑的執行。

      工具方法:

      圖形矩陣:是在基本路徑測試中起輔助作用的軟件工具,利用它可以實現自動地確定一個基本路徑集。

      程序的控制流圖:描述程序控制流的一種圖示方法。

      圓圈稱為控制流圖的一個結點,表示一個或多個無分支的語句或源程序語句

    圖1

      流圖只有二種圖形符號:

      圖中的每一個圓稱為流圖的結點,代表一條或多條語句。

      流圖中的箭頭稱為邊或連接,代表控制流

      任何過程設計都要被翻譯成控制流圖。

      如何根據程序流程圖畫出控制流程圖?

      在將程序流程圖簡化成控制流圖時,應注意:

      n 在選擇或多分支結構中,分支的匯聚處應有一個匯聚結點。

      n 邊和結點圈定的區域叫做區域,當對區域計數時,圖形外的區域也應記為一個區域。

      如下頁圖所示

    圖2


     

    n 如果判斷中的條件表達式是由一個或多個邏輯運算符 (OR, AND, NAND, NOR) 連接的復合條件表達式,則需要改為一系列只有單條件的嵌套的判斷。

      例如:

      1 if a or b

      2 x

      3 else

      4 y

      對應的邏輯為:

    圖3

      獨立路徑:至少沿一條新的邊移動的路徑

    圖4

    基本路徑測試法的步驟:

      o 第一步:畫出控制流圖

      流程圖用來描述程序控制結構。可將流程圖映射到一個相應的流圖(假設流程圖的菱形決定框中不包含復合條件)。在流圖中,每一個圓,稱為流圖的結點,代表一個或多個語句。一個處理方框序列和一個菱形決測框可被映射為一個結點,流圖中的箭頭,稱為邊或連接,代表控制流,類似于流程圖中的箭頭。一條邊必須終止于一個結點,即使該結點并不代表任何語句(例如:if-else-then結構)。由邊和結點限定的范圍稱為區域。計算區域時應包括圖外部的范圍。

    圖5

      畫出其程序流程圖和對應的控制流圖如下

    圖6

      o 第二步:計算圈復雜度

      圈復雜度是一種為程序邏輯復雜性提供定量測度的軟件度量,將該度量用于計算程序的基本的獨立路徑數目,為確保所有語句至少執行一次的測試數量的上界。獨立路徑必須包含一條在定義之前不曾用到的邊。

      有以下三種方法計算圈復雜度:

      流圖中區域的數量對應于環型的復雜性;

      給定流圖G的圈復雜度V(G),定義為V(G)=E-N+2,E是流圖中邊的數量,N是流圖中結點的數量;

      給定流圖G的圈復雜度V(G),定義為V(G)=P+1,P是流圖G中判定結點的數量。

    圖7

      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 第四步:準備測試用例

      為了確保基本路徑集中的每一條路徑的執行,根據判斷結點給出的條件,選擇適當的數據以保證某一條路徑可以被測試到,滿足上面例子基本路徑集的測試用例是:

    圖8

     舉例說明:

      例:下例程序流程圖描述了最多輸入50個值(以–1作為輸入結束標志),計算其中有效的學生分數的個數、總分數和平均值。

    圖9

      步驟1:導出過程的流圖。

    圖10

      步驟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。

    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。

      注意事項:

      必須注意,一些獨立的路徑,往往不是完全孤立的,有時它是程序正常的控制流的一部分,這時,這些路徑的測試可以是另一條路徑測試的一部分。

      方法工具:圖形矩陣

      o 導出控制流圖和決定基本測試路徑的過程均需要機械化,為了開發輔助基本路徑測試的軟件工具,稱為圖形矩陣(graph matrix)的數據結構很有用。

      利用圖形矩陣可以實現自動地確定一個基本路徑集。一個圖形矩陣是一個方陣,其行/列數控制流圖中的結點數,每行和每列依次對應到一個被標識的結點,矩陣元素對應到結點間的連接(即邊)。在圖中,控制流圖的每一個結點都用數字加以標識,每一條邊都用字母加以標識。如果在控制流圖中第i個結點到第j個結點有一個名為x的邊相連接,則在對應的圖形矩陣中第i行/第j列有一個非空的元素x。

      對每個矩陣項加入連接權值(link weight),圖矩陣就可以用于在測試中評估程序的控制結構,連接權值為控制流提供了另外的信息。最簡單情況下,連接權值是 1(存在連接)或0(不存在連接),但是,連接權值可以賦予更有趣的屬性:

      執行連接(邊)的概率。

      穿越連接的處理時間

      穿越連接時所需的內存。

      穿越連接時所需的資源

      根據上面的方法對例4畫出圖形矩陣如下:

    圖11

      連接權為“1”表示存在一個連接,在圖中如果一行有兩個或更多的元素“1”,則這行所代表的結點一定是一個判定結點,通過連接矩陣中有兩個以上(包括兩個)元素為“1”的個數,就可以得到確定該圖圈復雜度的另一種算法。

    posted on 2008-03-12 09:50 Cinderella 閱讀(2550) 評論(1)  編輯  收藏 所屬分類: 程序設計基本技能功能測試他山之玉
    評論:
     
    Copyright © Cinderella Powered by: 博客園 模板提供:滬江博客
    主站蜘蛛池模板: 亚洲精品国产综合久久一线| 成人免费网站在线观看| 久久综合亚洲色HEZYO国产| 羞羞视频网站免费入口| 亚洲高清偷拍一区二区三区| 午夜亚洲乱码伦小说区69堂| 国产hs免费高清在线观看| 激情无码亚洲一区二区三区| 国产精品免费电影| 免费一级毛片在线播放视频免费观看永久| 四虎永久免费地址在线网站| 看亚洲a级一级毛片| 亚洲一区二区三区免费| a毛片久久免费观看| 亚洲AV人无码综合在线观看| 真实国产乱子伦精品免费| 亚洲午夜电影在线观看高清| 成年性生交大片免费看| 国产亚洲人成在线影院| 亚洲伊人久久综合中文成人网| 久久最新免费视频| 亚洲狠狠ady亚洲精品大秀| 成人毛片免费在线观看| 免费在线人人电影网| 久久精品亚洲综合一品| 欧美a级成人网站免费| 国产午夜亚洲精品不卡免下载| 伊人久久大香线蕉亚洲| 91免费国产自产地址入| 亚洲欧美日韩久久精品| 亚洲精品乱码久久久久久蜜桃不卡| 91精品啪在线观看国产线免费| 成人亚洲国产va天堂| 在线观看国产区亚洲一区成人 | 国产美女在线精品免费观看| 亚洲国产av玩弄放荡人妇| 在线亚洲精品自拍| 性xxxxx免费视频播放| 日韩在线观看免费完整版视频| 亚洲第一中文字幕| 免费一级国产生活片|