白箱測試
![本頁使用了標題或全文手工轉換](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
白盒測試(white-box testing)又稱透明盒測試(glass box testing)、結構測試(structural testing)等,軟件測試的主要方法之一,也稱結構測試、邏輯驅動測試或基於程序本身的測試。測試應用程式的內部結構或運作,而不是測試應用程式的功能(即黑箱測試)。在白箱測試時,以程式語言的角度來設計測試案例。測試者輸入資料驗證資料流在程式中的流動路徑,並確定適當的輸出,類似測試電路中的節點。測試者了解待測試程序的內部結構、算法等信息,這是從程序設計者的角度對程序進行的測試。
白箱測試可以應用於單元測試、整合測試和系統的軟體測試流程,可測試在整合過程中每一單元之間的路徑,或者主系統跟子系統中的測試。儘管這種測試的方法可以發現許多的錯誤或問題,它可能無法檢測未使用部分的規範。
白盒測試設計技術包括以下代碼覆蓋標準:
- 控制流測試
- 數據流測試
- 分支測試
- 語句覆蓋
- 判定覆蓋
- 修正條件/判定覆蓋
- 主要路徑測試
- 路徑測試
基本步驟
白盒測試的基本步驟包括測試者對被測試的源代碼有一個深層次的理解。程序員必須對應用有一個深度理解,以清楚的知道應創建哪種測試用例,從而使得測試中的所有可見路徑都可以被執行。源代碼被理解之後才可以被分析,以創造測試用例。以下是白盒測試創建測試用例的三個基本步驟:
- 輸入包括不同種類的需求,功能方面,文檔中的詳細設計,合適的源碼,安全方面。[1]這是白盒測試列出所有基本信息的準備階段。
- 過程包括風險分析來導向整個測試過程,合適的測試計劃,執行測試用例和交流過程。[1] 這是建立測試用例的階段,以確保他們徹底的測試了應用程序,並且記錄下了相應的測試結果。
- 輸出包括準備最後報告,其中包含了以上所有準備材料和結果。[1]
優點
白盒測試是當今使用的兩個最大的測試方法之一。 它有幾大優勢:
- 在測試過程中掌握有關源代碼的知識是有益的。[2]
- 通過揭示隱藏的錯誤進行的代碼優化,可以消除可能存在的缺陷。[2]
- 開發人員需仔細地進行接下來的開發,白盒測試可以為程序員提供反饋。[2]
- 從源代碼層面測試提供了可追溯性,簡化了將來軟件改動帶來的測試改動。[3]
- 白盒測試容易實現自動化。[4]
- 關於測試的停止時間,白盒測試給出了明確的工程學上的規定。[5][4]
缺點
儘管白盒測試具有很大的優勢,它並不完美,並包含一些缺點:
- 白盒測試複雜,因為測試員必須有編程知識,算得上是一個程序員。根據測試層面的複雜性,白盒測試需要知識水平更高的程序員。[2]
- 在某些情況下,要測試程序中的所有可能情況是不現實的,因此會有一些未被測試的情況。[2]
- 白盒測試着眼於已存的軟件,可能無法發現遺漏的功能。
黑客
在滲透測試中,白盒測試是指其中一個方法,即白帽黑客已經充分了解了被攻擊的系統。白盒滲透測試的目的是模擬一個對目標系統有所瞭解甚至有基本身份的惡意內部人員。
參見
參考文獻
- ^ 1.0 1.1 1.2 Ehmer Khan, Mohd. Different Approaches to White Box Testing Technique for Finding Errors (PDF). International Journal of Software Engineering and Its Applications. July 2011, 5: 1–6 [12 February 2013]. (原始內容 (PDF)存檔於2015-07-01).
- ^ 2.0 2.1 2.2 2.3 2.4 Ehmer Khan, Mohd. Different Forms of Software Testing Techniques for Finding Errors (PDF). IJCSI International Journal of Computer Science Issues. May 2010, 7 (3): 12 [12 February 2013]. (原始內容 (PDF)存檔於2015-11-23).
- ^ Binder, Bob. Testing Object-oriented Systems. Addison-Wesley Publishing Company Inc. 2000.
- ^ 4.0 4.1 Ammann, Paul; Offutt, Jeff. Introduction to Software Testing. Cambridge University Press. 2008 [2015-05-26]. ISBN 9780521880381. (原始內容存檔於2021-04-25).
- ^ Myers, Glenford. The Art of Software Testing. John Wiley and Sons. 1979.
|