『软件测试3』八大典型的黑盒测试方法已来袭,快快接住!
文章目錄
- 一、等價(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à)表
| …… | …… | …… |
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é)果:
| C1:第一個(gè)字符是# | e1:給出信息N |
| C2:第一個(gè)字符是* | e2:修改文件 |
| C3:第二個(gè)字符是一個(gè)數(shù)字 | e3:給出信息M |
(2)畫出因果圖:
(3)將因果圖轉(zhuǎn)換成判定表,3個(gè)條件一般可以有23種組合
| 原因 | c1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
| c2 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | |
| c3 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | |
| 結(jié)果 | e1 | ? | ? | ||||||
| e2 | ? | ? | |||||||
| e3 | ? | ? |
(4)簡(jiǎn)化判定表,第7列和第8列合并
| 原因 | c1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
| c2 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | |
| c3 | 1 | 0 | 1 | 0 | 1 | 0 | - | |
| 結(jié)果 | e1 | ? | ||||||
| e2 | ? | ? | ||||||
| e3 | ? | ? |
(5)根據(jù)判定表生成測(cè)試用例
| 1 | #3 | 修改文件 |
| 2 | #M | 給出信息M |
| 3 | *5 | 修改文件 |
| 4 | *A | 給出信息M |
| 5 | MM | 給出信息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ì)以上分析,得出以下圖書閱讀指南判定表。
| 問題 | 是否疲倦 | Y | Y | Y | Y | N | N | N | N |
| 是否對(duì)內(nèi)容感興趣 | Y | Y | N | N | N | Y | Y | N | |
| 對(duì)書中內(nèi)容是否感到糊涂 | Y | N | N | Y | Y | Y | N | N | |
| 建議 | 回到本章開頭重讀 | ? | |||||||
| 繼續(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ī)則,可以將“圖書閱讀指南”判定表合并。
| 問題 | 是否疲倦 | Y | Y | N | N | N |
| 是否對(duì)內(nèi)容感興趣 | Y | N | N | Y | Y | |
| 對(duì)書中內(nèi)容是否感到糊涂 | - | - | - | Y | N | |
| 建議 | 回到本章開頭重讀 | ? | ||||
| 繼續(xù)讀下去 | ? | |||||
| 跳到下一章去讀 | ? | |||||
| 停止閱讀并休息 | ? | ? |
3、判定表結(jié)構(gòu)
判定表是把作為條件的所有輸入的各種組合值以及對(duì)應(yīng)的輸出值都羅列出來而形成的表格,判定表由4個(gè)部分組成,判定表結(jié)構(gòu)如下:
| 動(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ǒng) | Windows | Linux | Mac |
| 數(shù)據(jù)庫 | MySQL | MongoDB | Oracle |
(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ǒng) | IIS | Apache | Jetty |
| 數(shù)據(jù)庫 | Windows7 | Windows10 | Mac |
| 插件 | 無 | 小程序 | 微信插件 |
| 瀏覽器 | IE11 | Chrome | FireFox |
(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)景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)景矩陣
| 1 | 場(chǎng)景1:成功購(gòu)物 | V | V | V | V | V | 成功購(gòu)物 |
| 2 | 場(chǎng)景2:賬號(hào)不存在 | I | N/A | N/A | N/A | N/A | 提示賬號(hào)不存在 |
| 3 | 場(chǎng)景3:密碼錯(cuò)誤 | V | I | N/A | N/A | N/A | 提示密碼輸入有誤 |
| 4 | 場(chǎng)景4:購(gòu)買商品庫存不足 | V | V | V | I | N/A | 提示庫存不足 |
| 5 | 場(chǎng)景5:用戶賬號(hào)余額不足 | V | V | V | V | I | 提示賬號(hào)余額不足 |
(4)設(shè)計(jì)具體的測(cè)試用例數(shù)據(jù)(假設(shè)所購(gòu)物品單價(jià)為30元)
表 購(gòu)物系統(tǒng)具體測(cè)試用例
| 場(chǎng)景1:成功購(gòu)物 | 1 | admin123 | test123 | 10件 | 50件 | 2000元 | 成功購(gòu)物 |
| 場(chǎng)景2:賬號(hào)不存在 | 2 | admin | N/A | N/A | N/A | N/A | 提示賬號(hào)不存在 |
| 場(chǎng)景3:密碼錯(cuò)誤 | 3 | admin123 | test | N/A | N/A | N/A | 提示密碼輸入有誤 |
| 場(chǎng)景4:購(gòu)買商品庫存不足 | 4 | admin123 | test123 | 60件 | 50件 | N/A | 提示庫存不足 |
| 場(chǎng)景5:用戶賬號(hào)余額不足 | 5 | admin123 | test123 | 10件 | 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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 『软件工程6』详解软件项目管理之软件范围
- 下一篇: 了解js基础知识中的作用域和闭包以及闭包