更新時間:2022年03月09日10時22分 來源:傳智教育 瀏覽次數:
等價類劃分法是一種常用的黑盒測試方法,它主張從大量的數據中選擇一部分數據用于測試,即盡可能使用最少的測試用例覆蓋最多的數據,以發(fā)現(xiàn)更多的軟件缺陷。本節(jié)將針對等價類劃分法的概念及使用進行詳細的講解。
一個程序可以有多個輸入,等價類劃分就是將這些輸入數據按照輸入需求進行分類,將它們劃分為若干個子集,這些子集即為等價類,在每個等價類中選擇有代表性的數據設計測試用例。這種方法類似于學生站隊,男生站左邊,女生站右邊,老師站中間,這樣就把師生群體劃分成了3個等價類。使用等價類劃分法測試程序需要經過劃分等價類和設計測試用例2個步驟,具體介紹如下。
1、劃分等價類
等價類可分為有效等價類與無效等價類,其含義如下所示。
(1)有效等價類:有效等價類就是有效值的集合,它們是符合程序要求、合理且有意義的輸入數據。
(2)無效等價類:無效等價類就是無效值的集合,它們是不符合程序要求、不合理或無意義的輸入數據。
了解了有效等價類與無效等價類,那么如何劃分等價類呢?一般在劃分等價類時需要遵守以下原則。
(1)如果程序要求輸入值是一個有限區(qū)間的值,則可以將輸入數據劃分為1個有效等價類和2個無效等價類,有效等價類為指定的取值區(qū)間,兩個無效等價類分為有限區(qū)間兩邊的值。例如,某程序要求輸入值x的范圍為[1,100],則有效等價類為1≤x≤100,無效等價類為x<1和x>100。
(2)如果程序要求輸入的值是一個“必須成立”的情況,則可以將輸入數據劃分為1個有效等價類和1個無效等價類。例如,某程序要求密碼正確,則正確的密碼為有效等價類,錯誤的密碼為無效等價類。
(3)如果程序要求輸入數據是一組可能的值,或者要求輸入值必須符合某個條件,則可以將輸入的數據劃分為1個有效等價類和1個無效等價類。例如,某程序要求輸入數據必須是以數字開頭的字符串,則以數字開頭的字符串是有效等價類,不是以數字開頭的字符串是無效等價類。
(4)如果在某一個等價類中,每個輸入數據在程序中的處理方式都不相同,則應將該等價類劃分成更小的等價類,并建立等價表。
同一個等價類中的數據發(fā)現(xiàn)程序缺陷的能力是相同的,如果使用等價類中的一個數據不能捕獲缺陷,那么使用等價類中的其他數據也不能捕獲缺陷;同樣,如果等價類中的一個數據能捕獲缺陷,那么該等價類中的其他數據也能捕獲缺陷,即等價類中的所有輸入數據都是等效的。
正確地劃分等價類可以極大地降低測試用例的數量,測試會更準確有效。劃分等價類時不單要考慮有效等價類,還要考慮無效等價類,對于等價類要認真分析、審查劃分,過于粗略的劃分可能會漏掉軟件缺陷,如果錯誤地將兩個不同的等價類當作一個等價類,則會遺漏測試情況。例如,某程序要求輸入取值范圍在1~100之間的整數,若一個測試用例輸入了數據0.6,則在測試中很可能只檢測出非整數錯誤,而檢測不出取值范圍的錯誤。
2、設計測試用例
確立了等價類之后,需要建立等價類表列出所有劃分出的等價類,用以設計測試用例?;诘葍r類劃分法的測試用例設計步驟如下所示。
(1)確定測試對象,保證非測試對象的正確性。
(2)為每個等價類規(guī)定一個唯一編號。
(3)設計有效等價類的測試用例,使其盡可能多地覆蓋尚未被覆蓋的有效等價類,直到測試用例覆蓋了所有的有效等價類。
(4)設計無效等價類的測試用例,使其覆蓋所有的無效等價類。