黑盒測試的測試用例常見設(shè)計方法都有哪些?

1)等價類劃分

等價類是指某個輸入域的子集合。在該子集合中,各個輸入數(shù)據(jù)對于揭露程序中的bug都是等效的。并合理地假定:測試某等價類的代表值就等于對這一類其它值的測試。因此,可以把全部輸入數(shù)據(jù)合理劃分為若干等價類,在每一個等價類中取一個數(shù)據(jù)作為測試的輸入條件,就可以用少量代表性的測試數(shù)據(jù),取得較好的測試結(jié)果。等價類劃分可有兩種不同的情況:有效等價類和無效等價類

可參考以下知乎解說:
https://zhuanlan.zhihu.com/p/112810758

2)邊界值分析法

是對等價類劃分方法的補(bǔ)充。測試工作中,大量的bug是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內(nèi)部,因此針對各種邊界情況設(shè)計測試用例,可以查出更多的錯誤

使用邊界值分析方法設(shè)計測試用例,首先應(yīng)確定邊界情況。通常輸入和輸出等價類的邊界,就是應(yīng)著重測試的邊界情況。應(yīng)當(dāng)選取正好等于,剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù),而不是選取等價類中的典型值或任意值作為測試數(shù)據(jù)

可參考以下CSDN解說:
https://blog.csdn.net/liangfengchang/article/details/45041147

3)錯誤猜測法

基于經(jīng)驗和直覺推測程序中所有可能存在的各種錯誤, 從而有針對性的設(shè)計測試用例的方法

錯誤推測方法的基本思想: 列舉出程序中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)他們選擇測試用例。例如, 在單元測試時曾列出的許多在模塊中常見的錯誤, 以前產(chǎn)品測試中曾經(jīng)發(fā)現(xiàn)的錯誤等,這些就是經(jīng)驗的總結(jié)。還有, 輸入數(shù)據(jù)和輸出數(shù)據(jù)為0的情況, 輸入表格為空格或輸入表格只有一行, 這些都是容易發(fā)生錯誤的情況。可選擇這些情況下的例子作為測試用例

4)因果圖方法

前面介紹的等價類劃分方法和邊界值分析方法,都是著重考慮輸入條件,但未考慮輸入條件之間的聯(lián)系,相互組合等。 考慮輸入條件之間的相互組合,可能會產(chǎn)生一些新的情況。 但要檢查輸入條件的組合不是一件容易的事情, 即使把所有輸入條件劃分成等價類,他們之間的組合情況也相當(dāng)多。因此必須考慮采用一種適合于描述對于多種條件的組合,相應(yīng)產(chǎn)生多個動作的形式來考慮設(shè)計測試用例。這就需要利用因果圖(邏輯模型)。因果圖方法最終生成的就是判定表, 它適合于檢查程序輸入條件的各種組合情況 (因果圖/判定表法比較適合測試組合數(shù)量較少的情況,一般少于20種)

? 因(原因):輸入條件
? 果(結(jié)果):輸出結(jié)果
? 因果圖:就是通過畫圖的方式來表示輸入條件(因)和輸出結(jié)果(果)之間的關(guān)系

因果圖法基本圖形符號.png
因果圖基本符號圖.png
因果圖法限制關(guān)系圖形符號.png
因果圖法限制關(guān)系圖形符號圖.png
因果圖法測試步驟.png
因果圖法判定表.png
因果圖法測試用例.png
實例
因果圖法例子.png

5)正交表分析法

可能因為大量的參數(shù)的組合而引起測試用例數(shù)量上的激增,同時,這些測試用例并沒有明顯的優(yōu)先級上的差距,而測試人員又無法完成這么多數(shù)量的測試,就可以通過正交表來進(jìn)行縮減一些用例,從而達(dá)到盡量少的用例覆蓋盡量大的范圍的可能性

正交表是一種特制的表格,一般用Ln(mk)表示,L代表是正交表,n代表試驗次數(shù)或正交表的行數(shù),k代表最多可安排影響指標(biāo)因素的個數(shù)或正交表的列數(shù),m表示每個因素水平數(shù),且有n=k*(m-1)+1

正交表分析法測試需求.png
正交表分析法測試需求結(jié)果.png

例如:
對于一個四因素且每個因素均為三水平的試驗,如果按照全面試驗需要進(jìn)行3*3*3*3=81次。但是如果用正交試驗法選擇L9(34)正交表,n=4*(3-1)+1=9次試驗就可以覆蓋。從這點(diǎn)可以說明用正交試驗法能有效地、合理地減少測試用例和工時,節(jié)約測試成本

正交表具有以下兩個特點(diǎn)

正交表必須滿足這兩個特點(diǎn),有一條不滿足,就不是正交表
1) 每列中不同數(shù)字出現(xiàn)的次數(shù)相等。這一特點(diǎn)表明每個因素的每個水平與其它因素的每個水平參與試驗的幾率是完全相同的,從而保證了在各個水平中最大限度地排除了其它因素水平的干擾,能有效地比較試驗結(jié)果并找出最優(yōu)的試驗條件
2) 在任意2列其橫向組成的數(shù)字對中,每種數(shù)字對出現(xiàn)的次數(shù)相等。這個特點(diǎn)保證了試驗點(diǎn)均勻地分散在因素與水平的完全組合之中,因此具有很強(qiáng)的代表性

實例
正交表分析法例子.png
正交表分析法例子結(jié)果.png
如何選擇合適的正交表

1)單一水平正交表
存在實驗次數(shù)等于n,并且水平數(shù)大于等于m、因素數(shù)大于等于k的正交表,我們把這個正交表拿過來套用;
不存在實驗次數(shù)等于n的正交表,我們就得找出滿足實驗次數(shù)大于n并且水平數(shù)大于等于m、因素數(shù)大于等于k的正交表。
2)混合水平正交表存在實驗次數(shù)等于n,并且水平數(shù)大于等于max(m1,m2,m3,…)、因素數(shù)大于等于(k1+k2+k3+…)的正交表,我們把這個正交表拿過來套用;不存在實驗次數(shù)等于n的正交表,我們就得找出滿足實驗次數(shù)大于n并且水平數(shù)大于等于max(m1,m2,m3,…)、因素數(shù)大于等于(k1+k2+k3+…)的正交表。當(dāng)有2個或2個以上正交表可以被選擇時,選取原則是選實驗次數(shù)最少的那個正交表
☆對于混合正交表,可以使用allpairs工具輔助我們進(jìn)行選擇

譬如,存在 m1 = 5, k1 = 5, m2 = 2, k2 = 1,根據(jù)計算公式:n = 5x(5-1) + 1x(2-1) + 1= 22我們發(fā)現(xiàn)沒有 n = 22 的正交表,那如何選擇合適自身的正交表呢? (a)找出滿足 n > 22 的正交表 (b)m > max(m1, m2) 即 m > max(5, 2) 且 k >= (k1+k2) = 5+1= 6 (c)選擇 n 最小/最簡單的正交表: L25(56)

可以用工具allpairs生成正交表,很方便

6)場景分析方法

指根據(jù)用戶場景來模擬用戶的操作步驟,這個比較類似因果圖,但是可能執(zhí)行的深度和可行性更好

(1)用例場景:是通過描述流經(jīng)用例路徑來確定的過程。這個流經(jīng)過程要從用例開始到結(jié)束遍歷其中所有的基本流和備選流。
(2)基本流:采用直黑線表示,是經(jīng)過用例的最簡單的路徑,也就是功能正常實現(xiàn)的基本流程(流程無任何異常錯誤,程序從開始直到執(zhí)行的結(jié)束)
(3)備選流:采用不同顏色表示,一個備選流可能從基本流開始,在某個特定條件下執(zhí)行,然后重新加入基本流中,也可以起源于另一個備選流,或終止用例,不在加入基本流中。(各種錯誤情況)

場景分析方法圖例.png

遵循圖中每個用例經(jīng)過的路徑,可以確定以下場景:
場景1:基本流
場景2:基本流 備選流1
場景3:基本流 備選流1 備選流2
場景4:基本流 備選流3
場景5:基本流 備選流3 備選流1
場景6:基本流 備選流3 備選流1 備選流2
場景7:基本流 備選流4
場景8: 基本流 備選流3 備選流4

場景分析法設(shè)計測試用例步驟

(1)理解業(yè)務(wù)需求,分析業(yè)務(wù)基本流和備選流上所有會影響數(shù)據(jù)流走向的的各種因素,建議從用戶操作角度拆分流程中各環(huán)節(jié),同時考慮時間、網(wǎng)絡(luò)等因素
(2)組合場景中可能發(fā)生的事件序列
(3)將環(huán)境因素和事件序列進(jìn)行組合并進(jìn)行分析推導(dǎo),得到不同的場景

實例
場景分析法實例基本流.png
場景分析法實例備選流.png
場景分析法實例事件流.png
場景分析法實例場景.png

對于每個場景,至少要確定包含執(zhí)行場景所需的適當(dāng)條件的測試用例。例如,在下面的矩陣中,V(有效)用于表明這個條件必須是 VALID(有效的)才可執(zhí)行基本流,而 I(無效)用于表明這種條件下將激活所需備選流。下表中使用的“n/a”(不適用)表明這個條件不適用于測試用例

場景分析法實例測試用例.png

測試用例一經(jīng)認(rèn)可,就可以確定實際數(shù)據(jù)值(在測試用例實施矩陣中)并且設(shè)定測試數(shù)據(jù)

場景分析法實例測試數(shù)據(jù).png

7)狀態(tài)圖法

通過輸入條件和系統(tǒng)需求說明得到被測系統(tǒng)的所有狀態(tài),通過輸入條件和狀態(tài)得出輸出條件;通過輸入條件、輸出條件和狀態(tài)得出被測系統(tǒng)的測試用例。關(guān)注被測對象的狀態(tài)變化,在需求規(guī)格說明中是否有不可以達(dá)到的狀態(tài)和非法的狀態(tài),是否產(chǎn)生非法的狀態(tài)遷移

方法流程

1.根據(jù)需求明確狀態(tài)節(jié)點(diǎn)
2.繪制狀態(tài)遷移圖
3.繪制狀態(tài)遷移樹
4.抽取測試用例

實例
狀態(tài)圖法狀態(tài)圖.png

列出輸入事件:

狀態(tài)圖法輸入事件.png

對空閑狀態(tài)(程序剛啟動時的狀態(tài))加所有可能的輸入,判斷產(chǎn)生哪些新狀態(tài)

狀態(tài)圖法狀態(tài).png

對產(chǎn)生的每個狀態(tài)分別加所有可能的輸入,直至不再有新的狀態(tài)產(chǎn)生

狀態(tài)圖法可能輸入.png

總結(jié)最后有如下9個狀態(tài)

狀態(tài)圖法羅列狀態(tài).png

編寫測試用例

狀態(tài)圖法測試用例.png

8)大綱法

大綱法是一種著眼于需求的方法,為了列出各種測試條件,就將需求轉(zhuǎn)換為大綱的形式。大綱表示為樹狀結(jié)構(gòu),在根和每個葉子結(jié)點(diǎn)之間存在唯一的路徑。大綱中的每條路徑定義了一個特定的輸入條件集合,用于定義測試用例。樹中葉子的數(shù)目或大綱中的路徑給出了測試所有功能所需測試用例的大致數(shù)量。在一個程序中涉及多個窗口,每個窗口有多個操作,窗口和窗口之間有一定的聯(lián)系(或者說操作之間的聯(lián)系),為了弄清它們之間的聯(lián)系,使用測試大綱法

使用測試大綱法分析程序

1、列大綱(提綱)分析需求—列出所有的窗口以及每個窗口包含的操作
注意:窗口之間的先后順序
2、找出窗口和窗口(操作和操作)之間的關(guān)系,編寫用例

實例

有一個商場信息查詢系統(tǒng),具體界面如下圖

大綱法實例界面.png

分析需求,列出所有窗口以及每個窗口包含的操作(注意每個窗口之間的先后順序)
(1)主窗口
①選擇專賣店類型(3個)
②點(diǎn)擊“地圖”
③點(diǎn)擊“幫助”
(2)“專賣店”窗口
①選擇某個專賣店
②點(diǎn)擊“主菜單”
③點(diǎn)擊“幫助”
(3)“地圖”窗口
①點(diǎn)擊“打印”
②點(diǎn)擊“上一頁”
③點(diǎn)擊“主菜單”
④點(diǎn)擊“幫助”
(4)“幫助”窗口
①點(diǎn)擊“上一頁”
②點(diǎn)擊“主菜單”

找出窗口中不同操作之間的關(guān)系,編寫測試用例(部分)

大綱法實例測試用例.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容