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