<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 !!!
     

    關(guān)注測(cè)試,也關(guān)注成長(zhǎng)

    公告
    • 關(guān)注軟件測(cè)試自動(dòng)化,性能測(cè)試。
      目前負(fù)責(zé)醫(yī)療軟件功能測(cè)試以及
      測(cè)試過程改進(jìn)

    日歷
    <2008年3月>
    2425262728291
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345
    統(tǒng)計(jì)
    • 隨筆 - 22
    • 文章 - 0
    • 評(píng)論 - 87
    • 引用 - 0

    導(dǎo)航

    常用鏈接

    留言簿(17)

    隨筆分類

    隨筆檔案

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

     


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

    白盒測(cè)試的測(cè)試方法有代碼檢查法、靜態(tài)結(jié)構(gòu)分析法、靜態(tài)質(zhì)量度量法、邏輯覆蓋法、基本路徑測(cè)試法、域測(cè)試、符號(hào)測(cè)試、Z路徑覆蓋、程序變異。

      其中運(yùn)用最為廣泛的是基本路徑測(cè)試法。

      基本路徑測(cè)試法是在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計(jì)測(cè)試用例的方法。

      設(shè)計(jì)出的測(cè)試用例要保證在測(cè)試中程序的每個(gè)可執(zhí)行語句至少執(zhí)行一次。

      在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計(jì)測(cè)試用例。包括以下4個(gè)步驟和一個(gè)工具方法:

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

      2. 程序圈復(fù)雜度:McCabe復(fù)雜性度量。從程序的環(huán)路復(fù)雜性可導(dǎo)出程序基本路徑集合中的獨(dú)立路徑條數(shù),這是確定程序中每個(gè)可執(zhí)行語句至少執(zhí)行一次所必須的測(cè)試用例數(shù)目的上界。

      3. 導(dǎo)出測(cè)試用例:根據(jù)圈復(fù)雜度和程序結(jié)構(gòu)設(shè)計(jì)用例數(shù)據(jù)輸入和預(yù)期結(jié)果。

      4. 準(zhǔn)備測(cè)試用例:確保基本路徑集中的每一條路徑的執(zhí)行。

      工具方法:

      圖形矩陣:是在基本路徑測(cè)試中起輔助作用的軟件工具,利用它可以實(shí)現(xiàn)自動(dòng)地確定一個(gè)基本路徑集。

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

      圓圈稱為控制流圖的一個(gè)結(jié)點(diǎn),表示一個(gè)或多個(gè)無分支的語句或源程序語句

    圖1

      流圖只有二種圖形符號(hào):

      圖中的每一個(gè)圓稱為流圖的結(jié)點(diǎn),代表一條或多條語句。

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

      任何過程設(shè)計(jì)都要被翻譯成控制流圖。

      如何根據(jù)程序流程圖畫出控制流程圖?

      在將程序流程圖簡(jiǎn)化成控制流圖時(shí),應(yīng)注意:

      n 在選擇或多分支結(jié)構(gòu)中,分支的匯聚處應(yīng)有一個(gè)匯聚結(jié)點(diǎn)。

      n 邊和結(jié)點(diǎn)圈定的區(qū)域叫做區(qū)域,當(dāng)對(duì)區(qū)域計(jì)數(shù)時(shí),圖形外的區(qū)域也應(yīng)記為一個(gè)區(qū)域。

      如下頁圖所示

    圖2


     

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

      例如:

      1 if a or b

      2 x

      3 else

      4 y

      對(duì)應(yīng)的邏輯為:

    圖3

      獨(dú)立路徑:至少沿一條新的邊移動(dòng)的路徑

    圖4

    基本路徑測(cè)試法的步驟:

      o 第一步:畫出控制流圖

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

    圖5

      畫出其程序流程圖和對(duì)應(yīng)的控制流圖如下

    圖6

      o 第二步:計(jì)算圈復(fù)雜度

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

      有以下三種方法計(jì)算圈復(fù)雜度:

      流圖中區(qū)域的數(shù)量對(duì)應(yīng)于環(huán)型的復(fù)雜性;

      給定流圖G的圈復(fù)雜度V(G),定義為V(G)=E-N+2,E是流圖中邊的數(shù)量,N是流圖中結(jié)點(diǎn)的數(shù)量;

      給定流圖G的圈復(fù)雜度V(G),定義為V(G)=P+1,P是流圖G中判定結(jié)點(diǎn)的數(shù)量。

    圖7

      o 第三步:導(dǎo)出測(cè)試用

      根據(jù)上面的計(jì)算方法,可得出四個(gè)獨(dú)立的路徑。(一條獨(dú)立路徑是指,和其他的獨(dú)立路徑相比,至少引入一個(gè)新處理語句或一個(gè)新判斷的程序通路。V(G)值正好等于該程序的獨(dú)立路徑的條數(shù)。)

      ü 路徑1:4-14

      ü 路徑2:4-6-7-14

      ü 路徑3:4-6-8-10-13-4-14

      ü 路徑4:4-6-8-11-13-4-14

      根據(jù)上面的獨(dú)立路徑,去設(shè)計(jì)輸入數(shù)據(jù),使程序分別執(zhí)行到上面四條路徑。

      o 第四步:準(zhǔn)備測(cè)試用例

      為了確保基本路徑集中的每一條路徑的執(zhí)行,根據(jù)判斷結(jié)點(diǎn)給出的條件,選擇適當(dāng)?shù)臄?shù)據(jù)以保證某一條路徑可以被測(cè)試到,滿足上面例子基本路徑集的測(cè)試用例是:

    圖8

     舉例說明:

      例:下例程序流程圖描述了最多輸入50個(gè)值(以–1作為輸入結(jié)束標(biāo)志),計(jì)算其中有效的學(xué)生分?jǐn)?shù)的個(gè)數(shù)、總分?jǐn)?shù)和平均值。

    圖9

      步驟1:導(dǎo)出過程的流圖。

    圖10

      步驟2:確定環(huán)形復(fù)雜性度量V(G):

      1)V(G)= 6 (個(gè)區(qū)域)

      2)V(G)=E–N+2=16–12+2=6

      其中E為流圖中的邊數(shù),N為結(jié)點(diǎn)數(shù);

      3)V(G)=P+1=5+1=6

      其中P為謂詞結(jié)點(diǎn)的個(gè)數(shù)。在流圖中,結(jié)點(diǎn)2、3、5、6、9是謂詞結(jié)點(diǎn)。

      步驟3:確定基本路徑集合(即獨(dú)立路徑集合)。于是可確定6條獨(dú)立的路徑:

      路徑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:為每一條獨(dú)立路徑各設(shè)計(jì)一組測(cè)試用例,以便強(qiáng)迫程序沿著該路徑至少執(zhí)行一次。

      1)路徑1(1-2-9-10-12)的測(cè)試用例:

      score[k]=有效分?jǐn)?shù)值,當(dāng)k < i ;

      score[i]=–1, 2≤i≤50;

      期望結(jié)果:根據(jù)輸入的有效分?jǐn)?shù)算出正確的分?jǐn)?shù)個(gè)數(shù)n1、總分sum和平均分average。

      2)路徑2(1-2-9-11-12)的測(cè)試用例:

      score[ 1 ]= – 1 ;

      期望的結(jié)果:average = – 1 ,其他量保持初值。

      3)路徑3(1-2-3-9-10-12)的測(cè)試用例:

      輸入多于50個(gè)有效分?jǐn)?shù),即試圖處理51個(gè)分?jǐn)?shù),要求前51個(gè)為有效分?jǐn)?shù);

      期望結(jié)果:n1=50、且算出正確的總分和平均分。

      4)路徑4(1-2-3-4-5-8-2…)的測(cè)試用例:

      score[i]=有效分?jǐn)?shù),當(dāng)i<50;

      score[k]<0, k< i ;

      期望結(jié)果:根據(jù)輸入的有效分?jǐn)?shù)算出正確的分?jǐn)?shù)個(gè)數(shù)n1、總分sum和平均分average。

    5)路徑5的測(cè)試用例:

      score[i]=有效分?jǐn)?shù), 當(dāng)i<50;

      score[k]>100, k< i ;

      期望結(jié)果:根據(jù)輸入的有效分?jǐn)?shù)算出正確的分?jǐn)?shù)個(gè)數(shù)n1、總分sum和平均分average。

      6)路徑6(1-2-3-4-5-6-7-8-2…)的測(cè)試用例:

      score[i]=有效分?jǐn)?shù), 當(dāng)i<50;

      期望結(jié)果:根據(jù)輸入的有效分?jǐn)?shù)算出正確的分?jǐn)?shù)個(gè)數(shù)n1、總分sum和平均分average。

      注意事項(xiàng):

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

      方法工具:圖形矩陣

      o 導(dǎo)出控制流圖和決定基本測(cè)試路徑的過程均需要機(jī)械化,為了開發(fā)輔助基本路徑測(cè)試的軟件工具,稱為圖形矩陣(graph matrix)的數(shù)據(jù)結(jié)構(gòu)很有用。

      利用圖形矩陣可以實(shí)現(xiàn)自動(dòng)地確定一個(gè)基本路徑集。一個(gè)圖形矩陣是一個(gè)方陣,其行/列數(shù)控制流圖中的結(jié)點(diǎn)數(shù),每行和每列依次對(duì)應(yīng)到一個(gè)被標(biāo)識(shí)的結(jié)點(diǎn),矩陣元素對(duì)應(yīng)到結(jié)點(diǎn)間的連接(即邊)。在圖中,控制流圖的每一個(gè)結(jié)點(diǎn)都用數(shù)字加以標(biāo)識(shí),每一條邊都用字母加以標(biāo)識(shí)。如果在控制流圖中第i個(gè)結(jié)點(diǎn)到第j個(gè)結(jié)點(diǎn)有一個(gè)名為x的邊相連接,則在對(duì)應(yīng)的圖形矩陣中第i行/第j列有一個(gè)非空的元素x。

      對(duì)每個(gè)矩陣項(xiàng)加入連接權(quán)值(link weight),圖矩陣就可以用于在測(cè)試中評(píng)估程序的控制結(jié)構(gòu),連接權(quán)值為控制流提供了另外的信息。最簡(jiǎn)單情況下,連接權(quán)值是 1(存在連接)或0(不存在連接),但是,連接權(quán)值可以賦予更有趣的屬性:

      執(zhí)行連接(邊)的概率。

      穿越連接的處理時(shí)間

      穿越連接時(shí)所需的內(nèi)存。

      穿越連接時(shí)所需的資源。

      根據(jù)上面的方法對(duì)例4畫出圖形矩陣如下:

    圖11

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

    posted on 2008-03-12 09:50 Cinderella 閱讀(2550) 評(píng)論(1)  編輯  收藏 所屬分類: 程序設(shè)計(jì)基本技能 、功能測(cè)試 、他山之玉
    評(píng)論:
     
    Copyright © Cinderella Powered by: 博客園 模板提供:滬江博客
    主站蜘蛛池模板: jizzjizz亚洲日本少妇| 亚洲精品中文字幕麻豆| 色偷偷噜噜噜亚洲男人| 国产va精品免费观看| 亚洲一区二区三区91| 在线jlzzjlzz免费播放| 亚洲日本成本人观看| 国产无遮挡又黄又爽免费视频 | 久草视频在线免费看| 亚洲综合在线观看视频| 99久久国产免费-99久久国产免费 99久久国产免费中文无字幕 | 亚洲一区精品视频在线| 日本午夜免费福利视频| 边摸边吃奶边做爽免费视频网站| 亚洲av无码乱码在线观看野外| 有码人妻在线免费看片| 国产V亚洲V天堂无码| 波多野结衣在线免费视频| 亚洲一卡2卡3卡4卡5卡6卡 | 日韩精品成人亚洲专区| 久久久WWW免费人成精品| 亚洲AV无码一区二区三区DV| 黄页免费的网站勿入免费直接进入| 亚洲精品乱码久久久久久蜜桃图片| 国产精品视频免费一区二区三区 | 久久久久久a亚洲欧洲AV| 无码国产精品一区二区免费式直播| 亚洲中文字幕一区精品自拍| 一本久到久久亚洲综合| 毛片在线全部免费观看| 最新亚洲春色Av无码专区| 国产成人亚洲精品影院| **真实毛片免费观看| 亚洲AV成人无码网天堂| 亚洲人成网站影音先锋播放| 在线精品免费视频无码的| 野花香高清在线观看视频播放免费| 中文字幕 亚洲 有码 在线| 亚洲一区二区三区国产精品| 999久久久免费精品国产| 久久不见久久见免费影院www日本|