對如果進行有效測試設計, 分為以下幾點作說明:
- 測試設計概述
- 測試場景分析
- 測試對象分析
- 測試類型分析
- 交互分析與規程設計
- 自動化設計與環境分析
1. 測試設計概述
#1.1 定義: 測試設計技術是從特定的測試依據中得到測試用例用來實現特定測試覆蓋的標准化方法.
#1.2 測試設計能夠解決的問題
測試設計能夠解決的問題
- 有效減少測試用例的數目
- 避免測試用例之間的冗余
- 滿足測試覆蓋率的要求
- ......
#1.3 測試分析設計技術全景圖
測試設計技術 - 等價類
- 等價類又分為有效等價類和無效等價類
- 有效等價類是指對於系統的規格說明來說是合理的, 有意義的輸入數據構成的集合
- 無效等價類是指對於系統的規格說明來說是不合理或無意義的輸入數據所構成的集合
- 無效等價類中的值會導致錯誤信息, 有效等價類的值會按照預期的執行. 在進行測試覆蓋時, 要同時考慮這兩種等價類. 因為, 軟件不僅要能接收合理的數據, 也要能經受以外的考驗, 這樣的測試才能確保軟件具有更高的可靠性
測試設計技術 - 邊界值
- 邊界值分析方法就是對輸入或輸出的邊界值進行測試的一種黑盒測試方法
- 經驗告訴我們, 大量的錯誤是發生在輸入或輸出范圍的邊界上, 邊界值分析就是在划分的等價類區域的邊界及其附近進行測試數據的選取, 選取原則就是選取正好等於/剛剛大於或剛剛小於邊界值的數據作為測試數據
測試設計技術 - 判定表
- 采用表格的形式, 列出所用條件和所有結果的組合, 做到無遺漏的覆蓋
- 判定表適合與條件各自獨立, 互不影響的情況
- 判定表使用的技巧在於, 把條件划分清晰, 對條件進行合理的組合, 使得到的規則數最小
測試設計技術 - 因果圖
- 因果圖法是運用圖形的方式對多個輸入間的組合以及輸入、輸出之間的因果關系進行分析, 從而識別有效的組合形成用例, 去除無效冗余的組合用例
- 因果圖方法通常都是和判定表結合使用, 因果圖的輸出就是判定表的輸入, 或者說因果圖方法最終生成的就是判定表
- 較復雜的邏輯關系, 使用因果圖較清晰
測試設計技術 - 正交法
- 正交表示一整套規則的設計表格, 其構成包括三個要素:
- 1 )行數:正交表行的個數
- 2 )因素數:正交表列的個數
- 3 )水平數:任何單個因數能夠取得的值的最大個數
- 正交滿足的特征:
- 1 )每列中不同數字出現的次數相等, 即每個因素的每個水平出現的次數是完全相同的, 在表中任何一列都有1、2、3,且在任一列的出現次數均相等
- 2 )任意兩列(兩個因素)其橫向組成的數字對中, 每種數字出現的次數相等
正交法舉例
#1.4 測試設計的方法
#2 測試場景分析
#2.1 定義:
在特定的上下文環境中、特定的參與者, 對系統實施特定的刺激作用下, 系統產生相應的行為或響應。
場景由特定的環境、參與者、刺激、被影響的系統、響應等屬性共同組合的集合。
#2.2 場景分析的目的
- 將被測試特性細分為功能獨立的場景, 再針對各個場景進行設計, 從而從整體上降低測試設計的復雜度
- 場景分析的目的實際上是要搞清楚業務或功能的運行上下文是什么, 完成什么樣的功能, 對開發和測試工作的開展起到指導和約束的作用
- 從系統內部處理過程着手進行分析, 找出需要測試和觀察的內容,篩除不需要測試和觀察的內容,減少用例數量
#2.3 場景分析原則 - 5W1H1E
- 在5W1H1E原則基礎上, 需要增加和客戶交流與確認的環節, 客戶需求是產品之源
- 場景分析是個功能方法, 它可以在需求分析、設計、編碼各個階段進行
- 場景分析與測試類型無關, 大部分測試類型都可以采用場景分析工程方法
例子:呼叫
本地呼叫, 忙時呼叫0.29元/分鍾, 閑時呼叫0.19元/分鍾。
其他呼叫0.39元/分鍾
忙時: 08:00 - 21:00
閑時: 21:00 - 08:00
場景分析 - 忙閑時呼叫
#3 測試對象分析
測試對象分析 - 測試建模
步驟1: 確定被測對象的范圍
- 目的
- 確定被測系統的邊界
- 只有確定了邊界, 才能知道模型中應該畫哪些
步驟2: 划分功能點
- 目的
- 被測特性應該畫幾個模型?
- 模型之間如何分工: 每個模型應該側重哪些內容?
步驟3: 建立模型
目的
把每個模型的需求點合理的組織為模型
主要功能模型
數組組合模型覆蓋
- 適用於只關注系統的輸入、輸出, 不關注中間處理過程的系統
- 一般要求測試因子間相互獨立, 時序上也沒有依賴關系
- 正交矩陣覆蓋和Paire-Wise沒有高樓數據的優先級與重要程度
- 覆蓋的強弱並不完全代表用例間的包含關系
流程模型覆蓋
- 適用於關注系統內部各個環節的處理順序的系統
- 適用於由順序結構、分支結構、循環結構描述的系統
- 流程模型既適用於白盒測試同樣適用於黑盒測試
狀態圖模型覆蓋
- 系統運行的狀況可以通過狀態進行描述
- 系統輸出由當前被測對象狀態和觸發條件共同決定
- 狀態 - 多為名詞、形容詞 觸發條件多為動詞
到現在我們可以看下如果就目前的分析生成用例了
第一步: 使用狀態圖, 描述系統功能
第二步:選擇覆蓋技術
第三步:創建邏輯用例