黑盒測試
出自 MBA智库百科(https://wiki.mbalib.com/)
目錄 |
黑盒測試又稱為功能測試、數據驅動測試或基於需求規格說明的測試,是一種常用的測試方法。黑盒測試是已知產品的功能設計規格,通過測試來檢測每個功能是否都能符合要求。在測試中,把程式看作一個不能打開的黑盒子,在完全不考慮程式內部結構和內部特性的情況下,在程式介面進行測試,它只檢查程式功能是否按照需求規格說明書的規定正常使用,而不考慮實現功能的方法、途徑,程式是否能適當地接收輸人數據而產生正確的輸出信息。黑盒測試著眼於程式外部結構,不考慮內部邏輯結構。主要針對軟體界面和軟體功能進行測試。[1]
黑盒測試的功能[1]
黑盒測試法主要用於測試軟體的功能需求,通過測試可以發現下列錯誤:
是否有不正確或遺漏的功能:在介面上。輸入是否能正確的接受:能否輸出正確的結果;是否有數據結構錯誤或外部信息(例如數據文件)訪問錯誤:性能上是否能夠滿足要求;是否有初始化或終止性錯誤。
黑盒測試的方法[2]
目前常用的比較成熟的黑盒測試的方法主要有:等價類劃分法、邊界值分析法、因果圖法和錯誤推測法。下麵對這幾種方法加以介紹並指出其優缺點。
(一)等價類劃分法
等價類劃分法是一種典型的、重要的黑盒測試方法,它將程式所有可能的輸入數據劃分為若幹個等價類。然後從每個部分中選取具有代表性的數據當做測試用例。測試用例由有效等價類和無效等價類的代表數據組成,從而保證測試用例具有完整性和代表性。
使用該方法設計測試用例主要有兩個步驟:(1)確定等價類;(2)生成測試用例。
1.確定等價類
等價類是指被測軟體的一個輸入數據的集合,該集合中的任一元素對於揭露被測程式中的錯誤而言是等價的,即若該集合中的一個元素測試程式發現不了某類功能上明顯的錯誤,那麼其它元素測試該程式也發現不了這種錯誤。
確定等價類是將每一個輸入條件劃分為有效等價類和無效等價類。
有效等價類指程式規格說明書中規定的、合理的、有意義的輸入數據。通過測試有效等價類中的數據可以測試被測軟體是否實現了規格說明書中預先規定的功能和性能。無效等價類是有效等價類的補集,指軟體規格說明書中沒有規定的、沒有意義的、不合理的輸入數據集合。
2.生成測試用例
①為每一個等價類設置一個唯一的編號。
②設計新的測試用例,儘可能多地覆蓋那些尚未被覆蓋的有效等價類,直到所有的有效等價類都被測試用例所覆蓋(包含進去)。
③設計新的測試用例,覆蓋一個僅一個尚未被覆蓋的無效等價類,直到所有的無效等價類都被測試用例所覆蓋。
(二)邊界值分析法
邊界值分析法是對程式輸入或輸出的邊界值進行測試的一種黑盒測試方法。實際的測試工作證明,考慮了邊界條件的測試用例比那些沒有考慮邊界條件的測試用例具有更高的測試回報率。這裡所說的邊界條件,是指輸入和輸入等價類中那些恰好處於邊界、或超過邊界、或在邊界以下的狀態。
利用邊界值分析法設計測試用例的原則:
1.如果輸入條件規定了值的範圍,那麼應針對範圍的邊界設計有效的等價類測試用例,針對剛剛越界的情況設計無效等價類輸入測試用例。
2.如果輸入條件規定了輸入值的數量(包括個數的多少,時間的長短),則應對該數量的最大值、最小值及比最大值小一、最小值大一的情況分別設計有效的輸入測試用例。
3.如果程式中使用了一個內部數據結構,則應該內部數據機構的邊界值設計測試用例。
4.如果程式的規格說明給出的輸入域或輸出域是有序集合,則應該取集合的第一個元素和最後一個元素設計測試用例。
(三)因果圖法
因果圖法也是較常用的一種黑盒測試方法,是一種簡化了的邏輯圖。因果圖能直觀地表明輸入條件和輸出動作之間的因果關係,能幫助測試人員把註意力集中到與程式功能有關的輸入組合上。
因果圖法是一種適合於描述對於多種輸入條件組合的測試方法,根據輸入條件的組合、約束關係和輸出條件的因果關係,分析輸入條件的各種組合情況,從而設計測試用例的方法,它適合於檢查程式輸入條件的各種組合情況。
利用因果圖法設計測試用例的步驟:
1.將規格說明分解為可執行的片段。該步驟必不可少,因為因果圖不善於處理較大的規格說明。
2.分析並確定可執行片段中哪些是原因,哪些是結果。原因是指輸入條件或者輸入條件的等價類,而結果指輸出條件。
3.為每一個原因和結果賦予唯一的標號,並根據規格說明書中的描述,畫出因果圖。
4.通過仔細地跟蹤圖中的狀態變化情況,將因果圖轉換成一個有限項的判定表。表中的每一列代表一個測試用例。
(四)錯誤推測法
錯誤推測法是基於以往的經驗和直覺,參照以往的軟體系統出現的錯誤,推測當前被測程式中可能存在的缺陷和錯誤,有針對性地設計測試用例。
用錯誤推測法設計測試用例的基本思想是:列舉出程式中可能犯出現的錯誤或容易發生錯誤的特殊情況的清單,然後根據清單和已經設計好的測試用例來編寫特定的測試用例。例如,程式中出現的輸入數據為“0”或者字元為空就是一種錯誤易發情況;在出現輸入或輸出的數量不定的地方,數量為“沒有”和“一個”也是錯誤易發情況。特別需要註意的是,在閱讀規格說明時聯繫程式員可能做的假設來確定測試用例,測試人員要站在用戶的角度來考慮輸入信息,而不必去管這些信息對於被測程式是合理還是不合理的輸入。
黑盒測試方法的比較[2]
(一)等價類劃分法
核心:“分類”及代表值
優點:通過把輸入數據和輸出數據進行分類,選用分類中的代表值,在保證了測試覆蓋的情況下大大減少了測試用例的數量,使測試工作變得簡單高效。
缺陷:若無清晰的需求分類,可能造成覆蓋泄露。
(二)邊界值分析法
核心:邊界值和邊界兩邊的鄰值
優點:大量的程式錯誤往往發現在輸入的邊界上,考慮了邊界值的測試用例能更高效的發現程式中的錯誤和缺陷。
缺陷:此方法的目的性過強,導致其註定只能完成測試的一部分,單獨使用時,整體覆蓋率得不到保證。
(三)因果圖法
核心:測試元素邏輯關係圖,即因果圖
優點:該方法擅於處理邏輯事務的測試目標,協助用例設計人員搭建用例整體框架,實現從上至下的用例設計理念。缺陷:適用範圍有限制,需結合其他方法才能得到最終用例
(四)錯誤推測法
核心:測試人員的經驗和敏銳性
優點:測驗人員依據自己已有的測試經驗,針對現在被測軟體,設計有針對性的測試用例,能夠發現系統隱蔽的不易被髮現的潛在錯誤和缺陷。
缺陷:該方法依賴於測試人員的測試經驗和測試的敏銳嗅覺,沒有通用的可以遵循的規則。