軟體測試核心之用例設計

Leofighting發表於2020-07-10

測試設計與測試用例

測試設計:將概括的測試目標轉化為具體的測試條件和測試用例的一系列活動

測試分析和設計的主要任務

  • 評審測試依據(需求、系統架構、設計和介面說明)
  • 評估測試依據和測試物件的可靠性
  • 通過對測試項、規格說明、測試物件行為和結構的分析,識別測試條件並確定優先順序
  • 設計測試用例,並確定優先順序
  • 確定測試條件和測試用例所需的必要測試資料

確定測試條件

  • 依據在測試策劃或者測試計劃中確定的測試技術
  • 通過對策是依據與測試目標的分析,可以確定需要測試的內容,獲得測試條件

測試用例:

通過使用在測試計劃中確定的測試技術與測試方法,對於已確定的測試條件進行逐步推敲,精煉而設計出來的,重點說明如何具體操作,產生何種結果的文件

  • 特點:可重複性,可驗證性,需求可追蹤性
  • 設計的關鍵點:

    • 前提條件:如專案或區域性測試環境的需求,及其交付計劃
    • 測試步驟:可還原,可檢測,不可有歧義
    • 測試資料
    • 預期結果
  • 設計方法:

    • 等價類劃分法
    • 邊界值法
    • 因果圖設計法
    • 判定表設計法
    • 正交實驗法
    • 場景法

等價類劃分法

定義:把程式的輸入域劃分成若干部分,再從每個部分中選取少數代表性資料當做測試用例,每一類的代表性資料在測試中的作用等價於這一類中的其他值

劃分原則:

  • 如果輸入條件規定了取值的範圍或者值的個數,則可確定一個有效等價類和兩個無效等價類
  • 對立關係:如果一個輸入條件說明了一個 “必須成立”的情況,則可劃分一個有效等價類和一個無效等價類
  • 如果輸入條件規定了輸入資料的一組可能的值,而且程式是用不同的方式處理每一種值,則可為每一種值劃分一個有效等價類,並劃分一個無效等價類
  • 如果已明確,已劃分的某等價類中的各元素在程式中的處理方式是不同的,則應據此等價類進一步劃分成更小的等價類

設計步驟

  1. 明確測試物件,非測試物件保證正確
  2. 為每一個等價類規定一個唯一的編號

基於等價類劃分的用例設計

  1. 設計一個新的測試用例,使其儘可能多地覆蓋尚未覆蓋的有效等價類,重複這一步,最後使得所有有效等價類均被測試用例所覆蓋
  2. 設計一個新的測試用例,使其只覆蓋一個無效等價類。重複這一步,使所有無效等價類均被覆蓋

等價類的特點

  • 測試相同的內容
  • 如果等價類中的一個測試能夠捕獲一個缺陷,那麼選擇該等價類中的其他測試也能捕獲該缺陷
  • 如果等價類中的一個測試不能捕獲缺陷,那麼選擇該等價類中的其他測試也不會捕獲缺陷
  • 如果正確的劃分等價類,可以大大降低測試用例的數量,測試會準確有效
  • 如果錯誤地將兩個不同的等價類當做一個等價類,那就會遺漏一種測試情況
  • 相反,把同一個等價類看作兩個不同的等價類,那麼測試就會是冗餘的

注意事項:

  • 不但要考慮有效等價類,也要考慮無效等價類
  • 仔細劃分,審查劃分
  • 過於粗略可能會遺漏掉軟體缺陷
  • 組織評審

邊界值法

定義:是一種補充等價劃分的測試用例設計技術,它不是選擇等價類的任意元素,而是選擇等價類邊界的測試用例

邊界值設計的原則

  • 如果輸入條件規定了取值範圍,應以該範圍的邊界內及剛剛超範圍的邊界外的值作為測試用例

因果圖法與判定表

因果圖法

用來處理等價類劃分和邊界值考慮不到的情況,因為這兩種方法都是著重考慮輸入條件,而不考慮輸入條件的各種組合,輸入條件之間的相互制約關係

因果圖法,適合用於描述多種條件的組合,產生多個相應動作的測試方法;從程式規格說明書的描述中找出因果關係

判定表

定義:是分析和表達多邏輯條件下執行不同操作的工具

組成部分:

  1. 條件樁:列出了問題的所有條件,通常認為列出的條件次序無關緊要
  2. 動作樁:列出了問題規定可能採取的操作,這些操作的排序順序沒有約束
  3. 條件項
  4. 動作項

設計步驟:

  1. 分析軟體規格說明中的因果,並給每個原因和結果賦予一個識別符號
  2. 分析軟體規格說明中語義的內容,找出原因與結果之間、原因與原因之間對應的關係,根據這些關係畫出因果圖
  3. 由於語法或環境的限制,有些原因與原因之間、原因與結果之間的組合情況不可能出現。為表明這些特定情況,在因果圖上使用一些記號表明約束或限制條件
  4. 把因果圖轉換為判定表
  5. 根據判定表的每一列設計測試用例

正交實驗法

定義:是從大量的實驗點中挑選出適量的、有代表性的點,應用依據伽羅卡瓦理論匯出的正交表,合理地安排實驗的一種科學的試驗設計方法

相關引數:指標、因子、因子的狀態

設計步驟:

  1. 提取功能說明,構造因子狀態表
  2. 加權篩選,生成因素分析表
  3. 利用正交表構造測試資料集
  4. 利用正交表每行資料構造測試用例

測試場景設計

場景法設計步驟:

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

測試用例綜合設計

  1. 測試用例項劃分

    1. 測試用例劃分的經典方法是瀑布模型,從上到下,逐漸細分;大模組包括小模組,小模組包括更小的模組
    2. 要從更多的角度切入系統,把系統切分成一塊一塊地來進行測試,從而確保測試大項的完整性
  2. 切面測試

    1. 功能點切面:最常見的切面,通常認為頁面上的一個按鈕就是一個功能點。根據功能的複雜程度,按每一個功能進行用例的撰寫
    2. 隱含切面:完整業務流程的測試。從需求,業務角度進行編寫
  3. 功能點用例設計

    1. 任何情況下都必須使用邊界值分析法,經驗表明,用這種方法設計出測試用例發現程式錯誤的能力最強
    2. 必要時用等價類劃分的方法補充一些測試用例
    3. 如果程式的功能說明中含有輸入條件的組合情況,則一開始就可選用因果圖法
    4. 如果程式業務複雜度比較高,則適當使用場景法補充一部分測試用例

相關文章