csdn測試用例設計白皮書文檔地址:https://blog.csdn.net/vincetest/article/details/1478552
用例編寫步驟:
拿到測試需求 -> 分析需求(畫思維導圖) -> 編寫用例 -> 劃分用例優先級
用例編寫特性:
· 一致性:主要包括用例模板一致;各同事的編寫手法一致;以及用例的細粒度一致。
· 覆蓋率:主要包括對需求的覆蓋(也包含隱含的需求);新需求可能對那些功能會產生影響的覆蓋;對各種場景的覆蓋等 。
·可執行性:主要是指步驟易於理解、信息描述準確、且能快速識別出測試點 。
·執行準確性:是指用例執行的準確度,本身沒什麼技術含量。但這裏需要注意的是執行人對待執行用例的態度。不要因爲用例簡單或者一些外界的因素,導致部分用例未實際執行標爲通過的情況。
·持續更新:要及時不斷的更新,要儘量減少用例庫中失效的用例 。
·複用性:主要用例可以被不斷的複用,從而減少維護成本
用例設計方法:
1. 等價類與邊界值(重點方法)
等價類:等價類劃分法是把所有可能輸入的數據,有無效等價類和有效等價類(即正確輸入和非法輸入),即程序的輸入域劃分策劃國內若干部分(子集),然後從每一個子集中選取少數具有代表性的數據作爲測試用例。方法是一種重要的、常用的黑盒測試用例設計方法。
邊界值:邊界值分析法就是對輸入或輸出的邊界值進行測試的一種黑盒測試方法。通常邊界值分析法是作爲對等價類劃分法的補充,這種情況下,其測試用例來自等價類的邊界。
與等價類區別:
· 邊界值分析不是從某等價類中隨便挑一個作爲代表,而是使這個等價類的每個邊界都要作爲測試條件。
· 邊界值分析不僅考慮輸入條件,還要考慮輸出空間產生的測試情況。
等價類與邊界值的結合使用:
例:一個文本框的輸入長度爲 6-10 個字符
分析:有效等價類: >=6個字符,<=10個字符
無效等價類:<6個字符,>10個字符
邊界值:5,6,7,9,10,11個字符
2. 場景法(重點方法)
定義:通過運用場景來對系統的功能點或業務流程的描述,從而提高測試效果的一種方法。用例場景來測試需求是指模擬特定場景邊界發生的事情,通過事件來觸發某個動作的發生,觀察事件的最終結果,從而用來發現需求中存在的問題。
基本流:是經過用例的最簡單的路徑(無任何差錯,程序從開始直接執行到結束)
備選流:一個備選流可能從基本流開始,在某個特定條件下執行,然後重新加入基本流中,也可以起源於另一個備選流,或終止用例,不在加入到基本流中;(各種錯誤情況)
場景法的運用:
例:有一個在線購物的實例,用戶進入一個在線購物網站進行購物,選購物品後,進行在線購買,這時需要使用帳號登錄,登錄成功後,進行付錢交易,交易成功後,生成訂購單,完成整個購物過程。
· 基本流
· 備選流: 1) 進入購物網站,選擇物品,登錄賬號,付費,生成訂單
2)賬號不存在
3) 賬戶餘額不足
更多的備選流。。。。。。
3. 正交排列驅動法
定義:在界面中有多個控件,控件之間有多種組合關係,如果組合的數量巨大(一般超過20種),沒有必要將所有組合都測試,可以通過正交排列法將組合中最優,最少的組合進行測試。
正交表公式:
Ln(m^k)
· L(line)行
n:表示正交表的行數
提示:正交表確定後,n值是固定的,不需要測試人員計算
m:表示正交表中數據的最大值
測試時:m表示每個控件的取值個數
K:表示正交表的列數
測試時:k表示參與組合的控件的個數
與判定表驅動法的區別:正交表一般用於組合較多的場合(一般>20種),判定表一般用於組合較少的情況
4. 因果圖
1.定義:是一種利用圖解法分析輸入的各種組合情況,從而設計測試用例的方法,它適合於檢查程序輸入條件的各種組合情況。
2.因果圖法產生的背景:
等價類劃分法和邊界值分析方法都是着重考慮輸入條件,但沒有考慮輸入條件的各種組合、輸入條件之間的相互制約關係。這樣雖然各種輸入條件可能出錯的情況已經測試到了,但多個輸入條件組合起來可能出錯的情況卻被忽視了。
如果在測試時必須考慮輸入條件的各種組合,則可能的組合數目將是天文數字,因此必須考慮採用一種適合於描述多種條件的組合、相應產生多個動作的形式來進行測試用例的設計,這就需要利用因果圖(邏輯模型)。
3.因果圖介紹
1) 4種符號分別表示了規格說明中向4種因果關係。
2) 因果圖中使用了簡單的邏輯符號,以直線聯接左右結點。左結點表示輸入狀態(或稱原因),右結點表示輸出狀態(或稱結果)。
3) Ci表示原因,通常置於圖的左部;ei表示結果,通常在圖的右部。Ci和ei均可取值0或1,0表示某狀態不出現,1表示某狀態出現。
4. 因果圖概念
1) 關係
①恆等:若ci是1,則ei也是1;否則ei爲0。
②非:若ci是1,則ei是0;否則ei是1。
③或:若c1或c2或c3是1,則ei是1;否則ei爲0。“或”可有任意個輸入。
④與:若c1和c2都是1,則ei爲1;否則ei爲0。“與”也可有任意個輸入。
2) 約束
輸入狀態相互之間還可能存在某些依賴關係,稱爲約束。例如, 某些輸入條件本身不可能同時出現。輸出狀態之間也往往存在約束。在因果圖中,用特定的符號標明這些約束。
A.輸入條件的約束有以下4類:
① E約束(異):a和b中至多有一個可能爲1,即a和b不能同時爲1。
② I約束(或):a、b和c中至少有一個必須是1,即 a、b 和c不能同時爲0。
③ O約束(唯一);a和b必須有一個,且僅有1個爲1。
④R約束(要求):a是1時,b必須是1,即不可能a是1時b是0。
B.輸出條件約束類型
輸出條件的約束只有M約束(強制):若結果a是1,則結果b強制爲0。
5. 採用因果圖法設計測試用例的步驟:
1)分析軟件規格說明描述中, 那些是原因(即輸入條件或輸入條件的等價類),那些是結果(即輸出條件), 並給每個原因和結果賦予一個標識符。
2)分析軟件規格說明描述中的語義,找出原因與結果之間, 原因與原因之間對應的關係,根據這些關係,畫出因果圖。
3)由於語法或環境限制, 有些原因與原因之間,原因與結果之間的組合情況不可能出現,爲表明這些特殊情況, 在因果圖上用一些記號表明約束或限制條件。
4)把因果圖轉換爲判定表。
5)把判定表的每一列拿出來作爲依據,設計測試用例。
5. 判定表
定義:判定表是分析和表達多邏輯條件下執行不同操作的情況的工具。
判定表的優點
· 能夠將複雜的問題按照各種可能的情況全部列舉出來,簡明並避免遺漏。因此,利用判定表能夠設計出完整的測試用例集合。
·在一些數據處理問題當中,某些操作的實施依賴於多個邏輯條件的組合,即:針對不同邏輯條件的組合值,分別執行不同的操作。判定表很適合於處理這類問題。
判定表通常由四個部分組成如下圖所示:
1)條件樁(Condition Stub):列出了問題得所有條件。通常認爲列出的條件的次序無關緊要。
2)動作樁(Action Stub):列出了問題規定可能採取的操作。這些操作的排列順序沒有約束。
3)條件項(Condition Entry):列出針對它左列條件的取值。在所有可能情況下的真假值。
4)動作項(Action Entry):列出在條件項的各種取值情況下應該採取的動作。
6. 錯誤推測法
定義:基於經驗和直覺推測程序中所有可能存在的各種錯誤, 從而有針對性的設計測試用例的方法
錯誤推測方法的基本思想:列舉出程序中所有可能有的錯誤和容易發生錯誤的特殊情況,根據他們選擇測試用例