白盒測試
概覽
白盒測試也叫透明盒測試,或者叫結構測試,是用來測試軟件內部結構或者應用的工作情況的測試方法,在白盒測試中,設計測試用例時會用到對系統內部結構理解和一定的編程技巧。測試員需要選擇合適的輸入來覆蓋路徑,並決定合適的輸出。
白盒測試可以應用在單元測試,集成測試和系統測試上。盡管傳統測試者更傾向於在單元測試層面做白盒測試,但是現在白盒測試在集成測試和系統測試上的應用越來越頻繁。白盒測試可以用於單元內的路徑覆蓋,集成測試時的單元間路徑覆蓋,或者在系統測試時子系統建的路徑覆蓋。雖然這種方法會發現許多錯誤和問題,但是卻有可能遺漏說明書中提到的卻沒有實現或者遺漏的要求。
設計白盒測試的技術有以下幾種覆蓋標准:
- 控制流測試
- 數據流測試
- 分支測試
- 語句覆蓋
- 決策覆蓋
- 修改條件/判斷覆蓋
- 朴素路徑測試
- 路徑測試
基本步驟
白盒測試的基本過程需要測試者對所測代碼有深層理解,程序猿必須十分熟悉應用,知道設計什么樣的測試用例才能在覆蓋所有的可見路徑。當理解代碼后,就要分析代碼,並據此設計測試用例。以下是設計測試用例的幾個基本步驟:
- 准備,收集不同類型的需求文檔,功能說明書,詳細設計文檔,恰當的源代碼,安全說明等。這些為白盒測試輸入基本信息做准備
- 處理,需要進行分先分析,得出整個測試過程,合適的測試計划,執行測試用例,並對結果進行溝通。這是創建能夠徹底測試應用並且能夠記錄相應的結果的測試用例的基本步驟。
- 輸出,圍繞這上面的准備和結果來寫最終的測試報告。
優點
白盒測試是現如今廣發使用的兩大方法中的一種,主要有一下幾種優點:
- 知道代碼有利於徹底的測試代碼
- 通過揭露隱藏的錯誤和消除可能的缺陷,能夠優化代碼
- 因為開發者需要仔細的描述新的實現,能夠讓程序猿得到反省
- 讓代碼有可回溯性,當代碼改變時能夠輕易的修改測試用例
- 易於自動化
- 從工程實踐較多對測試終止條件給出了清晰的規則
缺點
盡管白盒測試有很多優點,但他並不是完美的,任然存在混多缺點:
- 白盒測試增大了測試的復雜度,因為測試者需要了解程序,甚至程序猿本人。因為白盒測試本身的復雜性,白盒測試在測試的時候需要測試者有很高的知識層次。
- 在有些場合,測試應用中不可能單獨地測試所有的存在條件,有的條件也不會被測試到。
- 測試關注軟件本身,可能會忽視功能性的缺陷。
