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