測試用例的方法
一、黑盒設計測試用例方法
1、等價類,邊界值,判定表,因果圖,正交表,場景 法,狀態遷移法
2、錯誤推測法,異常分析法,隨機測試
二、白盒測試設計用例方法
1、語句覆蓋
2、判斷覆蓋
3、條件覆蓋
4、判斷條件覆蓋
5、路徑覆蓋(獨立路徑覆蓋,z路徑)
- 等價類:
定義:指某個輸入域的集合,在集合中各個輸 入的條件都是等效的。
有效等價類:對程式規格說明有意義的、合理 的輸入資料
無效等價類:對程式規格說明無意義的、不合 理的輸入資料
等價類設計用例覆蓋的原則:
(1)每個用例儘可能多的覆蓋多個有效的等價類
(2)每個用例只能覆蓋一個無效等價類
等價類劃分的設計用例思路:- 找輸入條件
- 為每個輸入條件找有效、無效等價類
- 為每個等價類編號
- 用最少的用例覆蓋最多的有效等價類
- 每一個無效等價類都是一個用例
- 並非所有有效等價類都有無效
- 等價類的覆蓋可以重複覆蓋
常見的能夠劃分等價類的地方: - 數值範圍
- 重複次數
- 字串長度
- 字串組中字元的個數
- 檔案命名
- 檔案大小
- 螢幕的顏色種類
- 超時時間
等價類的優缺點
優點:是考慮了單個輸入域的各類情況, 避免了盲目或隨機選取輸入資料的不完整 性和覆蓋的不穩定性。
缺點:方法雖然簡單易用,但是沒有對組 合情況進行充分的考慮。需要結合其他測 試用例設
計的方法進行補充。比如邊界值
- 邊界值
邊界點定義:
(1)邊界上的點
(2)離點:離上點最近的點(即上點左右兩邊最鄰近的點)
(3)內點:在域範圍內的點:
(4)邊界條件分析:- 輸入條件明確了一個值的取值範圍,或規定了值的個數
- 輸入條件明確了一個有序集合
(5)邊界值分析原則 - 如果輸入(輸出)條件規定了取值範圍,則應該 以該範圍的邊界內及邊界附近的值作為測試用例
- 如果輸入(輸出)條件規定了值的個數,則用最 大個數,最小個數,比最小個數少一,比大個 數多一的數作為測試資料
- 如果程式規格說明中提到的輸入或輸出是一個有 序集合,應該注意選取有序集合的第一個和最後 一個元素作為測試資料
- 判定表
1、判定表定義:分析和表達多邏輯條件下的執行不同操作的情況
2、作用:對組合情況設計用例
利用判定表將複雜的問題按照各種可能的 情況全部列舉出來,能針對不同邏輯條件 的組合值,
分別執行不同的操作。
3、組成部分:
(1)條件樁(condition stub):列出問題的 所有條件(通常條件次序無關緊要)。
(2)條件項(condition entry):列出針對 它條件的取值(所有情況下的真假值)
(3)動作樁(action stub):列出問題規定 可採取的動作(順序無約束)。
(4)動作項(action entry):列出條件各種情況的應採取的 動作
4、建立步驟:
(1)確定規則的個數:若有N個條件,每一個條件下有2個值,則有2^n種規則。
(2)列出所有條件樁與動作樁。
(3)輸入條件項。
(4)輸入動作項得到初始判定表。
(5)簡化(合併相似規則)。
(6)編寫測試用例
5、判定表的作用:
利用判定表將複雜的問題按照各種可能的 情況全部列舉出來,能針對不同邏輯條件 的組合值,分別執行不同的操作。
因果圖:
(1)定義:
因果圖提供了一個把規格轉化為判定表的系統化方法,從該圖中可以產生測試資料。其 中,
原因是表示輸入條件,結果是對輸入執 行的一系列計算後得到的輸出
(2)作用:
因果圖方法最終生成的就是判定表。它適合於檢查軟體輸入條件的各種組合情況
(3)a.因果圖中的約束
在實際問題中輸入狀態相互之間、輸出狀 態相互之間可能存在某些依賴關係,稱為“約 束”。對於輸入條件的約束有E、I、O、R四種 約束,
對於輸出條件的約束只有M約束。
ØE約束(異):a和b中最多有一個可能為1,即a和b不能 同時 為1。
ØI 約束(或):a、b、c中至少有一個必須為1,即 a、b、 c不能同時為0。
ØO約束(唯一):a和b必須有一個且僅有一個為1。
ØR約束(要求):a是1時,b必須是1,即a為1時,b不能 為0。
ØM約束(強制):若結果a為1,則結果b強制為0。
b.因果圖中的4種基本關係
在因果圖的基本符號中,圖中的左結點ci 表示輸入狀態(或稱原因),右結點ei表示輸出 狀態(或稱結果)。
ci與ei取值0或1,0表示某 狀態不出現,1則表示某狀態出現。
Ø恆等:若 c1 是1,則 e1 也為1,否則 e1 為0。
(4)
因果圖轉換判定表的方法:- 將因果圖中的所有條件(因)填入判定表 的條件樁中;
- 將因果圖中的所有動作(果)填入判定表 的動作樁中;
- 根據因果圖確定各個條件組合對應的動作, 並且確定判定表中各個規則的條件項和動 作項,
在需要時最佳化判定表。
(5)因果圖的步驟:
1.把大的系統規格劃分解成可以測試的規格片段
2.分析分解後待測的系統規格,找出哪些是原因,哪些是結果
3.畫出因果圖
4.把因果圖轉換成判定表
5.簡化判定表
6.用判定表中的每一列生成測試用例
(6)因果圖的優點/缺點
優點: - 等價類法儘管各個輸入條件可能出錯的情況都考慮 到了,但是多個輸入條件組合起來出錯的情況卻被 忽略了
- 因果圖法能夠幫助我們按照一定步驟,高效的選擇 測試用例,設計多個輸入條件組合用例
- 因果圖分析還能為我們指出,程式規格說明描述中 存在什麼問題
缺點: - 輸入條件與輸出結果的因果關係,有時難以從軟體 需求規格說明書得到
- 即使得到了這些因果關係,也會因為因果關係複雜 導致因果圖非常龐大,測試用例數目及其龐大
場景法
(1)定義:場景法主要是針對測試場景型別的,顧也稱場景流程分析法
(2)流程分析:是將軟體系統的某個流程看成路徑,用路徑分析的方法來設計測試用例。根據流程的順序依次進行組合,使得流程的各個分支都能走到
(3)熟悉xmind思維導圖(也稱腦圖),梳理測試點,和測試流程類似軟體:億圖,wps流程圖,
(4) 流程分析步驟: - 畫出業務流程圖
注:描述正常流程和異常流程 - 確定條件分支(功能路徑)
注:設計路徑的優先順序 - 確認測試路徑
注:考慮路徑覆蓋率 - 選擇資料構造用例
注:選資料要結合等價類邊界值分析
- 正交試驗
(1)定義:
正交試驗設計法,是從大量的試驗點中挑選出適量的、有代表性的點,應用依據迦羅瓦理論匯出的“正交表”,合理的安排試驗的一種科學的試驗設計方法。
(2)正交常用的術語
指標:通常把判斷試驗結果優劣的標準叫做試驗的指標
因子:所有影響試驗指標的條件
水平值:影響試驗因子的取值
(3)正交表特點:
1》整齊可比性
在同一張正交表中,每個因素的每個水平出現的次數是完全相同的。由於在試驗中每個因素的每個水平與其它因素的每個水平參與試驗的機率是完全相同的,這就保證在各個水平
中最大程度的排除了其它因素水平的干擾。
2》均衡分散性
在同一張正交表中,任意兩列(兩個因素)的水平搭配(橫向形成的數字對)是完全相同的。這樣就保證了試驗條件均衡地分散在因素水平的完全組合之中,,因而具有很強的代
表性,容易得到好的試驗條件
(4)用正交表設計測試用例的步驟:
(1)有哪些因素(變數或條件)
(2) 每個因素有哪幾個水平(變數或條件的取值)
(3) 為了滿足整齊可比性,選擇一個合適的正交表
(4) 把變數的值對映到表中(建議第1行是全真或全假)
(5) 把每一行的各因素水平的組合做為一個測試用例
(6) 加上你認為可疑且沒有在表中出現的組合
(5)正交的原則:兩兩組合 - 狀態遷移法:
(1)透過描繪系統的狀態及引起系統狀態轉換的事件,來表示系統的行為
(2)狀態遷移圖設計測試用例步驟:
1.畫出狀態遷移圖
2.透過狀態遷移圖出狀態轉換樹
3.從狀態轉換樹推匯出測試路徑
4.根據測試路徑編寫合法(正常)測試用例或非法
(異常)測試用例
注意:保證從狀態轉換樹的根節點到每個葉節點的每
一條路徑都至少設計出一個測試用例 - 錯誤推測法
基於經驗的測試技術之錯誤推測法
錯誤推測法也叫錯誤猜測法,就是根據經驗猜想,已有的缺陷,測試經驗和失敗資料等可能有什麼問題並依此設計測試用例. - 異常分析法
基於經驗的測試技術之異常分析法
系統異常分析法就是針對系統有可能存在的異常操作、軟硬體缺陷引起的故障進行分析,依此設計測試用例。
主要針對系統的容錯能力、故障恢復能力進行測試
比如:紅米,華為 ,ios - 隨機測試
基於經驗的測試技術之隨機測試
隨機測試指的是測試中的所有的輸入資料都是隨機生成的,其目標是模擬使用者的操作。真實環境中,尤其是軟體剛剛釋出時,會有成千上萬的人在上面亂敲亂試;
因此在釋出軟體前,用模擬使用者的隨機測試就可能發現其它方式漏掉的軟體缺陷