軟件測試實戰 - 測試用例設計方法


 一、測試分析

  1. 測試需求來源

開發需求DR;協議標准需求PR;用戶需求UR;案例庫需求LR;競爭需求CR;繼承需求SR; 

      2. 測試項分析步驟 

a. 為分析的測試項編號;
b. 注明來源:開發文檔/法律條款/案例庫編號
c. 整合測試項:刪除合並重復測試項;大的測試項分解為測試子項;
d. 分析測試項之間的關系;

       3. 測試分析方法

a. 質量模型分析法:功能測試項、效率測試項、可靠性、易用性、可維護性、可移植性;
b. 用戶場景分析法:游客、普通用戶、VIP用戶、管理員用戶等,不同角色權限不同,測試點也不同;
c. 繼承性分析:新增功能,繼承舊功能、新舊功能之間關系、影響程度高低;
d. 功能交互分析:功能點與功能點之間、時序(並行、串行)、主被動;

        4. 划分測試項優先級

        5. 測試設計:思路--測試是不能窮舉,根據一些設計方法去選取一些數據盡量覆蓋多個測試點;

 

二、測試設計

1)黑盒測試用例設計技術

1. 等價類划分

概念:將輸入/輸出域分為若干個子集,從中選取代表數據,如果被選取的數據測試沒有問題,就認為未被選取的數據測試也沒有問題;

相關術語:有效等價類/無效等價類(針對輸入的數據是否有意義,是否合法,是否正確)

原則:a. 若輸入(輸出)是一個取值范圍或者值的個數,則划分一個有效等價類,兩個無效等價類;

   b. 若輸入(輸出)是一個有限的集合或者必須如何的條件或者布爾值,則划分成一個有效等價類和一個無效等價類;

   c. 若輸入(輸出)已經划分好有效等價類和無效等價類,針對有效等價類具體的值有不同的處理結果和方式,則划分成多個有效等價類和一個無效等價類;

   d. 若輸入(輸出)要同時滿足多個條件,則划分成一個有效等價類和多個無效等價類(從不同角度違反規則);

步驟:將SRS划分成規格片段→找出輸入條件→進行等價類划分→給划分每一個等價類編號→選代表數據設計用例→直到所有等價類都被覆蓋;

PS:編寫用例原則:一條測試用例要盡量覆蓋多個有效等價類&&一條測試用例只覆蓋一個無效等價類;

 

2. 邊界值分析

概念:邊界值分析法是對等價類划分法的一種補充,大量的經驗數據表明,邊界是問題多發區,如果邊界測試沒有問題,就認為內部數據發生問題的概率較小;

相關術語:上點→邊界上的點;離點→離邊界最近的點(閉區間,離點在邊界外,開區間離點在邊界內); 內點→邊界內任意一點;

原則:a. 如果輸入(輸出)是一個取值范圍或者值的個數,則以邊界或者邊界附近的值作為測試用例數據選取;

  b. 如果輸入(輸出)是一個有序的集合,則以第一個元素和最后一個元素作為測試用例數據選取;

  c. 如果輸入(輸出)的值的個數是一個取值范圍,則以最大值;最大值+1;最小值;最小值-1作為測試用例數據選取;

  d. 如果是一個內部數據結構,則以極限值作為測試用例數據選取;

步驟:將SRS划分成規格片段→找出輸入條件→進行等價類划分→給划分每一個等價類編號→分析每個數據類型,判斷是否有邊界值→生成用例;

PS:只有等價類和邊界值才能生成最終的測試用例,其它測試設計方法生成的都是測試規則或者測試路徑(邏輯測試用例)

 

3. 判定表

概念:分析和表達多種輸入條件進行不同組合來完成不同動作的一種工具,目的是分析復雜邏輯關系的條件組合;

相關術語:條件樁(輸入),條件項(輸入的取值情況),動作樁(輸出),動作項(輸出的取值情況)

步驟:將SRS划分成規格片段→找出條件樁、條件項,動作樁,動作項→對條件項進行排列組合生成規則數→合並化簡→設計最終用例;

特點:  a. 彌補了等價類不考慮組合的情況;
           b. 是一種全排列組合情況,測試較全面;
           c. 測試規則數目龐大,測試用例數量龐大,導致測試工作量大;
           d. 合並有風險,化簡需謹慎;
           e. 能發現需求規格說明書中不符合邏輯的需求;
           f. 對於邏輯關系比較復雜的需求無法勝任;

適用范圍:功能測試;      

 

4. 因果圖

概念:將復雜邏輯關系的需求轉化為判定表的一種中間系統化方法。目的是為了得到判定表;

相關術語:因(條件),果(動作);

邏輯關系:a.因果之間:恆等/非/與/或;

              b.原因之間:E(排斥:最多一個為真)、I(包容:至少一個為真)、O(唯一:有且只有一個為真)、R(要求:a為真,b需為真)、 M(強制:a為真,b需為假)

中間節點:  當多個輸入之間的關系不是單純一種與,或的關系,利用中間節點存取中間結果;

                當多個輸入都在描述同一件事情的時候,可以利用中間節點歸並邏輯;

步驟:將SRS划分成規格片段→分析原因和結果→畫因果圖→判斷制約關系→生成判定表→合並刪除→設計用例

特點:    a. 彌補了等價類不考慮組合的情況;

             b. 是一種全排列組合的測試方法,測試的比較全面;

             c. 測試規則數目龐大,測試用例數量龐大,導致測試工作量大;

             d. 能發現需求規格說明書中不符合邏輯的需求;

             e. 能夠分析復雜邏輯關系的需求;

             f. 制約關系可以快速刪減不符合邏輯的規則,從而提高測試設計效率;

5. 正交實驗法

概念:利用正交表進行試驗的一種方法,是一種兩兩組合的方法,經驗表明,如果兩兩組合測試沒有問題就認為其他組合發生問題的概率較小。

特點:兩兩組合;直接套用;經濟高效;

相關術語:因子(輸入)、狀態(水平:輸入的取值)

步驟:將SRS划分成規格片段→找出因子和狀態→構造因子狀態表→加權篩選→套用正交表→對生成的組合進行增刪→設計用例

適用范圍:功能測試,配置測試

 

6. 狀態遷移圖(點到點,內部路徑不可循環)

概念:針對有限狀態機的狀態和合法的跳轉條件進行測試,目的是為了測試所有的狀態能夠按照正確的條件進行跳轉和遷移。不要有未覆蓋到的狀態和非法的跳轉;

有限狀態機:web網頁,嵌入式系統

相關術語:狀態(某個時間點或某個指令后的表現);跳轉條件(操作/指令);事件(輸出)

步驟:將SRS划分成規格片段→找出狀態和跳轉條件→設定初始狀態,畫狀態遷移圖→事件轉換表→狀態轉換樹→測試路徑→添加非法路徑→設計用例

 

7. 流程分析法(端到端,內部路徑可循環)

概念:針對整個軟件系統的業務流程進行分析測試的一種方法,這種方法借鑒了白盒測試中的語句覆蓋測試法;

相關術語:節點(某個功能點),箭線(功能點之間的連接路線)

步驟:分析SRS→找到主要功能點→畫出主干圖(基本流)→細化分支→進行路徑組合確定優先級 

8. 輸入域覆蓋法

     主要有三點內容:中間值測試(相當於內點),極端值測試(邊界中的上點),特殊值測試(業務相關,根據軟件功能)

9. 輸出域覆蓋法

      分析輸出的等價類和邊界值,達到輸出域等價類覆蓋和輸出域邊界值覆蓋,使用此測試方法需要對系統的功能有特別深入的了解,采用該方法的一般來說是行業內的專家; 

10.異常分析法

      對系統有可能存在異常的操作進行測試,主要針對系統的容錯能力,故障恢復能力進行測試;

 

11. 錯誤猜測法

 根據經驗猜測,是基於經驗的測試法,是對其他測試方法的補充,不單獨使用

 

2) 白盒測試用例設計技術 

  1. 語句覆蓋
  2. 判定覆蓋
  3. 條件覆蓋
  4. 判定-條件覆蓋
  5. 條件組合覆蓋
  6. 路徑覆蓋

 詳見測試覆蓋率:http://www.cnblogs.com/Carolinee/p/5404675.html   

 


免責聲明!

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



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