白盒測試和黑盒測試

發表于:2009-06-19來源:作者:點擊數: 標簽:白盒
從哲學觀點看,分析問題和解決問題的方法有兩種:白盒子方法和黑盒子方法。所謂白盒子方法就是能夠看清楚事物的內部,即了解事物的內部結構和運行機制,通過剖析事 物的內部結構和運行機制,來處理問題。所謂黑盒子方法是沒有辦法或不去了解事物的內部結構和

    從哲學觀點看,分析問題和解決問題的方法有兩種:白盒子方法和黑盒子方法。所謂白盒子方法就是能夠看清楚事物的內部,即了解事物的內部結構和運行機制,通過剖析事

    物的內部結構和運行機制,來處理問題。所謂黑盒子方法是沒有辦法或不去了解事物的內部結構和運行機制,而把整個事物看成一個整體——黑盒子,通過分析事物的輸入、輸出以及周邊條件來分析和處理問題。

     軟件測試具有相類似的哲學思想。根據測試足針對系統的內部結構還是針對具體實現算法的角度來進行,分別稱為白盒測試和黑盒測試。

1黑盒測試法(black-box testing)

     黑盒測試,也稱功能測試或數據驅動測試,如圖2-5所示。它不管程序內部結構是什么樣的,只是從用戶出發,根據產品應該實現的實際功能和已經定義好的產品規格,來驗證產品所應該具有的功能是否實現,每個功能是否都能正常使用,是否滿足用戶的要求。

    在測試時,把程序看作一個不能扣開的黑盒子,在完全不考慮程序內部結構和內部特性的情況下,測試人員針對程序接El和用戶界面進行測試,只檢查程序功能足否按照需求規格說明書的規定正常使用,程序是否能適當地接收輸入數據而產生正確的輸出信息,并且保持外部信息(如數據庫或文件)的完整性。

黑盒測試主要用于發現以下情況:

·  是否有不正確或遺漏了的功能;

·  在接口上t能否正確地接受輸入數據,能否產生正確的輸出信息;

·  訪問外部信息是否有錯;

·  性能上是否滿足要求;

·  界面是否錯誤,是否不美觀;

·  初始化和終止錯誤。

黑盒測試方法主要用于軟件確認測試。其其體方法有等價類劃分、邊界值分析、錯誤推測法、因果圖等。

    黑盒測試方法著眼于程序外部結構,不考慮內部邏輯結構,針對軟件界面和軟件功能進行測試。在用黑盒法測試時,必須在所有可能的輸入條件和輸出條件中確定測試數據。

   黑盒測試中不可能做到窮舉測試,因此局限于功能測試是遠遠不夠的,還要結合白盒測試方法,進行邏輯和路徑測試。

  2白盒測試法(white—box testing)

    白盒測試,也稱結構測試或邏輯驅動測試,也就是己知產品的內部工作過程,清楚最終生成軟件產品的計算機程序的結構和語句,按照程序內部的結構測試程序·測試程序內部的變量狀態、邏輯結構、運行路徑等,槍驗程序中的每條通路是否都能按預定要求正確工作,檢查程序內部動作或運行是否符合設計規格要求,所有內部成分是否按規定正常進行。主要用于軟件驗證。白盒測試的主要方法有邏輯覆蓋、基本路徑測試等。

    白盒測試要求全面了解程序內部邏輯結構和處理過程,以檢查處理過程的細節為基礎,要求對程序的結構特性做到一定程度的覆蓋,對所有邏輯路徑進行測試,并檢驗內部控制結構和數據結構是否有錯,實際的運行狀態與預期的狀態是否一致。自盒測試法是窮舉路徑測試,但貫穿程序的獨立路徑數可能是一個天文數字,所以也不可能進行窮舉測試。企圖遍歷所有的路徑是很難做到的,即使每條路徑都測試了,覆蓋率達到100%,程序仍可能出錯。

    .  窮舉路徑測試絕不能查出程序違反了設計規范,即程序在實現一個不是用戶需要的功能。

    .  窮舉路徑測試不可能查出程序中因遺漏路徑而出錯。

    .  窮舉路徑測試可能發現不了一些與數據相關的錯誤。

     白盒法是“基于覆蓋的測試”,應朝著提高覆蓋率的方向努力,盡可能多地進行測試,找出那些被忽視的錯誤。一般來說,白盒測試的原則是:

    ·  保證每個模塊中所有獨立路徑至少被使用一次。

    .  對所有邏輯值均測試為真值(true)和假值(false)。

    .  在EF邊界及可操作范圍內運行所有循環。

    ·  檢查內部數據結構以確保其有效性。

     綜上所述,白盒測試用例的常見設計方法有邏輯覆蓋、循環覆蓋和基本路徑測試。邏輯覆蓋又可分為語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組臺覆蓋和路徑覆蓋。這世內容會在第5章、第14章詳細介緇。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97