【摘 要】 等價類劃分法是黑盒測試中常用的、典型的測試用例設(shè)計方法,它解決了如何選擇適當?shù)臄?shù)據(jù)子集代表整個數(shù)據(jù)集的問題,有效控制了測試用例的數(shù)量,使測試數(shù)據(jù)從無限變成有限,避免了盲目、隨機選取數(shù)據(jù)帶來的不完整性,實現(xiàn)了合理的、更多的可能數(shù)據(jù)的覆蓋,讓軟件測試更加充分,從而可以發(fā)現(xiàn)更多的軟件缺陷。
【關(guān)鍵詞】黑盒測試 等價類劃分 測試用例
黑盒測試不考慮系統(tǒng)內(nèi)部實現(xiàn)細節(jié),主要針對軟件功能、界面進行測試。理論上,黑盒測試只有采用窮舉輸入,才能發(fā)現(xiàn)軟件中所有潛在的缺陷。但是,實際測試情況有無窮多種,不可能對軟件進行完全的測試,因此必須進行有針對性的測試。測試用例可以指導測試的實施,保證有計劃、有組織地執(zhí)行軟件測試。黑盒測試用例的設(shè)計方法主要包括等價類劃分法、邊界值分析法等,其中等價類劃分法是最常用的、典型的黑盒測試用例設(shè)計方法。
1 等價類劃分法的內(nèi)涵
在軟件測試中,等價類是指所有可能的輸入數(shù)據(jù)的子集合,該子集合中的任意一個數(shù)據(jù),對于發(fā)現(xiàn)程序中的錯誤都是等效的。為了確保軟件具有更高的可靠性,不僅要測試所有合法的輸入,也要測試那些不合法但可能的輸入。合理的、有意義的輸入數(shù)據(jù)構(gòu)成的集合為有效等價類,其可以驗證軟件產(chǎn)品是否滿足用戶規(guī)定的需求;而那些不合理的、無意義的輸入數(shù)據(jù)構(gòu)成的集合則為無效等價類,利用其可以找出軟件產(chǎn)品中與需求規(guī)格不相符合或與之矛盾的地方。
因此,等價類劃分法的基本思想就是把所有可能的輸入數(shù)據(jù)合理劃分成若干等價類,然后從每一個等價類中選取代表數(shù)據(jù),這樣就可以用少量代表性的測試數(shù)據(jù)取得較好的測試結(jié)果。劃分等價類時要同時考慮有效與無效等價類,這樣才能保證測試用例的完整性與代表性。
2 等價類劃分的原則
等價類劃分以軟件需求規(guī)格說明書為基礎(chǔ),常用的幾條劃分原則如下。
(1)若輸入條件規(guī)定了取值范圍,則可確定取值范圍內(nèi)為有效等價類,取值范圍外為無效等價類。
(2)若輸入條件規(guī)定了次數(shù)范圍,則可確定次數(shù)范圍內(nèi)為有效等價類,次數(shù)范圍外為無效等價類。
(3)若輸入條件規(guī)定了輸入的一組值,且要求對每個值都要分別進行處理,則可確定每個值為一個有效等價類、其他不允許的值的集合為無效等價類。
(4)若輸入條件規(guī)定了必須遵守的規(guī)則,則可確定符合規(guī)則的為有效等價類,違反規(guī)則的為無效等價類。在確定無效等價類時,可以把必須符合的規(guī)則拆分為具有單一意義的子規(guī)則,然后從不同角度違反子規(guī)則得到無效等價類。
3 等價類劃分法設(shè)計測試用例
應(yīng)用等價類劃分法設(shè)計測試用例時,一般按照以下3個步驟進行。
(1)劃分等價類。分析軟件需求規(guī)格說明書,結(jié)合等價類劃分原則,劃分有效等價類、無效等價類。
(2)建立等價類表。列出所有劃分的等價類,并為每個等價類規(guī)定一個唯一編號,建立如表1-1所示的等價類表。
表1-1 等價類表
輸入條件 有效等價類 無效等價類
… …⑴ …⑶
… …⑵ …⑷
(3)設(shè)計測試用例。設(shè)計測試用例時,應(yīng)該遵循以下原則。
①用最少的測試用例覆蓋所有的有效等價類。
②為每一個無效等價類設(shè)計一個測試用例。
4 等價類劃分法應(yīng)用實例
某評分系統(tǒng)根據(jù)輸入的分數(shù)評定等級,[90,100]內(nèi)為A,[80,89]內(nèi)為B, [70,79]內(nèi)為C,[60,69]內(nèi)為D,60分以下為E。要求輸入的分數(shù)必須是[0,100]之間的正整數(shù)。請應(yīng)用等價類劃分法設(shè)計測試用例。
首先,劃分等價類并建立等價類表,如表1-2所示。
表1-2 某評分系統(tǒng)的等價類表
輸入條件 有效等價類 無效等價類
分數(shù) 90≤分數(shù)≤100 (1) 小于0的整數(shù) (6)
80≤分數(shù)≤89 (2) 大于100的正整數(shù) (7)
70≤分數(shù)≤79 (3) 小數(shù) (8)
60≤分數(shù)≤69 (4) 含有非數(shù)字字符的字符串 (9)
0≤分數(shù)≤59 (5) 輸入為空 (10)
然后,根據(jù)等價類表設(shè)計測試用例,如表1-3所示。
表1-3 某評分系統(tǒng)的等價類測試用例
用例編號 輸入 覆蓋等價類 預期結(jié)果
1 95 (1) A
2 80 (2) B
3 79 (3) C
4 61 (4) D
5 35 (5) E
6 -1 (6) 提示輸入無效
7 101 (7) 提示輸入無效
8 90.5 (8) 提示輸入無效
9 10o (9) 提示輸入無效
10 不輸入內(nèi)容 (10) 提示輸入無效
5 等價類劃分法總結(jié)
等價類劃分法僅僅考慮了單個數(shù)據(jù)域的各種情況,沒有充分考慮輸入數(shù)據(jù)的各種組合情況,因此它僅適用于輸入條件無制約關(guān)系的測試,若要檢查程序輸入條件的各種組合情況,需要結(jié)合其他測試用例設(shè)計方法。
參考文獻:
[1] 朱少民.全程軟件測試(第2版)[M].電子工業(yè)出版社,2014.
[2] 浦云明,陳黎震.基于劃分的等價類測試[J].計算機工程與設(shè)計,2009.
[3] 范明紅,浦云明,汪志華.等價類測試與劃分研究[J].計算機技術(shù)與發(fā)展,2009.
作者簡介:任憲臻(1977-),女,碩士研究生,北京信息職業(yè)技術(shù)學院講師。研究方向為計算機軟件應(yīng)用開發(fā)、軟件測試。