黑盒測試方法之等價類劃分

2021-10-25 02:01:51 字數 2704 閱讀 8659

1. 概述

等價類劃分是一種典型的黑盒測試方法,這一設計方法完全不用考慮程式的內部結構,也就是說其只根據需求規格說明書。

2. 定義

等價類劃分的方法就是將程式的輸入域劃分為若干部分,也可以說是若干個等價類,然後從各個部分中選取少數代表性資料進行測試。每個類的代表性資料在測試中的作用等效於這一類中的其它值,也就是說,只要這個類中的某個值發現了缺陷,那麼這個類中的其它任何乙個值也都可以起到同樣的效果,反之亦然,只要能夠通過乙個類中某個資料的驗證,那麼對於該類中其他任何乙個資料,驗證都是可以通過的

根據上面的描述,在等價類劃分方法中,我們只需要在每個等價類集合中選取乙個資料作為測試用例資料即可,因為每個資料和其集合內部的其它資料都是等價的,這樣就可以用少量用例達到較好的測試效果,從而平衡測試效率和測試效果。

最後,要想使用等價類劃分這種方法來設計測試用例,一定要先根據需求規格說明劃分等價類,列出等價類表。

3. 等價類和等價類表

>等價類

等價類就是指某個輸入域的子集合,並且在該子集合中,各個輸入資料對於揭露程式中的錯誤都是等效的。並且合理的假定測試某等價類的代表值就等效於測試了這個等價類集合中的所有值。

根據軟體的輸入情況,可以將等價類劃分為以下兩大型別:

有效等價類:指對於程式的規格說明來說是合理的,有意義或者說正確的資料構成的輸入集合。

無效等價類:與有效等價類相反,指對於程式的規格說明來說是無意義或者說錯誤的輸入資料構成的集合。

以這兩者的定義來說,利用有效等價類可以檢驗程式是否達到了規格說明書中所規定的功能和效能等,而無效等價類則可以檢驗軟體對於異常情況或者說錯誤資料的處理能力。

>等價類表

在確定被測物件的輸入域等價類後,就可以將有效等價類和無效等價類根據一定的格式形成等價類表,等價類表的繪製可以參考以下兩個圖:

4. 確定等價類的原則

在劃分等價類時,我們遵循以下6個原則:

若輸入條件規定了取值範圍或值的個數時,可以確立乙個有效等價類和兩個無效等價類。 例如密碼的長度必須超過6位小於18位,我們就可以劃分為長度在6到18位為乙個等價類,長度超過18和小於6的密碼分別為兩個無效等價類。

若輸入條件規定了輸入值的集合或者規定了必須遵從某個規則時,可以確定乙個有效等價類和無效等價類。 例如規定姓名必須由漢字組成,則可以將純漢字劃分為有效等價類,而將非漢字劃分為無效等價類。

若輸入是乙個布林值,可確定乙個有效等價類和乙個無效等價類。 例如,如果登入賬號是鑽石會員,則在結算時自動享受8折優惠,否則不打折,則鑽石會員賬號為乙個有效等價類,非鑽石會員為乙個無效等價類。

若規定了輸入資料的一組值(假定n個),並且程式要對每乙個輸入值分別處理,則可以將其輸入域劃分為n個有效等價類和乙個無效等價類。 例如電子商務系統中的會員管理,如京東**,有普通會員、金牌會員、銅牌會員等,不同會員的積分規則和優惠政策不同,故設計測試用例時可劃分為若干等價類分別考慮。

若需求規格說明書中規定了輸入資料必須遵守的規則的情況下,可以確立乙個有效等價類和若干個無效等價類(從不同角度違反規則)。

若確知已劃分的等價類中,各元素在程式處理中的方式不同的情況下,則要再將該等價類進一步的劃分為更小的等價類。

5. 根據等價類表確定測試用例

在編寫好等價類表後,可以按照以下步驟來形成最終的測試用例:

為每個等價類規定乙個唯一的編號。

設計乙個新的測試用例,使其盡可能多的覆蓋尚未覆蓋的有效等價類,不斷重複這個過程,直到所有的有效等價類均被測試用例覆蓋。

設計乙個新的測試用例,使其只覆蓋乙個無效等價類,不斷重複這個過程,直到所有的無效等價類均被測試用例所覆蓋。

附: 在尋找等價區間時,想辦法把軟體的相似輸入、輸出、操作分成組,這些組就是等價區間。並且還需要注意,在設計用例時,還需要注意每個等價類之間的互斥性,不可在未充分理解需求時,將所有有效等價類抽取為一條用例,這樣會導致測試覆蓋率降低,甚至漏測。

用途: 等價類的設計方法,可以用於功能、效能、相容性、安全性測試等方面,一般帶有輸入性需求的被測物件都可以採用等價類設計法。

7. 例項

以126郵箱註冊功能頁面為例,其中郵箱位址或者說使用者名稱需要由為6~18個字元構成,包括字母、數字、下劃線並且必須以字母開頭和以字母或數字結尾。

以郵箱位址輸入框的輸入資料為例,按照等價類劃分的方法設計其測試用例,按照上面所描述的需求或者說要求,可從郵箱位址的長度、組成、格式要求等幾個因素來考慮有效等價類和無效等價類的劃分,最終形成的等價類表如下:

按照上面得到的等價類表,再按照第5部分的步驟,可以抽取出以下的有效測試用例:

然後,再針對每個無效類,抽取一條測試用例進行測試,最終形成的無效測試用例如下(/表示不適用):

以上兩個表的賬號,就是根據等價類劃分的方法最終得到的測試資料。

黑盒測試之等價類劃分

某城市 號碼由三部分組成。它們的名稱和內容分別是 假定被測程式能接受一切符合上述規定的 號碼,拒絕所有不符合規定的 號碼。根據該程式的規格說明,做等價類的劃分,並設計測試用例。按照上課例子列 等價類的劃分似乎沒有統一的標準?比如我這裡的無效等價類劃分得挺簡單的,可以劃分得更細一些。輸入資料 有效等價...

黑盒測試之等價類劃分法

等價類劃分法是黑盒測試用例設計中一種重要常用的設計方法,它的基本思想是用一組有限的資料去代表近似無限的資料,達到能覆蓋所有情況的目的。定義 等價類是指某個輸入域的乙個特定的子集合,在該子集合中各個輸入資料對於揭露程式中的錯誤都是等效的,也就是說,如果用這個等價類中的代表值作為測試用例未發現程式錯誤,...

黑盒測試 等價類劃分法

按測試技術分類 白盒測試與黑盒測試 從完全不同的角度出發,2種測試思路適用於不同的測試階段 這 2種技術,是各有所長,相互補充的關係。可以發現不同型別的錯誤!黑盒測試的概念 如何理解 黑盒子 1 關注程式外部結構,不考慮內部邏輯結構,不知道程式如何工作。2 注重軟體的功能性需求,主要針對軟體介面和軟...