軟體測試(2)—— 黑盒測試
黑盒測試
黑盒測試又稱功能性測試、資料驅動測試、基於規格說明的測試
定義:在已知軟體所應具有的功能的基礎上,檢查程式功能能否按需求規格說明書的規定正常使用,功能是否有遺漏,效能等特性要求是否滿足。
特點:參照規格說明檢查軟體,不要求考察程式碼,以使用者視角進行測試
目的:
1.檢測軟體功能是否正確和完整
2.檢測是否有人機互動和資料訪問錯誤
3.檢測軟體行為和效能是否滿足需求
4.檢測軟體初始化和終止過程是否有錯誤
測試需求的描述
需求跟蹤矩陣(RTM)
對軟體開發過程所有需求進行跟蹤。建立需求和測試用例的對映。
用例場景
描述流經用例的路徑,從用例開始到結束,遍歷這條路徑上所有基本流和備選流。
- 基本流:正常流程
- 備選流:自基本流開始,在某特定條件下開始執行
- 可能重新加入基本流(流1, 流3)
- 可能起源於另一備選流(流2 )
- 終止用例不再重新加入某流(流2,流4)
可生成場景:
場景1 基本流
場景2 基本流 備選流1
場景3 基本流 備選流1 備選流2
…
測試規格的描述
因果圖
基本符號
約束符號
E約束(異):a和b中最多有一個可能為1。
I 約束(或):a、b、c中至少有一個必須為1。
O約束(唯一):a和b必須有一個且僅有一個為1。
R約束(要求):a是1時,b必須是1。
M約束(強制):若結果a為1,則結果b強制為0。
例
規格說明要求:
輸入的第一個字元必須是#或*,第二個字元必須是一個數
字,此情況下進行檔案的修改;
如果第一個字元不是#或*,則給出資訊N;
如果第二個字元不是數字,則給出資訊M。
1)分析因果
原因 | 結果 |
---|---|
c1:第一個字元是# | e1:給出資訊N |
c2:第一個字元是* | e2:修改檔案 |
c3:第二個字元是一個數 | e3:給出資訊M |
2)畫出因果圖
決策表
條件樁—列出問題的所有條件
條件項—針對條件樁給出的條件列出所有可能的取值
動作樁—列出問題規定的可能採取的操作
動作項—指出在條件項的各組取值情況下應採取的動作
步驟
(1) 確定規則的個數。n個條件的決策表有2^n個規則(每個條件取真、假)
(2) 列出所有的條件樁和動作樁。
(3) 填入條件項。
(4) 填入動作項,得到初始決策表。
(5) 簡化決策表,合併相似規則。合併後的條件項用符號“-”表示。
契約
契約的形式
–前置條件:模組執行前應該滿足的條件
–後置條件:模組執行後應滿足的條件
–不變式:模組執行中應維持的一組性質
其它
- 自動機(狀態轉換圖)
- 軟體所要實現的功能可用自動機(狀態轉換圖)描述。
- 代數規約
- 描述類等抽象資料型別
- 模態邏輯
- 線性時態邏輯
- 計算樹邏輯
- Petri網
黑盒測試技術
-
從需求規格生成測試用例
-
隨機測試法
-
自適應隨機法
在輸入空間中隨機選擇測試點的同時,刻意保證新選擇的點與已有測試點有較大距離,從而更好地保證覆蓋的全面性
-
等價類劃分法
-
根據規約,將輸入空間根據測試的等效性,劃分為多個等價類,每個分類僅取一個或少量測試用例來進行測試
-
優點
- 代表性:少量測試資料
- 全面性:取得較好的測試結果
-
劃分方法
- 根據輸入資料本身的特徵進行劃分
- 根據可能造成的程式行為差異進行劃分
- 對劃分的結果進一步細分
-
用例設計
先儘量多地覆蓋尚未覆蓋的有效等價類,重複至所有的有效等價類均被測試用例所覆蓋。然後設計新的測試用例,使它僅覆蓋一個尚未覆蓋的無效等價類,重複至所有的無效等價類均被測試用例所覆蓋。
-
-
邊界值分析法
對輸入、輸出或內部的邊界值進行測試的一種測試方法。通常是作為對等價類劃分法的補充,這種情況下,其測試用例來自等價類的邊界。
-
錯誤推測法
基於經驗和直覺推測程式中所有可能存在的各種錯誤,從而有針對性的設計測試用例的方法。
-
正交實驗設計法
-
對於因果、邏輯關係相對簡單,或者不清晰,但組合關係複雜的程式可採用正交試驗設計法生成測試用例。
-
使用已經造好了的正交表格來安排試驗,簡單易行並且計算表格化,應用性較好。特別適用於輸入為列舉值的情況。
-
正交表
L8(2^7):7為此表列的數目(最多可安排的因子數);2為
因子的水平數;8為此錶行的數目(試驗次數)。
-