1. 程式人生 > >軟體測試(2)—— 黑盒測試

軟體測試(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為此錶行的數目(試驗次數)。

在這裡插入圖片描述