軟體測試三-----------測試用例的設計方法
一、測試用例的簡單認識
概念:為了實施測試而向被測試的系統提供的一組集合,這組集合包含:測試環境、操作步驟、測試資料、預期結果等要素。
評價測試用例的方法:對比好壞程式碼的評價標準
- 用例表達清楚,無二義性
- 用例可操作性強
- 用例的輸入輸出比較明確,一條用例只有一個輸出結果
- 用例的維護性好
- 用例對需求的覆蓋率高
- 暴露程式bug的能力強大
二、測試用例常見的設計的方法
(1)測試用例總體的設計的方法
RBT(Requirements-Based Testing)是基於需求的測試方法,會使測試更加的有效,因為它使測試專注於質量問題產生的根源,即需求。
基於需求的測試是一種最根本的測試方法重點關注於以下兩個關鍵的大問題(1)驗證需求是否正確、完整、無二義性、並且邏輯一致。(2)從黑盒測試的角度,來設計出充分且必要的測試集。
(2)具體的設計方法
1)等價類
概念:需求將輸入劃分為若干個等價類,從等價類中選出一個測試用例,如果這個測試用例通過了,就證明這些所有的測試用例都能進行通過,則認為代表的等價類就能全部進行通過。
優點:較少的測試用例就能達到儘量多的功能覆蓋
缺點:解決了不能進行窮舉測試的問題
- 有效等價類:程式的規格說明書是合理的、有意義的輸入資料構成的集合,利用有效等價類驗證了程式是否實現了規格說明中所規定的的功能和效能。
- 無效等價類:根據需求說明書,不滿足需求的集合。
2)邊界值
概念:就是對輸入或輸出的邊界值進行測試的一種黑盒測試方法,通常邊界值分析法是作為對等價劃分法的補充,其測試用例來自於等價類的邊界。
3)因果圖
概念:簡化的邏輯圖,能直觀的表明程式輸入條件(原因)和輸入動作(結果)之間的相互關係。因果法是藉助圖形來設計測試用例的一種方法。
優點:適合於被測程式具有多種輸入條件,程式的輸出又依賴於輸入的關係。
恆等
與
或
非
設計步驟:
- 分析所有可能的輸入和可能的輸出
- 找出輸入與輸出之間的對應關係
- 畫出因果圖
- 將因果圖轉換成判定表
- 把判定表對應到每一個測試用例
4)正交排列
正交法的目的:減少用例的數目,用盡量少的用例覆蓋輸入的兩兩組合。
概念:就是依賴正交性,由實驗因素的全部水平的組合中挑選出最具有代表性的點進行試驗,找出最優的組合。
優點:是一種基於正交表的、高效率、快速、經濟的試驗;
因素(Factor):在一項試驗中,凡欲考察的變數稱為因素(變數)
水平(位級)(Level):在試驗範圍內,因素被考察的值稱為水平(變數的取值)
正交表的構成
行數(Runs):正交表中行的個數
因素數(Factor):正交表中列的個數,用C代表
水平數(Levels):任何單個因素能夠取到的值的最大個數,正交表中包含的值從0到數“水平數-1”,或從1到“水平數”,用T代表。
正交表的表示形式:L=行數(水平數*因素數)(L=NTC)(C:因素,N行數,實驗次數)
正交表的兩條性質
- 每一列中各數字出現的次數是一樣多
- 任何兩列所構成的有序數對出現的次數是一樣多。
正交法設計測試用例的步驟
- 有哪些因素
- 每個因素有哪幾個水平(變數的取值)
- 選擇一個合適的正交表
- 把變數的值對映到表中
- 把每一行的各因素水平組合作為一個測試用例
加上你認為可疑的且沒有在表中出現的用例組合
5)場景設計法
6)錯誤猜測法
針對經驗豐富的測試人員的一種測試方法。
三、什麼是測試用例的有效性
1)測試用例對應的功能已經刪除,不可操作了
2)執行一條測試用例未發現bug,該處實際上是有bug的
3)執行一條測試用例,發現了bug
4)執行一條測試用例,沒有發現bug,實際該處的bug已經被修改了
四、測試用例的粒度和評價
粒度:指的是測試用例編寫的詳細的程度
設計出測試用例粒度的評判
- 產品的質量要求
- 專案對用例的要求
- 測試時間和資源是否充分
測試用例的評價
- 同行評審(最敏捷的方法)
- 使用者檢查
- 專案組評審