黑盒設計測試用例方法——等價類劃分法、邊界值分析法、錯誤推斷法

        日常的測試工作中都在有形無形的應用各種測試方法進行測試,只是沒有形成完整的體系概念。這幾天將 測試用例設計方法進行彙總,將測試思想運用於實際工作中,從而更好的指導測試工作。

首先彙總日常最常用的三種方法:等價類劃分、邊界值分析法、錯誤推斷法。

1.等價類劃分

在軟件測試中,窮舉法雖然是最安全最保險的一種方法但成本代價高,一般是不可取的。我們可以通過等價類劃分方法花費最小的代價來完成最高效的測試。

等價類劃分是把程序輸入域劃分成若干子集,然後從子集中選取少數具有代表性的數據進行測試。在子集集合中,各個輸入數據對於揭露程序中的錯誤是等價的。等價類分爲有效等價類和無效等價類。

1.1有效等價類

對於程序規格來說合理的、有意義的輸入數據的集合,檢驗程序是否實現了規格說明中的功能和性能。

1.2無效等價類

不合理的、無意義的輸入數據集合,驗證程序處理意外數據的能力。

1.3劃分方法

劃分等價類時,可分爲按區間劃分、按數值劃分、按數值集合劃分、按限制條件和規則劃分、按處理方式劃分。除了應掌握必須使同類數據的處理過程及處理結果完全一致的大原則,可參考以下劃分方法:

1)  輸入條件規定了取值範圍或值的個數的情況下,可以確定一個有效等價類和兩個無效等價類,如合格成績取值範圍爲[60,100],則範圍內取值爲有效等價類,範圍外<60和>100爲無效等價類

2)  輸入條件規定了輸入值的集合或“必須如何”的情況下,可以確定一個有效等價類和一個無效等價類,如:規定數據庫類型必須選擇oracle,則選擇oracle時爲有效等價類,否則爲無效等價類

3)  輸入條件是一個布爾量的情況下,可以確定一個有效等價類和一個無效等價類

4)  輸入條件規定必須遵守某種規則的情況下,可以確定一個有效等價類和若干個無效等價類(從不同角度違法規則),如:規定輸入必須爲非0正整數,則無效等價類可以分爲空、0、負整數、小數、字符等

5)  在規定了輸入數據的一組值(假定N個),並且程序要對每個輸入值分別處理的情況下,可以確立N個有效等價類和一個無效等價類。如下列框選擇“科目”,每個科目所顯示的信息不同。

6)  在確知已劃分的等價類中各元素在程序處理鎮南關的方式不同的情況下,則應再將該等價類進一步的劃分爲更小的等價類

1.4等價類表

 在確立了等價類後,可以建立等價類表,列出所有劃分出的等價類

輸入條件

有效等價類

無效等價類

成績爲[0,100]之間整數

[0,100]之間整數

 

大於100的整數

小於0的整數(負數)

帶小數位,如98.5

含有字母的字符串

1.5設計測試用例

然後從劃分出的等價類中按以下原則設計測試用例:

1)爲每個等價類規定一個唯一編號

2)設計一個新的測試用例,使其儘可能多得覆蓋尚未被覆蓋的有效等價類,重複這一步,直到所有的有效等價類都被覆蓋爲止

3)設計一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,重複這一步,直到所有無效等價類都被覆蓋爲止

2.邊界值分析法

以往的測試經驗表明,由於需求界定不準確、設計不嚴密、程序書寫手誤等等原因,對於這些數據範圍邊界的判斷是軟件極容易出錯的地方。大量的錯誤往往發生在輸入或輸出範圍的邊界上,因此針對各種邊界情況設計測試用例,可以檢查出更多的錯誤。

2.1邊界值適用場景

邊界值法多被應用於以上幾個場景中:

輸入(輸出)條件規定了取值範圍

輸入(輸出)條件規定了值的個數

程序規格說明書中提到的輸入或輸出是一個有序的集合

程序中使用了一個內部數據結構

邊界值取值應當選取正好等於、剛剛大於最大邊界值和剛剛小於最小邊界值最爲測試數據。

2.2邊界值選擇測試用例原則

1)  如果輸入條件規定了值的範圍,則應取剛達到這個範圍的邊界值、以及剛超越這個範圍邊界的值作爲測試輸入數據

2)  如果輸入條件規定了值的個數,則選取最大個數、最小個數、比最大個數多一、比最小個數少一的數作爲測試數據

3)  根據規格說明的每個輸出條件,使用規則1)

4)  根據規格說明的每個輸出條件,使用規則2)

5)  若輸入域是有序集合,則選取集合的第一個元素和最後一個元素作爲測試用例

6)  如果程序使用了一個內部數據結構,則應當選擇內部數據結構上得邊界值作爲測試用例

7)  分析規格說明,找出其他可能的邊界條件

3.錯誤推斷法

錯誤推斷法一般基於以往的測試經驗和直覺,參照以往的軟件系統出現的錯誤,推測程序中可能存在的各種錯誤,列出程序中所有可能有的錯誤和容易發生錯誤的情況,有針對性的設計測試用例。

例如:

單元測試用例中列出許多在模塊中常見的錯誤、以前產品測試中曾經發現的錯誤等

  輸入數據爲0或字符爲空

 各種情況在產品說明中常常被忽視,也可能被程序員遺忘,但在實際使用中卻經常發生。測試人員要站在用戶的角度,考慮他們要輸入的信息,而不管這些信息看起來是合法的輸入還是非法的輸入。

 

 

發佈了52 篇原創文章 · 獲贊 24 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章