等價(jià)分類法是一種常見的黑盒測試方法,主張從大量數(shù)據(jù)中選擇一些數(shù)據(jù)進(jìn)行測試,也就是說,為了發(fā)現(xiàn)更多的軟件缺陷,盡可能使用最少的測試用例來覆蓋最多的數(shù)據(jù)。本節(jié)將詳細(xì)解釋等價(jià)分類法的概念和使用情況。
一個(gè)程序可以有多個(gè)輸入。等價(jià)類分類是根據(jù)輸入需求對(duì)這些輸入數(shù)據(jù)進(jìn)行分類,并將其分為幾個(gè)子集。這些子集是等價(jià)類別。在每個(gè)等價(jià)類別中選擇具有代表性的數(shù)據(jù)設(shè)計(jì)測試用例。這種方法類似于學(xué)生隊(duì)伍,男孩隊(duì)伍在左邊,女孩隊(duì)伍在右邊,教師隊(duì)伍在中間。通過這種方式,教師和學(xué)生被分成三個(gè)等價(jià)類別。使用等價(jià)法的測試程序需要兩個(gè)步驟來劃分等價(jià)分類和設(shè)計(jì)測試用例,如下所示。
1.等價(jià)類的劃分。
其含義如下所示,等價(jià)類可分為有效等價(jià)類和無效等價(jià)類。
(1)有效等價(jià)類:有效等價(jià)類是一種符合程序要求.合理且有意義的輸入數(shù)據(jù)的有效值的集合。
(2)無效等價(jià)類:無效等價(jià)類是一種無效值的集合,是一種不符合程序要求.不合理或無意義的輸入數(shù)據(jù)。
了解有效等價(jià)類和無效等價(jià)類,那么如何對(duì)等價(jià)類進(jìn)行劃分呢?等價(jià)類的劃分通常需要遵循以下原則。
(1)程序要求輸入值為有限區(qū)間值的,可將輸入數(shù)據(jù)分為1有效等值類和2無效等值類,有效等值類為規(guī)定的取值區(qū)間,2無效等值類分為有限區(qū)間兩側(cè)值。如某程序要求輸入值為[1,100],則有效等值類為1≤X≤100,無效等值類為x1和x>100。
(2)如果程序需要輸入的值是必須建立的情況,輸入數(shù)據(jù)可以分為有效等價(jià)類和無效等價(jià)類。例如,如果一個(gè)程序需要一個(gè)正確的密碼,那么正確的密碼是一個(gè)有效的等價(jià)類,而錯(cuò)誤的密碼是一個(gè)無效的等價(jià)類。
(3)如果程序要求輸入數(shù)據(jù)是一組可能的值,或要求輸入值必須滿足某一條件,輸入數(shù)據(jù)可以分為有效等價(jià)類和無效等價(jià)類。例如,如果一個(gè)程序要求輸入數(shù)據(jù)必須是一個(gè)以數(shù)字開始的字符串,那么以數(shù)字開始的字符串是一個(gè)有效的等價(jià)類,而不是以數(shù)字開頭的字符串是一個(gè)無效的等價(jià)類。
(4)如果程序中每個(gè)輸入數(shù)據(jù)的處理方法在某一等價(jià)類中是不一樣的,則應(yīng)將該等價(jià)類劃分為較小的等價(jià)類,并建立等價(jià)表。
同一等價(jià)類中的數(shù)據(jù)發(fā)現(xiàn)程序缺陷的能力是一樣的,如果用等價(jià)類中的某個(gè)數(shù)據(jù)不能捕捉到缺陷,那么用等價(jià)類中的其他數(shù)據(jù)也不能捕捉到缺陷;同樣,等價(jià)類中的其他數(shù)據(jù)也能捕捉到缺陷,即等價(jià)類中的所有輸入數(shù)據(jù)都是等價(jià)的。
正確劃分等價(jià)類可以大大降低測試用例的數(shù)量,測試將更加準(zhǔn)確和有效。在劃分等價(jià)類時(shí),我們不僅要考慮有效的等價(jià)類,還要考慮無效的等價(jià)類,我們應(yīng)該仔細(xì)分析等價(jià)類。對(duì)于審查劃分,如果兩個(gè)不同的等價(jià)類被誤認(rèn)為是等價(jià)類,那么軟件缺陷可能會(huì)被遺漏。例如,一個(gè)程序需要一個(gè)1~100之間的整數(shù)才能被輸入到取值范圍中。如果一個(gè)測試用例輸入了0.6的數(shù)據(jù),那么在測試中很可能只會(huì)發(fā)現(xiàn)非整數(shù)錯(cuò)誤,而不會(huì)發(fā)現(xiàn)取值范圍的錯(cuò)誤。
2.測試用例設(shè)計(jì)。
等價(jià)類確定后,需要建立一個(gè)等價(jià)類表來列出所有的等價(jià)類,用來設(shè)計(jì)測試用例。測試用例的設(shè)計(jì)步驟如下所示,基于等價(jià)類劃分法。
(1)確定測試對(duì)象,確保非測試對(duì)象的正確性。
(2)規(guī)定每個(gè)等價(jià)類中的唯一編號(hào)。
(3)設(shè)計(jì)有效等價(jià)類的測試用例,在測試用例覆蓋所有有效等價(jià)類之前,盡可能多地覆蓋尚未覆蓋的有效等價(jià)類。
(4)為覆蓋所有無效等價(jià)類設(shè)計(jì)無效等價(jià)類的測試用例。
黑盒測試之等價(jià)類劃分法的內(nèi)容大致就是這樣,希望你了解了,如果有軟件測試相關(guān)的問題,可以關(guān)注千鋒教育軟件測試問答欄目。更多關(guān)于“軟件測試培訓(xùn)”的問題,歡迎咨詢千鋒教育在線名師,如果想要了解我們的師資、課程、項(xiàng)目實(shí)操的話可以點(diǎn)擊咨詢課程顧問,獲取試聽資格來試聽我們的課程,在線零距離接觸千鋒教育大咖名師,讓你輕松從入門到精通。