登錄

黑盒測試

百科 > 軟件 > 黑盒測試

1.什么是黑盒測試

  黑盒測試又稱為功能測試、數(shù)據(jù)驅動測試或基于需求規(guī)格說明的測試,是一種常用的測試方法。黑盒測試是已知產品的功能設計規(guī)格,通過測試來檢測每個功能是否都能符合要求。在測試中,把程序看作一個不能打開的黑盒子,在完全不考慮程序內部結構和內部特性的情況下,在程序接口進行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,而不考慮實現(xiàn)功能的方法、途徑,程序是否能適當?shù)亟邮蛰斎藬?shù)據(jù)而產生正確的輸出信息。黑盒測試著眼于程序外部結構,不考慮內部邏輯結構。主要針對軟件界面和軟件功能進行測試。[1]

2.黑盒測試的功能[1]

  黑盒測試法主要用于測試軟件的功能需求,通過測試可以發(fā)現(xiàn)下列錯誤:

  是否有不正確或遺漏的功能:在接口上。輸入是否能正確的接受:能否輸出正確的結果;是否有數(shù)據(jù)結構錯誤或外部信息(例如數(shù)據(jù)文件)訪問錯誤:性能上是否能夠滿足要求;是否有初始化或終止性錯誤。

3.黑盒測試的方法[2]

  目前常用的比較成熟的黑盒測試的方法主要有:等價類劃分法邊界值分析法、因果圖法和錯誤推測法。下面對這幾種方法加以介紹并指出其優(yōu)缺點。

  (一)等價類劃分法

  等價類劃分法是一種典型的、重要的黑盒測試方法,它將程序所有可能的輸入數(shù)據(jù)劃分為若干個等價類。然后從每個部分中選取具有代表性的數(shù)據(jù)當做測試用例。測試用例由有效等價類和無效等價類的代表數(shù)據(jù)組成,從而保證測試用例具有完整性和代表性。

  使用該方法設計測試用例主要有兩個步驟:(1)確定等價類;(2)生成測試用例。

  1.確定等價類

  等價類是指被測軟件的一個輸入數(shù)據(jù)的集合,該集合中的任一元素對于揭露被測程序中的錯誤而言是等價的,即若該集合中的一個元素測試程序發(fā)現(xiàn)不了某類功能上明顯的錯誤,那么其它元素測試該程序也發(fā)現(xiàn)不了這種錯誤。

  確定等價類是將每一個輸入條件劃分為有效等價類和無效等價類。

  有效等價類指程序規(guī)格說明書中規(guī)定的、合理的、有意義的輸入數(shù)據(jù)。通過測試有效等價類中的數(shù)據(jù)可以測試被測軟件是否實現(xiàn)了規(guī)格說明書中預先規(guī)定的功能和性能。無效等價類是有效等價類的補集,指軟件規(guī)格說明書中沒有規(guī)定的、沒有意義的、不合理的輸入數(shù)據(jù)集合。

  2.生成測試用例

 ?、贋槊恳粋€等價類設置一個唯一的編號。

 ?、谠O計新的測試用例,盡可能多地覆蓋那些尚未被覆蓋的有效等價類,直到所有的有效等價類都被測試用例所覆蓋(包含進去)。

  ③設計新的測試用例,覆蓋一個僅一個尚未被覆蓋的無效等價類,直到所有的無效等價類都被測試用例所覆蓋。

  (二)邊界值分析法

  邊界值分析法是對程序輸入或輸出的邊界值進行測試的一種黑盒測試方法。實際的測試工作證明,考慮了邊界條件的測試用例比那些沒有考慮邊界條件的測試用例具有更高的測試回報率。這里所說的邊界條件,是指輸入和輸入等價類中那些恰好處于邊界、或超過邊界、或在邊界以下的狀態(tài)。

  利用邊界值分析法設計測試用例的原則

  1.如果輸入條件規(guī)定了值的范圍,那么應針對范圍的邊界設計有效的等價類測試用例,針對剛剛越界的情況設計無效等價類輸入測試用例。

  2.如果輸入條件規(guī)定了輸入值的數(shù)量(包括個數(shù)的多少,時間的長短),則應對該數(shù)量的最大值、最小值及比最大值小一、最小值大一的情況分別設計有效的輸入測試用例。

  3.如果程序中使用了一個內部數(shù)據(jù)結構,則應該內部數(shù)據(jù)機構的邊界值設計測試用例。

  4.如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合,則應該取集合的第一個元素和最后一個元素設計測試用例。

  (三)因果圖法

  因果圖法也是較常用的一種黑盒測試方法,是一種簡化了的邏輯圖。因果圖能直觀地表明輸入條件和輸出動作之間的因果關系,能幫助測試人員把注意力集中到與程序功能有關的輸入組合上。

  因果圖法是一種適合于描述對于多種輸入條件組合的測試方法,根據(jù)輸入條件的組合、約束關系和輸出條件的因果關系,分析輸入條件的各種組合情況,從而設計測試用例的方法,它適合于檢查程序輸入條件的各種組合情況。

  利用因果圖法設計測試用例的步驟

  1.將規(guī)格說明分解為可執(zhí)行的片段。該步驟必不可少,因為因果圖不善于處理較大的規(guī)格說明。

  2.分析并確定可執(zhí)行片段中哪些是原因,哪些是結果。原因是指輸入條件或者輸入條件的等價類,而結果指輸出條件。

  3.為每一個原因和結果賦予唯一的標號,并根據(jù)規(guī)格說明書中的描述,畫出因果圖。

  4.通過仔細地跟蹤圖中的狀態(tài)變化情況,將因果圖轉換成一個有限項的判定表。表中的每一列代表一個測試用例。

  (四)錯誤推測法

  錯誤推測法是基于以往的經驗和直覺,參照以往的軟件系統(tǒng)出現(xiàn)的錯誤,推測當前被測程序中可能存在的缺陷和錯誤,有針對性地設計測試用例。

  用錯誤推測法設計測試用例的基本思想是:列舉出程序中可能犯出現(xiàn)的錯誤或容易發(fā)生錯誤的特殊情況的清單,然后根據(jù)清單和已經設計好的測試用例來編寫特定的測試用例。例如,程序中出現(xiàn)的輸入數(shù)據(jù)為“0”或者字符為空就是一種錯誤易發(fā)情況;在出現(xiàn)輸入或輸出的數(shù)量不定的地方,數(shù)量為“沒有”和“一個”也是錯誤易發(fā)情況。特別需要注意的是,在閱讀規(guī)格說明時聯(lián)系程序員可能做的假設來確定測試用例,測試人員要站在用戶的角度來考慮輸入信息,而不必去管這些信息對于被測程序是合理還是不合理的輸入。

4.黑盒測試方法的比較[2]

  (一)等價類劃分法

  核心:“分類”及代表值

  優(yōu)點:通過把輸入數(shù)據(jù)和輸出數(shù)據(jù)進行分類,選用分類中的代表值,在保證了測試覆蓋的情況下大大減少了測試用例的數(shù)量,使測試工作變得簡單高效。

  缺陷:若無清晰的需求分類,可能造成覆蓋泄露。

  (二)邊界值分析法

  核心:邊界值和邊界兩邊的鄰值

  優(yōu)點:大量的程序錯誤往往發(fā)現(xiàn)在輸入的邊界上,考慮了邊界值的測試用例能更高效的發(fā)現(xiàn)程序中的錯誤和缺陷。

  缺陷:此方法的目的性過強,導致其注定只能完成測試的一部分,單獨使用時,整體覆蓋率得不到保證。

  (三)因果圖法

  核心:測試元素邏輯關系圖,即因果圖

  優(yōu)點:該方法擅于處理邏輯事務的測試目標,協(xié)助用例設計人員搭建用例整體框架,實現(xiàn)從上至下的用例設計理念。缺陷:適用范圍有限制,需結合其他方法才能得到最終用例

  (四)錯誤推測法

  核心:測試人員的經驗和敏銳性

  優(yōu)點:測驗人員依據(jù)自己已有的測試經驗,針對現(xiàn)在被測軟件,設計有針對性的測試用例,能夠發(fā)現(xiàn)系統(tǒng)隱蔽的不易被發(fā)現(xiàn)的潛在錯誤和缺陷。

  缺陷:該方法依賴于測試人員的測試經驗和測試的敏銳嗅覺,沒有通用的可以遵循的規(guī)則。

評論  |   0條評論