“黑盒”測“外”不測“內”

 軟件測試有許多種方法,其中黑盒測試是廣泛使用的兩類測試方法之一。

  “黑盒”測的是功能

  黑盒測試也稱功能測試或數據驅動測試。它在已知產品應具有的功能的條件下,通過測試來檢測每個功能是否都能正常使用。在測試時,把程序看作一個不能打開的黑盒子,在完全不考慮程序內部結構和內部特性的情況下,測試者在程序接口進行測試,它只檢查程序功能是否按照需求規格說明書的規定正常使用,程序是否能適當地接收輸入數據而產生正確的輸出信息,並且保持外部信息(如數據庫或文件)的完整性。
  “黑盒”法着眼於程序外部結構、不考慮內部邏輯結構、針對軟件界面和軟件功能進行測試。“黑盒”法是窮舉輸入測試,只有把所有可能的輸入都作爲測試情況使用,才能以這種方法查出程序中所有的錯誤。實際上測試情況有無窮多個,人們不僅要測試所有合法的輸入,而且還要對那些不合法但是可能的輸入進行測試。

  “黑盒”的兩種基本方法

  黑盒測試有兩種基本方法,即通過測試和失敗測試。

  在進行通過測試時,實際上是確認軟件能做什麼,而不會去考驗其能力如何。軟件測試員只運用最簡單,最直觀的測試案例。

  在設計和執行測試案例時,總是先要進行通過測試。在進行破壞性試驗之前,看一看軟件基本功能是否能夠實現。這一點很重要,否則在正常使用軟件時就會奇怪地發現,爲什麼會有那麼多的軟件缺陷出現?

  在確信了軟件正確運行之後,就可以採取各種手段通過搞“垮”軟件來找出缺陷。純粹爲了破壞軟件而設計和執行的測試案例,被稱爲失敗測試或迫使出錯測試。

  黑盒測試的設計方法

  黑盒測試是以用戶的觀點,從輸入數據與輸出數據的對應關係出發進行測試的,它不涉及到程序的內部結構。很明顯,如果外部特性本身有問題或規格說明的規定有誤,用黑盒測試方法是發現不了的。黑盒測試法注重於測試軟件的功能需求,主要試圖發現幾類錯誤:功能不對或遺漏、界面錯誤、數據結構或外部數據庫訪問錯誤、性能錯誤、初始化和終止錯誤。

  具體的黑盒測試方法包括等價類劃分、因果圖、正交實驗設計法、邊值分析、判定表驅動法、功能測試等。在使用時,自然要針對開發項目的特點對方法加以適當的選擇。

  ◆ 等價類劃分

  等價類劃分是一種典型的黑盒測試方法,用這一方法設計測試用例可以不用考慮程序的內部結構,只以對程序的要求和說明,即需求規格說明書爲依據,仔細分析和推敲說明書的各項需求,特別是功能需求,把說明中對輸入的要求和輸出的要求區別開來並加以分解。

  由於窮舉測試的數量太大,以致於無法實際完成,促使我們在大量的可能數據中選取其中的一部分作爲測試用例。例如,在不瞭解等價分配技術的前提下,測試了1+1、1+2、1+3和1+4之後,還有必要測試1+5和1+6嗎?能否放心地認爲它們正確嗎?那麼1+999…(可以輸入的最大數值)呢?這個測試用例是否與其他用例不同?是否屬於另外一種類別?另外一個等價區間?這是軟件測試員必須考慮到的問題。

  等價類別或者等價區間是指測試相同目標或者暴露相同軟件缺陷的一組測試案例。 1+999…和1+13有什麼區別呢?至於1+13,就像一個普通的加法,與1+5或者1+392沒有什麼兩樣,而1+999…則屬於鄰界的極端情況。假如輸入最大允許數值,然後加1,就會出現問題——也許就是軟件的缺陷。這個極端案例屬於一個單獨的區間,與常規數字的普通區間不同。

  等價類劃分的辦法是把程序的輸入域劃分成若干部分,然後從每個部分中選取少數代表性數據當作測試用例。每一類的代表性數據在測試中的作用等價於這一類中的其他值,也就是說,如果某一類中的一個例子發現了錯誤,這一等價類中的其他例子也能出現同樣的錯誤。使用這一方法設計測試用例,首先必須在分析需求規格說明的基礎上劃分等價類,列出等價類表。

  在考慮等價類劃分時,先從程序的功能說明中找出每個輸入條件,然後爲每個輸入條件劃分兩個或更多個等價類。等價類可分兩種情況:有效等價類和無效等價類。有效等價類是指對程序的規格說明是有意義的、合理的輸人數據所構成的集合;無效等價類是指對程序的規格說明是不合理的或無意義的輸人數據所構成的集合。

  ◆ 邊界值分析
  軟件測試常用的一個方法是把測試工作按同樣的形式劃分。對數據進行軟件測試,就是檢查用戶輸入的信息、返回結果以及中間計算結果是否正確。

  即使是最簡單的程序,要處理的數據也可能數量極大。還記得在計算器上簡單加法的全部可能性嗎?再想一想字處理程序、導航系統和證券交易程序。使這些數據得以測試的技巧(如果稱得上的話)是,根據下列主要原則進行等價分配,以合理的方式減少測試案列:邊界條件、次邊界條件、空值和無效數據。

  邊界值分析(Boundary Value Analysis,BVA)是一種補充等價劃分的測試用例設計技術,它不是選擇等價類的任意元素,而是選擇等價類邊界的測試用例。實踐證明,在設計測試用例時,對邊界附近的處理必須給予足夠的重視,爲檢驗邊界附近的處理專門設計測試用例,常常可以取得良好的測試效果。BVA不僅重視輸人條件邊界,而且也從輸出域導出測試用例。

  邊界值設計測試遵循的五條原則:

  1、如果輸入條件規定了取值範圍,應以該範圍的邊界內及剛剛超範圍邊界外的值作爲測試用例。如以a和b爲邊界,測試用例應當包含a和b及略大於a和略小於b的值;

  2、若規定了值的個數,分別以最大、最小個數及稍小於最小、稍大於最大個數作爲測試用例;

  3、針對每個輸出條件使用上述1、2條原則;

  4、如果程序規格說明中提到的輸入或輸出域是個有序的集合(如順序文件、表格等),就應注意選取有序集的第一個和最後一個元素作爲測試用例;

  5、分析規格說明,找出其他的可能邊界條件。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章