白盒测试
白盒测试(white-box testing)又稱透明盒測試(glass box testing)、結構測試(structural testing)等,软件测试的主要方法之一,也称结构测试、逻辑驱动测试或基于程序本身的测试。測試應用程式的內部結構或運作,而不是測試應用程式的功能(即黑箱測試)。在白箱測試時,以程式語言的角度來設計測試案例。測試者輸入資料驗證資料流在程式中的流動路徑,並確定適當的輸出,類似測試電路中的節點。测试者了解待测试程序的内部结构、算法等信息,这是从程序设计者的角度对程序进行的测试。
白箱測試可以應用於單元測試、整合測試和系統的軟體測試流程,可測試在整合過程中每一單元之間的路徑,或者主系統跟子系統中的測試。儘管這種測試的方法可以發現許多的錯誤或問題,它可能無法檢測未使用部分的規範。
白盒测试设计技术包括以下代码覆盖标准:
- 控制流测试
- 数据流测试
- 分支测试
- 语句覆盖
- 判定覆盖
- 修正条件/判定覆盖
- 主要路径测试
- 路径测试
基本步骤
白盒测试的基本步骤包括测试者对被测试的源代码有一个深层次的理解。程序员必须对应用有一个深度理解,以清楚的知道应创建哪种测试用例,从而使得测试中的所有可见路径都可以被执行。源代码被理解之后才可以被分析,以创造测试用例。以下是白盒测试创建测试用例的三个基本步骤:
优点
白盒测试是当今使用的两个最大的测试方法之一。 它有几大优势:
缺点
尽管白盒测试具有很大的优势,它并不完美,并包含一些缺点:
黑客
在渗透测试中,白盒测试是指其中一个方法,即白帽黑客已经充分了解了被攻击的系统。白盒渗透測試的目的是模擬一個對目標系统有所瞭解甚至有基本身份的惡意内部人员。
参见
参考文献
- ^ 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.