日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

『软件测试3』八大典型的黑盒测试方法已来袭,快快接住!

發(fā)布時(shí)間:2023/12/4 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 『软件测试3』八大典型的黑盒测试方法已来袭,快快接住! 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 一、等價(jià)類劃分法
    • 1、定義
    • 2、等價(jià)類劃分法步驟
    • 3、設(shè)計(jì)測(cè)試用例步驟
    • 4、案例:學(xué)生選修課程
  • 二、邊界值分析法
    • 1、邊界值分析法概述
    • 2、設(shè)計(jì)測(cè)試用例
    • 3、邊界值設(shè)計(jì)原則
  • 三、錯(cuò)誤推測(cè)法
    • 1、錯(cuò)誤推測(cè)法概述
    • 2、錯(cuò)誤推測(cè)法基本思想
  • 四、因果圖設(shè)計(jì)法
    • 1、因果圖設(shè)計(jì)法概述
    • 2、因果圖表示
    • 3、約束條件
    • 4、設(shè)計(jì)測(cè)試用例
    • 5、優(yōu)點(diǎn)
    • 6、思考題
  • 五、判定表驅(qū)動(dòng)法
    • 1、判定表驅(qū)動(dòng)法概述
    • 2、判定驅(qū)動(dòng)法 —— 引例
    • 3、判定表結(jié)構(gòu)
    • 4、判定表的建立步驟
    • 5、使用判定表設(shè)計(jì)測(cè)試用例的條件
    • 6、案例:工資發(fā)放
  • 六、正交實(shí)驗(yàn)設(shè)計(jì)法
    • 1、正交實(shí)驗(yàn)設(shè)計(jì)法概述
    • 2、正交實(shí)驗(yàn)設(shè)計(jì)法三個(gè)關(guān)鍵因素
    • 3、利用正交實(shí)驗(yàn)法設(shè)計(jì)測(cè)試用例的步驟
    • 4、正交表的特點(diǎn)
    • 5、總結(jié)
    • 6、案例:微信Web頁面運(yùn)行環(huán)境正交試驗(yàn)設(shè)計(jì)
  • 七、場(chǎng)景法
    • 1、設(shè)計(jì)思想
    • 2、場(chǎng)景的構(gòu)成要素
      • (1)基本流
      • (2)場(chǎng)景流
    • 3、基本流和備選流的場(chǎng)景說明
    • 4、設(shè)計(jì)測(cè)試用例
    • 5、總結(jié)
    • 6、案例:在線購(gòu)物案例
  • 八、功能圖法
  • 九、黑盒測(cè)試方法策略總結(jié)
    • 1、各種測(cè)試方法選擇的綜合策略
    • 2、黑盒測(cè)試的優(yōu)缺點(diǎn)
  • 十、寫在最后

一、等價(jià)類劃分法

1、定義

一個(gè)程序可以有多個(gè)輸入,等價(jià)類劃分就是將這些輸入數(shù)據(jù)按照輸入需求進(jìn)行分類,將它們劃分為若干個(gè)子集,這些子集即為等價(jià)類(某個(gè)輸入域的子集合),在每個(gè)等價(jià)類中選擇有代表性的數(shù)據(jù)設(shè)計(jì)測(cè)試用例。

舉個(gè)例子

這種方法類似于學(xué)生站隊(duì),男生站左邊,女生站右邊,老師站中間,這樣就把師生這整個(gè)群體劃分成了三個(gè)等價(jià)類

2、等價(jià)類劃分法步驟

(1)先從程序規(guī)格說明書中找出各個(gè)輸入條件
(2)再為每個(gè)輸入條件劃分等價(jià)類,形成若干互不相交的子集
(3)列出等價(jià)表

輸入條件有效等價(jià)類無效等價(jià)類
………………

3、設(shè)計(jì)測(cè)試用例步驟

等價(jià)類劃分法設(shè)計(jì)測(cè)試用例要經(jīng)歷劃分等價(jià)類(列出等價(jià)類表)和選取測(cè)試用例兩步。

(1)劃分等價(jià)類

等價(jià)類是指某個(gè)輸入域的子集合。在該子集合中,各個(gè)輸入數(shù)據(jù)對(duì)于揭露程序中的錯(cuò)誤都是等效的。測(cè)試代表值就等價(jià)于這一類其他值的測(cè)試。

那在劃分等價(jià)類的時(shí)候,會(huì)出現(xiàn)有效等價(jià)類和無效等價(jià)類,這個(gè)時(shí)候我們需要怎么判斷呢?

有效等價(jià)類就是有效值的集合,它們是符合程序要求、合理且有意義的輸入數(shù)據(jù)。

無效等價(jià)類就是無效值的集合,它們是不符合程序要求、不合理或無意義的輸入數(shù)據(jù)。

因此,在設(shè)計(jì)測(cè)試用例時(shí),要同時(shí)考慮有效等價(jià)類和無效等價(jià)類的設(shè)計(jì)。

同時(shí),在劃分等價(jià)類的時(shí)候,需要遵循一定的劃分原則:

等價(jià)類劃分原則

原則1:如果輸入條件規(guī)定了取值范圍值的個(gè)數(shù)的情況下,可以確定一個(gè)有效等價(jià)類和兩個(gè)無效等價(jià)類。

原則2:如果輸入條件規(guī)定了輸入值的集合或者規(guī)定了**“必須如何”的條件**的情況下,可以確立一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。

原則3:如果輸入條件是一個(gè)布爾量的情況下,可確定一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。

原則4:如果規(guī)定了輸入數(shù)據(jù)的一組值(假定n個(gè)),并且程序要對(duì)每一個(gè)輸入值分別處理的情況下,可確定n個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。

原則5:如果規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則,可確定一個(gè)有效等價(jià)類(符合規(guī)則)和若干個(gè)無效等價(jià)類(從不同角度違反規(guī)則)。

原則6:在確知已劃分的等價(jià)類中,各元素在程序處理中的方式不同的情況下,則應(yīng)再將該等價(jià)類進(jìn)一步地劃分為更小的等價(jià)類。

同一個(gè)等價(jià)類中的數(shù)據(jù)發(fā)現(xiàn)程序缺陷的能力是相同的,如果使用等價(jià)類中的其中一個(gè)數(shù)據(jù)不能捕獲缺陷,那么使用等價(jià)類中的其他數(shù)據(jù)也不能捕獲缺陷;同樣,如果等價(jià)類中的其中一個(gè)數(shù)據(jù)能夠捕獲缺陷,那么該等價(jià)類中的其他數(shù)據(jù)也能捕獲缺陷,即等價(jià)類中的所有輸入數(shù)據(jù)都是等效的

(2)設(shè)計(jì)測(cè)試用例

  • 在確立了等價(jià)類之后,建立等價(jià)類列表,列出所有劃分出的等價(jià)類。
  • 為每個(gè)等價(jià)類規(guī)定一個(gè)唯一編號(hào)
  • 設(shè)計(jì)一個(gè)新的測(cè)試用例,使其盡可能多地覆蓋尚未被覆蓋的有效等價(jià)類。重復(fù)這一步,直到所有的有效等價(jià)類都被覆蓋為止。
  • 設(shè)計(jì)一個(gè)新的測(cè)試用例,使其僅覆蓋一個(gè)尚未被覆蓋的無效等價(jià)類。重復(fù)這一步,直到所有的無效等價(jià)類都被覆蓋為止。

4、案例:學(xué)生選修課程

看到這里,不妨再做下案例分析。

案例1:每個(gè)學(xué)生可以選修1~3門課程,要求采用等價(jià)類設(shè)計(jì)測(cè)試用例。

解題思路:首先分析有效等價(jià)類和無效等價(jià)類,然后建立等價(jià)類表。

【解析】

(1)根據(jù)題干分析有效等價(jià)類和無效等價(jià)類:

? 有效等價(jià)類:選修1~3門課

? 無效等價(jià)類:沒有選修課、選修3門課以上

(2)根據(jù)分析建立等價(jià)類表:

(3)根據(jù)等價(jià)類表設(shè)計(jì)測(cè)試用例覆蓋有效等價(jià)類和無效等價(jià)類:

案例2:某連鎖酒店集團(tuán)實(shí)行積分獎(jiǎng)勵(lì)計(jì)劃,會(huì)員每次入住集團(tuán)旗下酒店均可以獲得一定積分,積分由歡迎積分加消費(fèi)積分構(gòu)成。其中歡迎積分跟酒店等級(jí)有關(guān),具體標(biāo)準(zhǔn)如表1-1所示;消費(fèi)積分跟每次入住消費(fèi)金額有關(guān),具體標(biāo)準(zhǔn)為每消費(fèi)1元獲得2積分(不足1元的部分不給分)。此外,集團(tuán)會(huì)員分為優(yōu)先會(huì)員、金會(huì)員、白金會(huì)員三個(gè)級(jí)別,金會(huì)員和白金會(huì)員在入住酒店時(shí)可獲得消費(fèi)積分的額外獎(jiǎng)勵(lì),獎(jiǎng)勵(lì)規(guī)則如表1-2所示。

表1-1 集團(tuán)不同等級(jí)酒店的歡迎積分標(biāo)準(zhǔn)

表1-2 額外積分獎(jiǎng)勵(lì)規(guī)則

該酒店集團(tuán)開發(fā)了一個(gè)程序來計(jì)算會(huì)員每次入住后所累積的積分,程序的輸入包括會(huì)員級(jí)別L、酒店等級(jí)C和消費(fèi)金額A(單位:元),程序的輸出為本次積分S。其中,L為單個(gè)字母且大小寫不敏感,C為取值1到6的整數(shù),A為正浮點(diǎn)數(shù)且最多保留兩位小數(shù),S為整數(shù)。

問題一】采用等價(jià)類劃分法對(duì)該程序進(jìn)行測(cè)試,等價(jià)類表如表1-3所示,請(qǐng)補(bǔ)充表中空(1)-(7)。

問題二】根據(jù)以上等價(jià)類表設(shè)計(jì)的測(cè)試用例如下表所示,請(qǐng)補(bǔ)充表2-4中空(1)-(13)。

二、邊界值分析法

1、邊界值分析法概述

1)邊界值分析法是對(duì)軟件的輸入或輸出邊界進(jìn)行測(cè)試的一種方法,它通常作為等價(jià)類劃分法的一種補(bǔ)充測(cè)試。

2)在等價(jià)類劃分法中,無論是輸入等價(jià)類還是輸出等價(jià)類,都會(huì)有多個(gè)邊界,而邊界值分析法就是在這些邊界附近尋找某些點(diǎn)作為測(cè)試數(shù)據(jù),而不是在等價(jià)類內(nèi)部選擇測(cè)試數(shù)據(jù)。

2、設(shè)計(jì)測(cè)試用例

設(shè)計(jì)測(cè)試用例步驟

1)首先劃分等價(jià)類,根據(jù)等價(jià)類劃分情況確定邊界情況

2)選取正好等于剛剛大于剛剛小于邊界的值作為測(cè)試數(shù)據(jù),而不是選取等價(jià)類中的典型值或任意值。

3、邊界值設(shè)計(jì)原則

原則1:如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個(gè)范圍的邊界的值,以及剛剛超越這個(gè)范圍邊界的值作為測(cè)試輸入數(shù)據(jù)

原則2:如果輸入條件規(guī)定了值的個(gè)數(shù),則用最大個(gè)數(shù)、最小個(gè)數(shù)、比最小個(gè)數(shù)少1、比最大個(gè)數(shù)多1的數(shù)作為測(cè)試數(shù)據(jù)

原則3:根據(jù)規(guī)格說明的每個(gè)輸出條件,使用前面的原則1。

原則4:根據(jù)規(guī)格說明的每個(gè)輸出條件,使用前面的原則2。

原則5:如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合,則應(yīng)選取集合的第一個(gè)元素最后一個(gè)元素作為測(cè)試用例。

原則6:如果程序中使用了一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)該選擇這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)邊界上的值作為測(cè)試用例。

原則7:分析規(guī)格說明,找出其他可能的邊界條件

三、錯(cuò)誤推測(cè)法

1、錯(cuò)誤推測(cè)法概述

錯(cuò)誤推測(cè)法就是人們可以靠經(jīng)驗(yàn)和直覺推測(cè)程序中可能存在的各種錯(cuò)誤,從而有針對(duì)性地編寫檢查這些錯(cuò)誤的例子。

2、錯(cuò)誤推測(cè)法基本思想

(1)列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況(比如,程序只能輸入數(shù)字,測(cè)試時(shí)可以輸入字母進(jìn)行測(cè)試)。
(2)根據(jù)它們選擇測(cè)試用例。

四、因果圖設(shè)計(jì)法

1、因果圖設(shè)計(jì)法概述

如果在測(cè)試時(shí)必須考慮輸入條件的各種組合以及各種輸出情況,那么可以使用一種適用于描述對(duì)于多種條件的組合,相應(yīng)產(chǎn)生多個(gè)動(dòng)作的形式來設(shè)計(jì)測(cè)試用例,這就需要利用因果圖。

2、因果圖表示

因果圖使用一些簡(jiǎn)單的邏輯符號(hào)和直線將程序的因(輸入)與果(輸出)連接起來,一般原因用ci表示,結(jié)果用ei表示,各結(jié)點(diǎn)表示狀態(tài),可以取值“0”或“1”,其中“0”表示狀態(tài)不出現(xiàn),“1”表示狀態(tài)出現(xiàn)。

如下圖所示:

ci與ei之間有恒等、非(~)、或(∨)、與(∧)4種關(guān)系,分別為:

恒等:在恒等關(guān)系中,要求程序有一個(gè)輸入和一個(gè)輸出,輸出與輸入保持一致。若c1為1,則e1也為1,若c1為0,則e1也為0。

:非使用符號(hào)“~”表示,在這種關(guān)系中,要求程序有一個(gè)輸入和一個(gè)輸出,輸出是輸入的取反。若c1為1,則e1為0,若c1為0,則e1為1。

:使用符號(hào)“∨”表示,或關(guān)系可以有任意個(gè)輸入,只要這些輸入中有一個(gè)為1,則輸出為1,否則輸出為0。

:使用符號(hào)“∧”表示,與關(guān)系也可以有任意個(gè)輸入,但只有這些輸入全部為1,輸出才能為1,否則輸出為0。

以下用一張圖展示這4種關(guān)系:

總結(jié)

  • 在軟件測(cè)試中,如果程序有多個(gè)輸入,那么除了輸入與輸出之間的作用關(guān)系之外,這些輸入之間往往也會(huì)存在某些依賴關(guān)系,某些輸入條件本身不能同時(shí)出現(xiàn),某一種輸入可能會(huì)影響其他輸入。
  • 例如,某一軟件用于統(tǒng)計(jì)體檢信息,在輸入個(gè)人信息時(shí),性別只能輸入男或女,這兩種輸入不能同時(shí)存在,而且如果輸入性別為女,那么體檢項(xiàng)就會(huì)受到限制。

3、約束條件

為了表示原因與原因之間原因與結(jié)果之間可能存在的約束條件,在因果圖中可以附加一些表示約束條件的符號(hào)。

(1)輸入條件的約束類別可分為四種:

E(Exclusive,這些依賴關(guān)系在軟件測(cè)試中稱為“約束”,異)、I(at least one,或)、O(one and only one,唯一)、R(Requires,要求),在因果圖中,用特定的符號(hào)表明這些約束關(guān)系。

  • E(異):a和b中最多只能有一個(gè)為1,即a和b不能同時(shí)為1。
  • I(或):a、b和c中至少有一個(gè)必須是1,即a、b、c不能同時(shí)為0。
  • O(唯一):a和b有且僅有一個(gè)為1。
  • R(要求):a和b必須保持一致,即a為1時(shí),b也必須為1,a為0時(shí),b也必須為0。

(2)輸出條件的約束類別只有一種:

  • 除了輸入條件,輸出條件也會(huì)相互約束,輸出條件的約束只有一種M(Mask,強(qiáng)制),強(qiáng)制約束關(guān)系。若結(jié)果a是1,那么結(jié)果b強(qiáng)制為0。

4、設(shè)計(jì)測(cè)試用例

(1)因果圖設(shè)計(jì)測(cè)試用例思想:

  • 從程序規(guī)格說明書的描述中,找出因(輸入條件)和果(輸出結(jié)果或者程序狀態(tài)的改變);

  • 通過因果圖轉(zhuǎn)換為判定表

  • 為判定表中的每一列設(shè)計(jì)一個(gè)測(cè)試用例;

(2)使用因果圖設(shè)計(jì)測(cè)試用例的步驟:

  • 分析程序規(guī)格說明書描述內(nèi)容,確定程序的輸入與輸出,即確定“原因”和“結(jié)果” 。

  • 分析得出輸入與輸入之間輸入與輸出之間的對(duì)應(yīng)關(guān)系,將這些輸入與輸出之間的關(guān)系使用因果圖表示出來。

  • 由于語法與環(huán)境的限制,有些輸入與輸入之間、輸入與輸出之間的組合情況是不可能出現(xiàn)的,對(duì)于這種情況,使用符號(hào)標(biāo)記它們之間的限制或約束關(guān)系。

  • 將因果圖轉(zhuǎn)換為決策表,根據(jù)決策表設(shè)計(jì)測(cè)試用例。(決策表將在標(biāo)題五判定表驅(qū)動(dòng)法中提到)

5、優(yōu)點(diǎn)

因果圖法的優(yōu)點(diǎn):

  • 考慮到了輸入情況的各種組合以及各個(gè)輸入情況之間的相互制約關(guān)系

  • 因果圖的約束關(guān)系可以有效簡(jiǎn)化決策表,幫助測(cè)試人員高效率的開發(fā)測(cè)試用例。

  • 因果圖法是將自然語言規(guī)格說明轉(zhuǎn)化成形式語言規(guī)格說明的一種嚴(yán)格的方法,可以指出規(guī)格說明存在的不完整性二義性

6、思考題

程序的規(guī)格說明要求:輸入的第一個(gè)字符必須是#或*,第二個(gè)字符必須是一個(gè)數(shù)字,在此情況下進(jìn)行文件的修改;如果第一個(gè)字符不是#或*,則給出信息N,如果第二個(gè)字符不是數(shù)字,則給出信息M。采用因果圖法設(shè)計(jì)該軟件的測(cè)試用例。

具體解析如下:
1)分析程序規(guī)格說明中的原因和結(jié)果:

原因結(jié)果
C1:第一個(gè)字符是#e1:給出信息N
C2:第一個(gè)字符是*e2:修改文件
C3:第二個(gè)字符是一個(gè)數(shù)字e3:給出信息M

(2)畫出因果圖:

(3)將因果圖轉(zhuǎn)換成判定表,3個(gè)條件一般可以有23種組合

12345678
原因c111110000
c211001100
c310101010
結(jié)果e1??
e2??
e3??

(4)簡(jiǎn)化判定表,第7列和第8列合并

1234567
原因c11111000
c21100110
c3101010-
結(jié)果e1?
e2??
e3??

(5)根據(jù)判定表生成測(cè)試用例

測(cè)試用例ID輸入數(shù)據(jù)輸出結(jié)果
1#3修改文件
2#M給出信息M
3*5修改文件
4*A給出信息M
5MM給出信息N

五、判定表驅(qū)動(dòng)法

1、判定表驅(qū)動(dòng)法概述

判定表也稱為決策表,其實(shí)質(zhì)就是一種邏輯表。在程序設(shè)計(jì)發(fā)展初期,判定表就已經(jīng)被當(dāng)作程序開發(fā)的輔助工具了,幫助開發(fā)人員整理開發(fā)模式和流程,因?yàn)樗梢园褟?fù)雜的邏輯關(guān)系和多種條件組合的情況表達(dá)的既具體又明確,利用判定表可以設(shè)計(jì)出完整的測(cè)試用例集合。

2、判定驅(qū)動(dòng)法 —— 引例

為了讓大家明白什么是判定表,下面通過一個(gè)“圖書閱讀指南”來制作一個(gè)判定表,圖書閱讀指南指明了圖書閱讀過程中可能出現(xiàn)的狀況,以及針對(duì)各種情況給讀者的建議。

(1)在圖書閱讀過程中可能會(huì)出現(xiàn)3種情況:

  • 是否疲倦。
  • 是否對(duì)內(nèi)容感興趣。
  • 對(duì)書中的內(nèi)容是否感到糊涂。

如果回答是肯定的,則使用“Y”標(biāo)記;

如果回答是否定的,則使用“N”標(biāo)記。

那么這3種情況可以有23=8種組合,針對(duì)這8種組合。

(2)閱讀指南給讀者提供了4條建議:

  • 回到本章開頭重讀。
  • 繼續(xù)讀下去。
  • 跳到下一章去讀。
  • 停止閱讀并休息。

3)針對(duì)以上分析,得出以下圖書閱讀指南判定表

問題與建議12345678
問題是否疲倦YYYYNNNN
是否對(duì)內(nèi)容感興趣YYNNNYYN
對(duì)書中內(nèi)容是否感到糊涂YNNYYYNN
建議回到本章開頭重讀?
繼續(xù)讀下去?
跳到下一章去讀??
停止閱讀并休息????

4)在實(shí)際測(cè)試中,條件樁往往很多,而且每個(gè)條件樁都有真假兩個(gè)條件項(xiàng),有n個(gè)條件樁的判定表就會(huì)有2n條件規(guī)則,如果每條規(guī)則都設(shè)計(jì)一個(gè)測(cè)試用例,不僅工作量大,而且有些工作量可能是重復(fù)的無意義的。例如在“圖書閱讀指南”中,第1、2條規(guī)則,第1條規(guī)則取值為:Y、Y、Y,執(zhí)行結(jié)果為“停止閱讀并休息”;第2條規(guī)則取值為:Y、Y、N,執(zhí)行結(jié)果也是為“停止閱讀并休息”;對(duì)于這兩條規(guī)則來說,前兩個(gè)問題的取值相同,執(zhí)行結(jié)果一樣。

這些不影響結(jié)果取值的問題稱為無關(guān)條件項(xiàng),用“-”表示。忽略無關(guān)條件項(xiàng),可以將兩條規(guī)則合并。

合并規(guī)則需要滿足如下兩個(gè)條件兩條規(guī)則采取的動(dòng)作相同;兩條規(guī)則的條件項(xiàng)取值相似。

(5)根據(jù)合并規(guī)則,可以將“圖書閱讀指南”判定表合并。

問題與建議12345
問題是否疲倦YYNNN
是否對(duì)內(nèi)容感興趣YNNYY
對(duì)書中內(nèi)容是否感到糊涂---YN
建議回到本章開頭重讀?
繼續(xù)讀下去?
跳到下一章去讀?
停止閱讀并休息??

3、判定表結(jié)構(gòu)

判定表是把作為條件的所有輸入的各種組合值以及對(duì)應(yīng)的輸出值都羅列出來而形成的表格,判定表由4個(gè)部分組成,判定表結(jié)構(gòu)如下:

條件樁條件項(xiàng)
動(dòng)作樁動(dòng)作項(xiàng)

其中每一列稱為一個(gè)規(guī)則。判定表的4個(gè)部分分別為:

  • 條件樁:列出問題的所有條件,除了某些問題對(duì)條件的先后次序有要求之外,通常決策表中所列條件的先后次序都無關(guān)緊要。
  • 條件項(xiàng):條件項(xiàng)就是條件樁的所有可能取值。
  • 動(dòng)作樁:動(dòng)作樁就是問題可能采取的操作,這些操作一般沒有先后次序之分。
  • 動(dòng)作項(xiàng):指出在條件項(xiàng)的各組取值情況下應(yīng)采取的動(dòng)作。

在判定表中,任何一個(gè)條件組合的特定取值及其相應(yīng)要執(zhí)行的操作稱為一條規(guī)則,即判定表中的每一列就是一條規(guī)則,每一列都可以設(shè)計(jì)一個(gè)測(cè)試用例,根據(jù)判定表設(shè)計(jì)測(cè)試用例就不會(huì)有所遺漏。

4、判定表的建立步驟

  • 確定規(guī)則個(gè)數(shù)(n個(gè)條件相應(yīng)的有2?條規(guī)則)。
  • 列出所有的條件樁動(dòng)作樁
  • 填入條件項(xiàng)。
  • 填入動(dòng)作項(xiàng),制定初始判定表。
  • 簡(jiǎn)化,合并相似規(guī)則或相同動(dòng)作。

5、使用判定表設(shè)計(jì)測(cè)試用例的條件

  • 規(guī)格說明以判定表的形式給出,或很容易轉(zhuǎn)換成判定表。
  • 條件的排列順序不影響執(zhí)行哪些操作。
  • 規(guī)則的排列順序不影響執(zhí)行哪些操作。
  • 當(dāng)某一規(guī)則的條件已經(jīng)滿足,并確定要執(zhí)行的操作后,不必檢驗(yàn)別的規(guī)則。
  • 如果某一規(guī)則要執(zhí)行多個(gè)操作,這些操作的執(zhí)行順序無關(guān)緊要。

6、案例:工資發(fā)放

某公司的薪資管理制度如下:員工工資分為年薪制與月薪制兩種,員工的錯(cuò)誤定位包括普通錯(cuò)誤與嚴(yán)重錯(cuò)誤兩種,如果是年薪制的員工,犯普通錯(cuò)誤扣款2%,犯嚴(yán)重錯(cuò)誤扣款4%;如果是月薪制的員工,犯普通錯(cuò)誤扣款4%,犯嚴(yán)重錯(cuò)誤扣款8%。該公司編寫了一款軟件用于員工工資計(jì)算發(fā)放,現(xiàn)在要對(duì)該軟件進(jìn)行測(cè)試。

對(duì)公司員工工資管理進(jìn)行分析,可得出員工工資由4個(gè)因素決定:年薪、月薪、普通錯(cuò)誤、嚴(yán)重錯(cuò)誤。其中,年薪與月薪不可能同時(shí)并存,但普通錯(cuò)誤與嚴(yán)重錯(cuò)誤可以并存。

員工最終扣款結(jié)果有7種:未扣款、扣款2%、扣款4%、扣款6%(2%+4%)、扣款4%、扣款8%、扣款12%(4%+8%)。

采用判定表驅(qū)動(dòng)法設(shè)計(jì)該軟件的測(cè)試用例。

具體解析如下:

1)分析員工工資的原因和結(jié)果:

2)有4個(gè)原因,每個(gè)原因有“Y”和“N”兩個(gè)取值,理論上可以組成24=16種規(guī)則,但是c1與c2不能同時(shí)并存,因此有23=8種規(guī)則。得出員工工資判定表如下:

3)最終得出員工工資測(cè)試用例表:

六、正交實(shí)驗(yàn)設(shè)計(jì)法

1、正交實(shí)驗(yàn)設(shè)計(jì)法概述

正交實(shí)驗(yàn)設(shè)計(jì)法(Orthogonal experimental design)是指從大量的實(shí)驗(yàn)點(diǎn)中挑選出適量的有代表性的點(diǎn),依據(jù)Glois理論導(dǎo)出“正交表”,從而合理的安排實(shí)驗(yàn)的一種實(shí)驗(yàn)設(shè)計(jì)方法。

2、正交實(shí)驗(yàn)設(shè)計(jì)法三個(gè)關(guān)鍵因素

  • 指標(biāo):判斷實(shí)驗(yàn)結(jié)果優(yōu)劣的標(biāo)準(zhǔn)。
  • 因子:因子也稱為因素,是指所有影響實(shí)驗(yàn)指標(biāo)的條件。
  • 因子的狀態(tài):因子的狀態(tài)也叫因子的水平,它指的是因子變量的取值。

3、利用正交實(shí)驗(yàn)法設(shè)計(jì)測(cè)試用例的步驟

  • 提取因子,構(gòu)造因子狀態(tài)表
  • 加權(quán)篩選,簡(jiǎn)化因子狀態(tài)表
  • 構(gòu)建正交表,設(shè)計(jì)測(cè)試用例

接下來對(duì)這三個(gè)步驟進(jìn)行一一解析。

(1)舉個(gè)栗子(步驟一):

提取因子,構(gòu)造因子狀態(tài)表—— 即分析軟件的規(guī)格需求說明得到影響軟件功能的因子,確定因子可以有哪些取值,即確定因子的狀態(tài)。

例如,某一軟件的運(yùn)行受到操作系統(tǒng)和數(shù)據(jù)庫的影響,因此影響其運(yùn)行是否成功的因子有操作系統(tǒng)和數(shù)據(jù)庫兩個(gè),而操作系統(tǒng)有Windows、Linux、Mac三個(gè)取值,數(shù)據(jù)庫有MySQL、MongoDB、Oracle三個(gè)取值,因此操作系統(tǒng)的因子狀態(tài)為3,數(shù)據(jù)庫因子狀態(tài)為3。得到如下因子-狀態(tài)表:

因子因子的狀態(tài)
操作系統(tǒng)WindowsLinuxMac
數(shù)據(jù)庫MySQLMongoDBOracle

(2)舉個(gè)栗子(步驟二):

加權(quán)篩選,簡(jiǎn)化因子狀態(tài)表 —— 在實(shí)際軟件測(cè)試中,軟件的因子及因子的狀態(tài)會(huì)有很多,每個(gè)因子及其狀態(tài)對(duì)軟件的作用也大不相同,如果把這些因子及狀態(tài)都劃分到因子-狀態(tài)表中,最后生成的測(cè)試用例會(huì)相當(dāng)龐大,從而影響軟件測(cè)試的效率。因此需要根據(jù)因子及狀態(tài)的重要程度進(jìn)行加權(quán)篩選,選出重要的因子與狀態(tài),簡(jiǎn)化因子-狀態(tài)表。

(3)舉個(gè)栗子(步驟三):

構(gòu)建正交表,設(shè)計(jì)測(cè)試用例 —— 正交表的表示形式為 Ln(tc) 來表示。

  • L表示正交表。
  • n為正交表的行數(shù),正交表的每一行可以設(shè)計(jì)一個(gè)測(cè)試用例,因此行數(shù)n也表示可以設(shè)計(jì)的測(cè)試用例的數(shù)目。
  • c表示正交實(shí)驗(yàn)的因子數(shù)目,即正交表的列數(shù),因此正交表是一個(gè)n行c列的表。
  • t稱為水平數(shù),表示每個(gè)因子能夠取得的最大值,即因子有多少個(gè)狀態(tài)。
  • 在行數(shù)為n(n為正整數(shù))的正交表中,行數(shù)n(試驗(yàn)次數(shù))=∑(每列水平數(shù)t-1)+1。如: ①L8(27),n=7×(2-1)+1=8;②L4(23),n=3×(2-1)+1=4。

下面舉出兩個(gè)例子輔助理解:
例1:
L4(23) 是最簡(jiǎn)單的正交表,它表示該實(shí)驗(yàn)有3個(gè)因子,每個(gè)因子有兩個(gè)狀態(tài),可以做4次實(shí)驗(yàn),如果用0和1表示每個(gè)因子的兩種狀態(tài),則該正交表就是一個(gè)4行3列的表。
正交表如下圖所示:

例2:
在實(shí)際軟件測(cè)試中,大多數(shù)情況下,軟件有多個(gè)因子,每個(gè)因子的狀態(tài)數(shù)目都不相同,即各列的水平數(shù)不等,這樣的正交表稱為混合正交表,如L8(24 + 41) ,這個(gè)正交表表示有4個(gè)因子有2種狀態(tài),有1個(gè)因子有4種狀態(tài)。
那么正交表的行數(shù)為 n= ∑(每列水平數(shù)t-1)+ 1 = (2-1)×4 + (4-1)×1 + 1 = 8,這個(gè)n值的計(jì)算如果發(fā)生在大型項(xiàng)目時(shí)往往是很難計(jì)算的。
所以,混合正交表往往難以確定測(cè)試用例的數(shù)目,即n的值。因此,在這種情況下,可以登錄正交表的一些權(quán)威網(wǎng)站,查詢n值,下面給大家提供一個(gè)正交表查詢網(wǎng)站,
在這里,可以查詢到不同因子數(shù)、不同水平數(shù)的正交表的n值。
最終得出,該混合正交表如下圖所示:

4、正交表的特點(diǎn)

正交表最大的特點(diǎn)是取點(diǎn)均勻分散齊整可比,每一列中每種數(shù)字出現(xiàn)的次數(shù)都相等,即每種狀態(tài)的取值次數(shù)相等。

5、總結(jié)

寫到這里,對(duì)正交實(shí)驗(yàn)設(shè)計(jì)法做個(gè)小結(jié):

  • 在正交表中,每個(gè)因子的每個(gè)水平與另一個(gè)因子的各水平都“交互”一次,這就是正交性,它保證了實(shí)驗(yàn)點(diǎn)均勻分散在因子與水平的組合之中,因此具有很強(qiáng)的代表性。
  • 對(duì)于受多因子多水平影響的軟件,正交實(shí)驗(yàn)法可以高效適量的生成測(cè)試用例,減少測(cè)試工作量,并且利用正交實(shí)驗(yàn)法得到的測(cè)試用例具有一定的覆蓋度檢錯(cuò)率可達(dá)50%以上
  • 正交實(shí)驗(yàn)法雖然好用,但在選擇正交表時(shí)要注意先要確定實(shí)驗(yàn)因子狀態(tài)及它們之間的交互作用,選擇合適的正交表,同時(shí)還要考慮實(shí)驗(yàn)的精度要求、費(fèi)用、時(shí)長(zhǎng)等因素。

6、案例:微信Web頁面運(yùn)行環(huán)境正交試驗(yàn)設(shè)計(jì)

微信是一款手機(jī)App軟件,但它也有web版微信可以登錄,如果要測(cè)試微信web頁面運(yùn)行環(huán)境,需要考慮多種因素,在眾多的因素中,我們可以選出幾個(gè)影響比較大的因素,如服務(wù)器、操作系統(tǒng),插件和瀏覽器。利用正交實(shí)驗(yàn)設(shè)計(jì)法設(shè)計(jì)該軟件的測(cè)試用例。

具體解析如下:
(1)提取因子,構(gòu)造因子狀態(tài)表

  • 對(duì)于選取出的4個(gè)影響因素,每個(gè)因素又有不同的取值,同樣,在每個(gè)因素的多個(gè)值中,可以選出幾個(gè)比較重要的值。如:

    • 服務(wù)器:IIS、Apache、Jetty;

    • 操作系統(tǒng):Windows7、Windows10、Mac;

    • 插件:無、小程序、微信插件;

    • 瀏覽器:IE11、Chrome、FireFox;

  • 構(gòu)造的因子狀態(tài)表如下:

因子因子的狀態(tài)
操作系統(tǒng)IISApacheJetty
數(shù)據(jù)庫Windows7Windows10Mac
插件小程序微信插件
瀏覽器IE11ChromeFireFox

(2)加權(quán)篩選,簡(jiǎn)化因子狀態(tài)表

  • 微信web版運(yùn)行環(huán)境正交實(shí)驗(yàn)中有4個(gè)因子:服務(wù)器、操作系統(tǒng)、插件、瀏覽器,每個(gè)因子又有3個(gè)水平,因此該正交表是一個(gè)4因子3水平正交表。
  • 所以正交表的行數(shù)為 n= ∑(每列水平數(shù)t-1)+ 1 = (3-1)×4 + 1 = 9,因此正交表的表示形式為L9(34)
  • 得出n=9后,查表可得,簡(jiǎn)化后的因子狀態(tài)表如下:

    (3)構(gòu)建正交表,設(shè)計(jì)測(cè)試用例
  • 將因子、狀態(tài)映射到正交表,可生成具體的測(cè)試用例,具體如下表:

七、場(chǎng)景法

1、設(shè)計(jì)思想

現(xiàn)在的軟件幾乎都是由事件來觸發(fā)的,事情觸發(fā)便形成了場(chǎng)景,而同一事件不同的觸發(fā)順序和處理結(jié)果就形成了事件流

2、場(chǎng)景的構(gòu)成要素

場(chǎng)景可以看成是基本流與備選流的集合。用例的場(chǎng)景用來描述流經(jīng)用例的路徑,從用例的開始到結(jié)束遍歷這條路徑上所有的基本流和備選流。

(1)基本流

基本事件流,從系統(tǒng)某個(gè)初始狀態(tài)開始,經(jīng)一系列狀態(tài)后,到達(dá)最終狀態(tài)的一個(gè)業(yè)務(wù)流程,并且是最主要最基本的一個(gè)業(yè)務(wù)流程(無任何差錯(cuò),程序從開始直接到執(zhí)行結(jié)束)。

(2)場(chǎng)景流

備選事件流,以基本流為基礎(chǔ),在基本流所經(jīng)過的每個(gè)判定節(jié)點(diǎn)處滿足不同的觸發(fā)條件而導(dǎo)致的其他事件流。

3、基本流和備選流的場(chǎng)景說明

先用一張圖來描述基本流和備選流的流程。

從上圖可以看出,圖中經(jīng)過用例的每條路徑都用基本流備選流來表示。

基本流:采用直黑線表示,是經(jīng)過用例的最簡(jiǎn)單的路徑

備選流:采用不同色彩表示,一個(gè)備選流可能從基本流開始,在某個(gè)特定條件下執(zhí)行,然后重新加入基本流中(如備選流1和3);也可能起源于另一個(gè)備選流(如備選流2),或者終止用例而不再重新加入到某個(gè)流(如備選流2和4)。

根據(jù)圖中每條經(jīng)過的可能路徑,從基本流開始,再經(jīng)過基本流、備選流的綜合,可以確定不同的用例場(chǎng)景,如下

基于以上例子,可以得出以下結(jié)論:基本流只有一個(gè),而備選流的數(shù)目則取決于基本流上判定節(jié)點(diǎn)的數(shù)目事務(wù)分析的顆粒度,顆粒度越細(xì),考慮越周全,得到的備選流數(shù)目就越多,相應(yīng)的測(cè)試工作量就越大。

4、設(shè)計(jì)測(cè)試用例

場(chǎng)景法設(shè)計(jì)測(cè)試用例的基本步驟如下:

1)根據(jù)需求規(guī)格說明,描述出程序的基本流及各項(xiàng)備選流。

2)根據(jù)基本流和各項(xiàng)備選流生成不同的場(chǎng)景。

3)對(duì)每一個(gè)場(chǎng)景生成相應(yīng)的測(cè)試用例。

4)對(duì)生成的所有測(cè)試用例重新復(fù)審,去掉多余的測(cè)試用例。測(cè)試用例確定后,對(duì)每一個(gè)測(cè)試用例確定測(cè)試數(shù)據(jù)值。

5、總結(jié)

寫到這里,對(duì)場(chǎng)景法做個(gè)小結(jié):

  • 場(chǎng)景法以事件流和場(chǎng)景為核心,又被稱為業(yè)務(wù)流程測(cè)試法,要求測(cè)試人員使用場(chǎng)景法設(shè)計(jì)測(cè)試用例時(shí)把自己當(dāng)成最終用戶,盡可能真實(shí)地模擬用戶在使用此軟件時(shí)的操作情形。
  • 在測(cè)試過程中,測(cè)試人員需要模擬兩個(gè)方面的業(yè)務(wù):正確的操作流程可能出現(xiàn)的錯(cuò)誤操作
  • 它適用于業(yè)務(wù)比較復(fù)雜的軟件系統(tǒng)測(cè)試。

6、案例:在線購(gòu)物案例

有一個(gè)在線購(gòu)物的實(shí)例:用戶進(jìn)入一個(gè)在線購(gòu)物網(wǎng)站進(jìn)行購(gòu)物,選購(gòu)物品后,進(jìn)行在線購(gòu)買,這時(shí)需要使用賬號(hào)登錄;登錄成功后,進(jìn)行付錢交易;交易成功后,生成訂購(gòu)單;完成整個(gè)購(gòu)物過程。請(qǐng)使用場(chǎng)景法設(shè)計(jì)測(cè)試用例。

案例解析如下:

(1)確定基本流和備選流

  • 基本流:登錄在線購(gòu)物網(wǎng)站,選擇物品,登錄賬號(hào),付錢交易,生成訂購(gòu)單。
  • 備選流1:賬號(hào)不存在。
  • 備選流2:密碼錯(cuò)誤。
  • 備選流3:貨物庫存不足。
  • 備選流4:賬號(hào)余額不足。

(2)根據(jù)基本流和備選流來確定場(chǎng)景,如下表:

購(gòu)物系統(tǒng)場(chǎng)景表

場(chǎng)景1:成功購(gòu)物基本流
場(chǎng)景2:賬號(hào)不存在備選流1
場(chǎng)景3:密碼錯(cuò)誤備選流2
場(chǎng)景4:貨物庫存不足備選流3
場(chǎng)景5:用戶賬號(hào)余額不足備選流4

(3)根據(jù)每一個(gè)場(chǎng)景,設(shè)計(jì)需要的測(cè)試用例

【解析】

可以采用矩陣判定表來確定和管理測(cè)試用例,下面介紹一種通用的格式,其中各行代表各個(gè)測(cè)試用例,而各列則代表測(cè)試用例的信息。
在矩陣中,

  • V(有效)用于表明這個(gè)條件必須是VALID(有效的)才可執(zhí)行基本流;
  • I(無效)用于表明這種條件下將激活所需備選流;
  • N/A(不適用)表明這個(gè)條件不適用于測(cè)試用例。

購(gòu)物系統(tǒng)場(chǎng)景矩陣見下表:

購(gòu)物系統(tǒng)場(chǎng)景矩陣

測(cè)試用例ID場(chǎng)景賬號(hào)密碼購(gòu)買商品數(shù)量商品庫存數(shù)量用戶賬號(hào)余額預(yù)期結(jié)果
1場(chǎng)景1:成功購(gòu)物VVVVV成功購(gòu)物
2場(chǎng)景2:賬號(hào)不存在IN/AN/AN/AN/A提示賬號(hào)不存在
3場(chǎng)景3:密碼錯(cuò)誤VIN/AN/AN/A提示密碼輸入有誤
4場(chǎng)景4:購(gòu)買商品庫存不足VVVIN/A提示庫存不足
5場(chǎng)景5:用戶賬號(hào)余額不足VVVVI提示賬號(hào)余額不足

(4)設(shè)計(jì)具體的測(cè)試用例數(shù)據(jù)(假設(shè)所購(gòu)物品單價(jià)為30元)

購(gòu)物系統(tǒng)具體測(cè)試用例

場(chǎng)景測(cè)試用例ID賬號(hào)密碼購(gòu)買商品數(shù)量商品庫存數(shù)量用戶賬號(hào)余額預(yù)期結(jié)果
場(chǎng)景1:成功購(gòu)物1admin123test12310件50件2000元成功購(gòu)物
場(chǎng)景2:賬號(hào)不存在2adminN/AN/AN/AN/A提示賬號(hào)不存在
場(chǎng)景3:密碼錯(cuò)誤3admin123testN/AN/AN/A提示密碼輸入有誤
場(chǎng)景4:購(gòu)買商品庫存不足4admin123test12360件50件N/A提示庫存不足
場(chǎng)景5:用戶賬號(hào)余額不足5admin123test12310件50件200元提示賬號(hào)余額不足

八、功能圖法

此處還未學(xué)習(xí)明白,靜待后續(xù)更新……

九、黑盒測(cè)試方法策略總結(jié)

寫到這里,對(duì)上面八大黑盒測(cè)試方法做個(gè)小結(jié)。

1、各種測(cè)試方法選擇的綜合策略

1首先進(jìn)行等價(jià)類劃分,包括輸入條件和輸出條件的等價(jià)劃分,將無限測(cè)試變成有限測(cè)試,這是減少工作量和提高測(cè)試效率最有效的方法。

2在任何情況下都必須使用邊界值分析方法。經(jīng)驗(yàn)表明,用這種方法設(shè)計(jì)出的測(cè)試用例發(fā)現(xiàn)程序錯(cuò)誤的能力最強(qiáng)。

3可以用錯(cuò)誤推測(cè)法追加一些測(cè)試用例,這需要依靠測(cè)試工程師的智慧和經(jīng)驗(yàn)。

4對(duì)照程序邏輯,檢查已設(shè)計(jì)出的測(cè)試用例的邏輯覆蓋程度。如果沒有達(dá)到要求的覆蓋標(biāo)準(zhǔn),應(yīng)當(dāng)再補(bǔ)充足夠的測(cè)試用例。

5)如果程序的功能說明中含有輸入條件的組合情況,則一開始就可選用因果圖法判定表

6)對(duì)于參數(shù)配置類的軟件,要用正交試驗(yàn)法選擇較少的組合方式達(dá)到最佳效果。

7)對(duì)于業(yè)務(wù)流清晰的軟件,可以使用場(chǎng)景貫穿測(cè)試,再綜合使用各種測(cè)試方法。

2、黑盒測(cè)試的優(yōu)缺點(diǎn)

(1)優(yōu)點(diǎn)對(duì)較大的代碼單元來說,黑盒測(cè)試比白盒測(cè)試的效率高 ,測(cè)試人員不需要了解實(shí)現(xiàn)的細(xì)節(jié),包括特定的編程語言;測(cè)試人員和編程人員是相互獨(dú)立的,從用戶的角度進(jìn)行測(cè)試,很容易被接受和理解,有助于暴露任何與規(guī)格不一致或者歧異的地方,測(cè)試用例可以在規(guī)格完成后馬上進(jìn)行。

(2)缺點(diǎn):不能測(cè)試程序內(nèi)部特定部位,比如程序未執(zhí)行的代碼,這些代碼得不到測(cè)試,則無法發(fā)現(xiàn)錯(cuò)誤。若沒有清晰的和簡(jiǎn)明的規(guī)格,測(cè)試用例很難被設(shè)計(jì),不易進(jìn)行充分性測(cè)試。

十、寫在最后

黑盒測(cè)試相較于白盒測(cè)試來說比較簡(jiǎn)單,不需要了解程序內(nèi)部的代碼,與軟件的內(nèi)部實(shí)現(xiàn)無關(guān);從用戶角度出發(fā),能很容易的知道用戶會(huì)使用到哪些功能,會(huì)遇到哪些問題;并且是基于軟件開發(fā)文檔做的相關(guān)測(cè)試,能較清楚地了解軟件實(shí)現(xiàn)了文檔中的哪些功能。
八大典型的黑盒測(cè)試方法講解到這里就結(jié)束啦!如有不理解或者有誤的地方歡迎私聊或加我微信指正~
下一篇文章將講解白盒測(cè)試。
如果想查看往期文章,也可以直接點(diǎn)擊進(jìn)入軟件測(cè)試欄目。

  • 公眾號(hào):星期一研究室
  • 微信:MondayLaboratory

碼字不易,如果這篇文章對(duì)你有用,記得留個(gè)Star哦~

總結(jié)

以上是生活随笔為你收集整理的『软件测试3』八大典型的黑盒测试方法已来袭,快快接住!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。