軟件測試基礎 (二)—— 測試用例


軟件測試基礎 (二)—— 測試用例

一、 什么是測試用例

測試用例是為某個特殊目標而編制的一組測試輸入、執行條件以及預期結果,以便測試某個程序路徑或核實是否滿足某個特定需求。

二、為什么要寫測試用例

  • 深入理解需求,理請思路,避免遺漏測、重復測,發現需求中的問題,提高測試效率

  • 跟進測試進度,簡單計算 執行測試的完成度= 執行的測試用例/未執行的測試用例

  • 歷史參考,功能相似的模塊可以參考歷史用例,給新來的同事快速熟悉業務

三、測試用例的設計

用例的要素:

  • 用例編號

  • 所屬項目

  • 用例標題

  • 用例級別

  • 前置條件

  • 輸入

  • 操作步驟

  • 預期結果

用例的3A原則(最不可缺的用例要素有哪幾個)

  • Arrange: 初始化測試對象或者准備測試數據 —— 前置條件/數據
  • Act : 調用被測方法 —— 用例執行步驟(操作步驟)
  • Assert: 斷言 —— 預期結果

黑盒測試:設計和執行測試過程中,不考慮被測程序內部的結構,將被測程序視作不透明的黑盒子,只考慮輸入內容和輸出結果,發現軟件的缺陷的過程

黑盒測試的方法:

  1. 等價類
  2. 邊界值
  3. 判定表
  4. 因果圖
  5. 正交法
  6. 場景法
  7. 錯誤推斷法

3.1 等價類

等價類划分

  • 將程序所有可能的輸入進行合理分類,再從每一個分類中選取少數具有代表性的數據作為測試用例。

  • 有效等價類:符合需求說明的,合理的輸入數據的集合

  • 無效等價類:不符合需求說明的,無意義的輸入數據的集合

等價類設計用例步驟

  1. 划分有效等價類和無效等價類
  2. 為等價類表中的每一個等價類分別規定一個唯一的編號
  3. 設計一個新用例,使它能夠盡量多覆蓋尚未覆蓋的有效等價類。重復該步驟,直到所有的有效等價類均被用例覆蓋
  4. 設計一個新用例,使它僅覆蓋一個尚未覆蓋的無效等價類。重復該步驟,直到所有的無效等價類均被覆蓋
有效等價類 編號 無效等價類 編號
1 ~ 100 整數 (1) 1 ~ 100 小數 (2)
- 小於1的數字 (3)
- 大於100的數字 (4)
- 字母 (5)
- 特殊符號 (6)
- 中文 (7)
- (8)
- 負數 (9)

3、設計一個新用例,使它能夠盡量多覆蓋尚未覆蓋的有效等價類。重復該步驟,直到所有的有效等價類均被用例覆蓋
4、設計一個新用例,使它僅覆蓋一個尚未覆蓋的無效等價類。重復該步驟,直到所有的無效等價類均被覆蓋

用例編號 覆蓋等價類 輸入 預期結果
1 (1) 1 ~ 100 整數 50 系統提示輸入正確
2 (2) 1 ~ 100 小數 50.1 系統提示:請輸入1~100的整數
3 (3) 小於1的數字 0 系統提示:請輸入1~100的整數
4 (4) 大於100的數字 150 系統提示:請輸入1~100的整數
5 (9) 負數 -50 系統提示:請輸入1~100的整數
6 (6) 特殊符號 @#¥%…… 系統提示:請輸入1~100的整數
7 (7) 中文 測試中文輸入 系統提示:請輸入1~100的整數
8 (5) 字母 a 系統提示:請輸入1~100的整數
9 (8) 空 系統提示:請輸入1~100的整數

3.2 邊界值

對輸入或輸出的邊界值進行測試

特點:

  • 不是從一個等價類中任選一值做代表,而是尋一個或幾個值,使得該等價類的邊界值成為測試關注的目標
  • 邊界值分析法作為對等價類划分法的補充
  • 邊界值分析法不僅關注輸入條件,它還根據輸出的情況(輸出等價類)設計測試用例;例如:計算結果的小數點精確位數

3.3 判定表

判定表是分析和表達多邏輯條件下執行不同操作的工具。將復雜的問題按照各種可能的情況全部列舉出來,某些操作的實施依賴於多個邏輯條件的組合,針對不同邏輯條件的組合值,分別執行不同的操作

  • 條件樁:需求規格說明書定義的被測對象的所有輸入

  • 條件項:針對條件樁可能輸入數據值

  • 動作樁:針對條件,被測對象可能采取的所有操作

  • 動作項:針對動作樁,被測對象相應的可能取值

規則:任何一個條件組合的特定取值及其相應要執行的操作稱為規則。

化簡:就是把相同規則進行合並。合並的標准是,有兩條或多條規則具有相同的動作,並且其條件項之間存在着極為相似的關系

需求:訂購單的檢查規則為:若金額超過600元,又未過期,則發出批准單和提貨單;若金額超過600元,但過期了,則不發批准單;如果金額低於600元,則不論是否過期都發出批准單和提貨單,在過期的情況下還需發出通知單。(沒有批准單就沒有提貨單)

列出所有條件樁和條件項

條件樁 條件項
訂購金額是否大於600元 Y —>大於600元
N —>小於600元
訂單是否過期 Y —>訂單過期
N —>訂單沒過期

列出所有的動作樁和動作項

動作樁 動作項
發出批准單 X
發出提貨單 X
發出通知 X

生成判定表(先條件組合,再看結果)

簡化判定表

刪除序號1組合

3.4、因果圖

用圖解的方法表示輸入的各種組合關系,寫出判定表,從而設計相應的測試用例。 適用范圍:適用於分析程序輸入條件的各種組合情況,以及輸入與輸出之間的依賴關系。

  • 因果圖的“因”——輸入條件
  • 因果圖的“果”——輸出結果

使用步驟

  1. 根據程序規格說明書描述的語義內容,分析並確定 “因” 和 “果”;

  2. 將 “因” 和 “果” 表示成 “因果圖”;

  3. 在因果圖上使用若干個約束符號來標明約束條件;

  4. 將得到的因果圖轉換成判定表;

  5. 為判定表中每一列所表示的情況設計一個測試用例。

因果圖

《因果圖法》-有這篇就夠了

3.5、正交法

因果圖和判定表:依據方法中的主要思想,同類輸人間不可同時發生,不同類型輸人間必須同時存在其中之一 ,所以將需求中的各項輸入分別組合一一遍。常常不可避免地產生一個非常龐大的組合數字,不合實際情形,如3X3X3X3=81次組合(全排列)

正交試驗法即使用事先已創建好的表格一正交表,來安排試驗並進行數據分析的一種科學試驗設計方法,借助正交表可從大量的試驗數據(測試用例)中篩選出適量的、有代表性的值,從而協助合理地安排試驗(測試),滿足了“在簡化用例的同時盡量充分開展測試”的需求。

測試用例設計之正交表法詳解

3.6 、場景法

盡可能真實模擬用戶操作的一種用例設計分析方法

場景法主要基於 2 個層面開展

  1. 業務(需求)層面:對被測軟件的重要功能、業務邏輯(系統要實現什么、如何實現?)、行業背景深入理解
  2. 技術層面:基於等價類划分中的有效等價類——模擬用戶正確操作;無效等價類——模擬用戶錯誤操作

核心概念:

  1. 基本流(正確流、有效流):模擬用戶正確的操作流程

  2. 備選流(錯誤流、無效流):模擬用戶錯誤的操作流程

設計步驟

  1. 根據說明,描述出程序的基本流及各項備選流
  2. 根據基本流和各項備選流生成不同的場景
  3. 對每一個場景生成相應的測試用例
  4. 對生成的所有測試用例重新審核,去掉多余的測試用例,測試用例確定后,對每一個測試用例確定測試數據值

3.7 錯誤推測法

基於經驗和直覺推測程序中所有可能存在的各種錯誤,從而有針對性地設計測試用例的方法。








參考文章和推薦閱讀

《判定表驅動法》-有這篇就夠了

淺談測試用例

《因果圖法》-有這篇就夠了

測試用例設計之正交表法詳解

《軟件測試技術及用例設計實訓》

小馬的測試用例那些事 測試用例設計之場景圖法

測試基礎 軟件測試用例設計方法-場景法

黑盒測試--場景法





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM