一、測試用例格式
二、用例設計方法 等價類
1、定義
等價類:等價定義→等價類划分→等價類划分規則→進行用例設計
無效等價類不做組合
等價 定義 |
具有相同屬性或者方法的事物集合 |
||||
這個集合中某個個體所表現的特征與其他個體完全一致 |
|||||
對於某個被測對象的測試輸入而言,某個個體能夠被接受或被拒絕,則該個體在集合中的任意個體都應該被接受或被拒絕 |
|||||
等價類 划分 |
有效等價類 |
針對被測對象而言,合理的、有意義的、系統接受的輸入 |
用戶名長度在[6,18] |
||
無效等價類 |
針對被測對象而言,不合理的、無意義的、系統不能接受的輸入 |
用戶名長度大於18位,或者小於6位 |
|||
等價類 划分規則 |
如果需求規定了輸入域的取值個數或確定了某個范圍時,則可確定一個有效等價類及兩個無效等價類 |
有效等價類 |
用戶名長度在[6,18] |
||
無效等價類 |
用戶名長度大於18位,或者小於6位 |
||||
如果需求規定了某個輸入域的集合,或者必須如何的情況下,可確定一個有效等價類及一個無效等價類 |
有效等價類 |
以字母開頭 |
|||
無效等價類 |
非字母開頭 |
||||
如果需求規定了某個輸入域是真假值時,可確定一個有效等價類和一個無效等價類 |
|||||
如果用戶需求規定了輸入域是一組值,則可確定若干個有效等價類及一個無效等價類 |
京東商城 |
磚石會員、金牌會員、銅牌會員和普通注冊用戶 |
|||
用戶需求規定必須遵守某種規則時,可確定一個有效等價類及若干個從不同角度違反規則的無效等價類 |
以字母開頭 |
有效等價類:以字母開頭; 無效等價類:以數字、漢字或者特殊符號開頭 |
|||
進行 用例設計 |
根據需求,划分有效及無效等價類,有效等價類同意編號,無效等價類統一編號 |
||||
設計一個新的測試用例,使其盡可能的覆蓋所有尚未覆蓋的有效等價類,直到所有有效等價類都被覆蓋 |
|||||
設計一個新的測試用例,使其僅覆蓋一個無效等價類,直到所有無效等價類都被覆蓋 |
|||||
等價類四則運算法 |
加 |
不考慮需求其他子項,細致分解當前測試點及詳細需求,做累加 |
|||
減 |
根據業務規則減少,排除相關不可能出現的規則,減少不可能出現的組合 |
||||
乘 |
如果有效等價類中具有互斥條件的需求時,可進行相乘得到用例個數 |
||||
除 |
排除所有具有重復特性的等價類,盡可能做到有效等價類之間的交集為空,無效等價類之間的交集也為空,有效及無效等價類的並集為整個輸入域 |
2、使用場景
具有相同屬性或者方法的事物集合、這個集合中某個個體所表現的特征與其他個體完全一致、對於某個被測對象的測試輸入而言,某個個體能夠被接受或被拒絕,則該個體在集合中的任意個體都應該被接受或被拒絕
例如 用戶登錄 ** 6~18個字符,包括數值、字母、下划線;** 字符開頭,字母或數字結尾,不區分大小寫
3、分析過程 (具體案例)
- 分析過程
- 測試計划
三、邊界值
1、定義
例:用戶名長度為6-18位
邊界值 三點 |
上點 |
邊界上的點 |
6 |
8 |
離點 |
離上點最近的點 |
5 |
19 |
|
根據上點的精度確定 |
|
|
||
內點 |
邊界有效范圍內的任一一點 |
10 |
|
|
如何確定離點 |
如果邊界是閉區間,則離點在外 |
[6,18] |
上點:6,18 離點:5,19 內點:10 |
|
如果邊界是開區間,則離點在內 |
(6,18) |
上點:6,18 離點:7,17 內點:10 |
||
邊界值 方法應用步驟 |
根據等價類方法划分有效等價類和無效等價類,確定上點、離點及內點,每個點統一編號 |
|
|
|
設計一個新的用例,使其盡可能的覆蓋所有尚未覆蓋的有效等價類,直到所有有效等價類完全覆蓋 |
|
|
||
設計一個新的測試用例,使其僅覆蓋一個無效等價類,直到所有無效等價類完全覆蓋 |
|
|
||
|
|
2、使用場景
邊界值 應用場景
|
如果需求規定了取值范圍或規定了取值個數時,可利用該范圍的邊界內及邊界附近的數據進行測試 |
[6,18] |
6,18,5,19,10 |
如果需求規定了取值的個數,則少於個數一個或多於個數一個的值進行進行測試 |
購買5件商品則打8折 |
4或5或6件商品 |
|
如果需求規定了一個有序集合的時候,可使用該集合的第一個和最后一個值進行測試 |
下拉列表有4個城市名可供選擇 |
第一個和最后一個城市 |
|
如果程序中使用一個內部數據結構的話,則應從該數據結構的邊界進行考慮 |
Int型
|
在int長度范圍內 |
3、分析過程 (具體案例)
四、判定表 (電商類)
1、定義
判定表定義 |
分析和表述若干輸入條件下,被測對象針對這些輸入做出的響應一種工具 |
||
|
在遇到復雜業務邏輯時,可以利用該表理清業務邏輯關系 |
||
重要概念
|
條件 |
條件樁 |
需求規格說明書定義的被測對象的所有輸入 |
|
條件項 |
針對條件樁所有可能的輸入數據的真假值 |
|
動作 |
動作樁 |
針對條件被測對象可能采取的所有操作 |
|
|
動作項 |
針對動作樁被測對象響應的可能取值 |
|
規則 |
|
動作項和條件項組合在一起,形成的業務邏輯處理規則 |
|
判定表 應用步驟
|
1、理解需求,確定條件樁、動作樁 |
||
2、設計和優化判定表 |
|||
3、填寫動作項 |
|||
4、根據判定表中輸出結果的表現,進行判定表的合並(非必須) 合並(即簡化判定表)條件:如果輸出相同,在其對應輸入中,有且只有一個條件的取值對動作不產生任何影響則可合並(合並存在一定風險) |
|||
5、抽取測試用例 |
2、使用場景
條件 與 結果 之間的關系 考慮使用 判定表
3、分析過程 (具體案例)
案例一 :如果用戶欠費或停機,則不允許主被叫
(1)、分析需求,得到 有效等價類 和無效等價類
(2)、根據 等價類 得到 判定表
** 其中 4 條用例 2^2得到(2個條件樁,每個條件樁2中狀態)
(3)、根據判定表 編寫測試用例
案例二 :訂購單的檢查
如果金額大於500元,又未過期,則發出批准單和提貨單;
如果金額大於500元,但過期了,則不發批准單;
如果金額小於等於500元,則不論是否過期都發出批准單和提貨單,在過期的情況下還需要發出通知單。
(1)、分析需求,得到 有效等價類 和無效等價類
金額是否大於500;是否過期;批准單是否發出
(2)、根據 等價類 得到 判定表
(3)、根據判定表 編寫測試用例
五、 因果圖
1、定義
輸入與輸入 關系 |
異 |
所有輸入條件中最多有一個產生,也可以一個沒有 |
或(or) |
所有輸入條件中,最少有一個產生、或者多個、或者所有 |
|
唯一 |
所有輸入條件中,有且只有一個條件產生 |
|
要求 |
所有輸入條件,只要有一個產生,其他跟着也會出現 |
|
輸入與輸出關系 |
恆等 |
當輸入條件發生時,結果一定會出現 |
當輸入條件不發生時,結果一定不會出現 |
||
非(not) |
當輸入條件發生時,結果一定不會發生 |
|
當輸入條件不發生時,結果一定會出現 |
||
與(and) |
當多個輸入條件中,只有所有輸入條件都發生,結果才會出現 |
|
或(or) |
當多個輸入條件中,只要有一個發生,結果就會出現 |
2、使用場景
條件 與 條件 之間存在復雜關系 考慮使用因果分析
3、分析過程 (具體案例)
案例1:有一個修改文件的功能性需求:如果第一列是A或B,第二列數字,則修改文件;如果第一列不正確,則給出M,第二列不正確則給出L。
(1)、根據需求 分析出因果
(2)、畫出因果節點圖
(3)、根據 因果圖 得到因果表
(4)、編寫出 測試用例
六、 正交試驗
1、定義
t因子c水平的正交表通過查表可得 (t因子,代表 ;c水平,代表)
名詞 |
因子 |
所有參與試驗的影響試驗結果的條件稱為因子 |
水平 |
影響試驗因子的取值或輸入稱為水平 |
|
特點 |
整齊可比 |
在同一張正交表中,每個因子每個水平出現的次數完全相同,試驗中,每個因子的每個水平與其他因子的水平參與試驗的機率完全相同 |
均勻分撒 |
同一張正交表中,任意兩列的水平搭配是完全相同的 |
|
設計流程 |
分析測試需求獲取因子及水平 |
|
根據因子水平選擇合適的正交表 |
||
替換因子水平,獲取試驗次數 |
||
根據經驗或其他因素補充試驗次數 |
||
細化輸出獲得測試用例 |
||
注意 |
選擇正交表時,因子與水平恰好與正交表相同 |
|
被測對象因子與正交表中的因子數不同時,選擇正交表中因子稍大於被測對象因子數,且試驗次數最少的、多余的因子棄用 |
||
被測對象水平與正交表中的水平不同時,可根據實際情況進行合並,然后拆分 |
||
因子、水平都不相同時,則可選擇因子、水平稍大於被測對象的,且試驗次數最少的 |
缺點:沒有辦法考慮實際因子之間的關系問題。
2、使用場景
在復雜的 業務邏輯關系中,針對4 判定表方法,得出的測試用例 太多,可以考錄使用正交法
3、分析過程 (具體案例)
案例一:采集用戶的用戶信息,用戶名、聯系電話、通訊地址
(1)、確定因子 和水平
因子:1、客戶信息;2、聯系電話、3、通信地址 (3因子)
水平:1、客戶信息:a、輸入;b、不輸入 (2水平)
2、聯系電話:a、輸入;b、不輸入 (2水平)
3、通訊地址:a、輸入;b、不輸入 (2水平)
(2)、得到正交試驗圖
** 搜索 “3因子2水平”,得到正交試驗圖 (數學知識)
(3)、編寫測試用例
七、 狀態遷移
1、定義
定義 |
關注被測對象的狀態變化,在需求規格說明書中是否有不可達到的狀態和非法的狀態,是否產生非法的狀態轉移 |
狀態 |
被測對象在特定輸入條件下所保持的響應形式 |
方法流程 |
根據需求明確狀態節點 |
繪制狀態遷移圖 |
|
繪制狀態遷移樹 |
|
抽取測試用例 |
2、使用場景
例如 商品選購,其中就有多種狀態。(一個完整的流程中,要經過多種狀態)
3、分析過程 (具體案例)
案例一:
(1)、分析案例中的狀態,得到狀態圖節點圖
(2)、根據 狀態節點圖 得到 狀態流程圖
(3)、得出一條條測試流程 (測試用例)
八、 流程分析
1、定義
場景設計-三個流程 |
基本流 |
通過業務流程輸入都為正確的,能夠最后達到目標的流程 |
ATM取款:插入銀行卡,輸入密碼,輸入取款金額,取款,取卡 |
備選流 |
通過實現業務流程時,因錯誤操作或異常輸入,導致流程存在反復,但最終能夠完成期望業務的流程 |
ATM取款:插入銀行卡,輸入密碼(第一次輸入錯誤,重新輸入后完成剩余操作) |
|
異常流 |
通過實現業務流程時,因錯誤操作或異常輸入,導致業務沒有正確完成 |
ATM取款:插入銀行卡,輸入密碼,錯誤3次,吞卡 |
|
使用方法 |
理解需求,確定業務流程(基本流、備選流、異常流) |
||
繪制流程圖,再次明確流程路徑 |
|||
根據業務流程圖,抽取測試路徑,每次路徑需包含一個從未走過的路徑 |
|||
細化路徑設計測試用例 |
|||
注意點:需使用等價類、邊界值、正交試驗、判定表、因果圖等方法保證單個功能的正確性 |
缺點:本身不校驗單個功能節點的正確性,只關心流程能不能走通
2、使用場景
3、分析過程 (具體案例)
案例:
(1)、分析需求 畫出流程圖
(2)、根據 流程圖 編寫測試用例