測試用例的設計方法:八大方法及綜合策略


一、等價類法

概述:

  1. 根據程序對數據的要求,把程序的輸入域划分成若干個部分
  2. 區分出哪些數據是有效的,哪些數據是無效的,(有效等價類與無效等價類)
  3. 從每個部分中選取少數代表性數據作為測試用例

步驟:

  1. 划分等價類
  2. 細化等價類 (對等價類進行編號)
  3. 建立等價類表
  4. 編寫測試用例

要點:

  1.  被選為測試用例的數據在測試中的作用等價於這一類中的其他值
  2.  如果等價類中的一個測試能夠捕獲一個缺陷,那么選擇該等價類中的其他測試也能捕獲該缺陷
  3.  如果等價類中的一個測試不能捕獲缺陷,那么選擇該類中的其他測試也不會捕獲到缺陷

------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------

二、邊界值法

概述:

  1. 找到測試數據的邊界點,也就是有效等價類和無效等價類的邊界點
  2. 對邊界點數據專門進行測試

步驟:

  1. 找到測試數據的邊界點, 分析出上點、離點、內點
  2. 根據上點、離點、內點寫出測試用例

要點:

  1.  如果輸入條件規定了值的范圍,則應取邊界點數據,以及邊界點兩邊的數據進行測試
  2. 如果輸入條件規定了值的個數,則用最大個數及其兩邊的點、最小個數及其兩邊的點作為測試數據
  3. 根據規格說明的每個輸出條件,使用前面的原則
  4. 根據規格說明的每個輸出條件,應用前面的原則
  5. 如果程序的規格說明給出的輸入域或輸出域是有序集合,則應選取集合的第一個元素和最后一個元素作為測試用例

------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------

三、因果圖法

概述:

  1. 在一個模塊或一個界面中,有多個控件,這些控件存在約束關系或組合關系,且輸出依賴於輸入條件,則可以使用因果圖法

步驟:

  1. 找出所有的輸入條件
  2. 找出所有的輸出條件
  3. 明確所有輸入條件之間的制約關系以及組合關系
  4. 明確所有輸出條件之間的制約關系以及組合關系
  5. 找出怎么樣的輸入條件組合會產生那種輸出結果
  6. 根據因果圖寫出判定表
  7. 根據判定表寫出測試用例

要點:

  1. 恆等、或(V)、與(∧)、非(~)、互斥(E)、包含(I)、唯一(O)、要求(R)、屏蔽(M)
  2. 因果圖法主要考慮控件之間條件的組合關系
  3. 每個控件的條件不宜過多,最好為2個
  4. 控件較多,或每個控件的條件過多,不宜用因果圖法

------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------

四、判定表法

概述:

  1. 判斷表主要側重輸入條件之間的邏輯關系(畫因果圖只是一個輔助工具,通過分析最終得到判定表,再通過判定表編寫測試用例)

步驟:

  1. 找出所有的輸入條件
  2. 找出所有的輸出條件
  3. 明確所有輸入條件之間的制約關系以及組合關系
  4. 明確所有輸出條件之間的制約關系以及組合關系
  5. 找出怎么樣的輸入條件組合會產生那種輸出結果
  6. 根據因果圖寫出判定表
  7. 根據判定表寫出測試用例

要點:

  1.  判定表的組成:

         

  1. 適合使用判定表設計測試用例的條件:
  • 規格說明以判定表的形式給出,或很容易轉換成判定表
  • 條件的排列順序不影響執行哪些操作
  •  規則的排列順序不影響執行哪些操作
  • 當某一規則的條件已經滿足,並確定要執行的操作后,不必檢驗別的規則
  • 如果某一規則要執行多個操作,這些操作的執行順序無關緊要

------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------

五、正交法

概述:

  1. 能夠使用最小的測試過程集合獲得最大的測試覆蓋率

步驟:

  1. 根據所測程序中控件的個數以及每個控件的取值個數,選取一個合適的正交排列表
  2.  把控件以及取值列出來,並對取值進行編號
  3. 把控件以及取值映射到正交排列表中
  4. 根據映射好的正交排列表編寫測試用例

要點:

一、 n階拉丁方:

  用n個不同的拉丁字母排成一個n階方陣, 每個字母在任一行、任一列中只出現一次

二、 正交拉丁方:

  設有兩個n階的拉丁方,如果將它們疊合在一起,恰好出n2個不同的有序數對

三、 正交表是一種特制的表,記為:
  • m是每個控件包含的取值個數
  • K表示控件的個數
  • n是表的行數, n=k*(m-1)+1
  • n=k1*(m1-1)+k2*(m2-1)+…kx*(mx-1)+1
  •  L為正交表的代號
  • Ln(m1^k1 m2^k2...mx^kx)

正交排列法的局限性:

  1. 基本都要求每個控件中取值的個數要相等,這在實際軟件中很少遇到

正交表的性質:

  1. 每一列中,不同的數字出現的次數相等
  2. 任意兩列中數字的排列方式齊全而且均衡
  • 即:
  • 正交表的兩大優越性,“均勻分散性,整齊可比性”
  • 通俗的說,每個因素的每個水平與另一個因素各水平各碰一次,這就是正交性

種類:

  1. 各列水平數均相同的正交表
  2. 混合水平正交表
  • 例:L8(4*24)——一個控件有4個屬性,4個控件有2個屬性

------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------

六.場景法

概述:

  1. 場景法就是模擬用戶操作軟件時的場景,主要用於測試系統的業務流程
  2. 在冒煙測試時也主要采用場景法進行測試

步驟:

  1. 根據說明,描述出程序的基本流及各項備選流
  2. 根據基本流和各項備選流生成不同的場景
  3. 對每一個場景生成相應的測試用例

要點:

一、 基本流:
  • 按照正確的業務流程來實現的一條操作路徑(模擬正確的操作流程)
二、 備選流 :
  • 導致程序出現錯誤的操作流程(模擬錯誤的操作流程)

------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------

七.大綱法

概述:

  1. 在一個程序或程序的某個模塊中,涉及到多個窗口,每個窗口中能夠完成多個動作
  2. 這些窗口又相互聯系, 為了弄清窗口和窗口之間的關系,或者說動 作和動作之間的關系,可以使用測試大綱方法

步驟:

  1. 找出所有的窗口以及每個窗口的輸入動作
  2. 找到各個窗口之間的聯系,並據此編寫測試用例

要點: (綜合策略)

  1. 為了測試程序的業務邏輯、業務流程、主要功能的正確性,錯誤處理能力,使用場景法設計測試用例
  2. 需要輸入數據的地方,進行等價類划分,包括輸入條件和輸出條件的等價划分
  3. 使用邊界值分析方法補充用例
  4. 可以用錯誤推測法追加一些測試用例
  5. 對照程序邏輯,檢查已設計出的測試用例的邏輯覆蓋程度,如果沒有達到要求的覆蓋標准或發現還有遺漏,應該再補充足夠的測試用例
  6. 如果程序的功能說明中含有輸入條件和輸出條件的組合情況, 則一開始就可選用因果圖法或判定表方法
  7. 對於參數配置類的軟件,要考慮各個參數之間的組合情況,使用正交排列法
  8. 為了更真實模擬用戶的操作流程、順序,可以使用狀態轉換圖方法設計測試用例
  9. 如果程序的模塊有多個窗口,並有相關聯的操作,可以使用測試大綱方法設計測試用例

------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------

八、狀態轉換圖法

概念:

  1. 找出軟件所有的狀態以及導致這些狀態發生變化的所有輸入動作
  2. 進而用圖形的方法把相關聯的輸入動作和狀態聯系在一起,真實模擬用戶的操作順序流程

步驟:

  1. 找出程序的所有輸入動作,並進行編號
  2. 找出程序的所有狀態
  3. 找出什么動作會導致什么狀態發生,畫出狀態轉換圖
  4. 把相關聯的動作和狀態聯系起來,設計測試用例

要點:

兩個重要的概念::(核心)
  1. 軟件的狀態
  2. 輸入的動作
狀態轉換圖法小結:
  1. 每種狀態至少訪問一次 【無論用什么方法,每一種狀態都必須測試】
  2. 測試看起來最常見最普遍的狀態轉換 【根據產品說明書,通過與客戶、開發人員溝通,了解哪些操作更常用、更重要】
  3.  測試狀態之間最不常用的分支 【這些分支是最容易被產品設計者和程序員忽視的】
  4. 測試所有錯誤狀態及其返回值 【錯誤沒有得到正確處理、錯誤提示信息不正確等情況是常有的】

------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------

九、綜合策略

  1. 為了測試軟件的業務流程,業務邏輯,基本功能的正確性,錯誤處理能力,采用場景法編寫用例
  2. 需要輸入數據的地方,進行等價類划分,包括輸入條件和輸出條件的等價划分
  3. 使用邊界值分析方法補充測試用例
  4. 可以用錯誤分析法追加測試用例
  5. 對照程序的邏輯,檢查測試用例的邏輯覆蓋程度,如果沒有達到覆蓋標准或發現有遺漏,則要補齊用例
  6. 如果軟件的功能說明里有輸入條件和輸出條件的組合情況,一開始就考慮用因果圖和判定表方法
  7. 對於有參數配置的軟件,要考慮各個參數的組合情況,則可以用正交排列表法來設計測試用例
  8. 為了模擬用戶的操作流程,順序,則可以用狀態轉換圖法設計測試用例
  9. 如果一個軟件或一個界面里有多個窗口,每個窗口可以完成多步動作,且每個窗口之間存在聯系,可以采用大綱法來設計用例

 


免責聲明!

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



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