软件开发中的白盒测试
今天,我们来谈谈软件开发过程中的白盒测试。
一、白盒测试的概念
白盒测试(White Box Testing),按照程序内部的结构、逻辑驱动测试程序,通过测试来检测产品内部动作是否按照设计说明书的规定正常进行,检验程序中的每条路径是否都能按预定要求正确工作。白盒测试的对象主要是源程序。是指用代码内部的分支、路径、条件,使程序设计的控制结构导出测试用例。白盒测试是一个与黑盒测试相对的概念,是指测试者针对可见代码进行的一种测试。白盒测试通常再划分为单元测试、集成测试两大类,但依据不同的流程,对白盒测试细分的标准也不尽一致,比如在IBM的IPD流程之下,白盒测试可能划分为如下几类:模块单元测试、模块集成测试、模块系统测试、渐增Build集成测试、系统集成测试等。而在XP实践中,单元测试与集成测试之间的界限并不明显,统称为渐增迭代测试。
二、白盒测试的特点
白盒法特点:以程序的内部逻辑为基础设计测试用例,所以又称为逻辑覆盖法。应用白盒法时,手头必须有程序的规格说明以及程序清单。白盒法考虑的是测试用例对程序内部逻辑的覆盖程度。最彻底的白盒法是覆盖程序中的每一条路径,但是由于程序中一般含有循环,所以路径的数目极大,要执行每一条路径是不可能的,只能希望覆盖的程度尽可能高些。
三、白盒测试的目的
1)保证一个模块中的所有独立路径至少被执行一次;
2)对所有的逻辑值均需要测试真、假两个分支;
3)在上下边界及可操作范围内运行所有循环;
4)检查内部数据结构以确保其有效性。
5)提高代码的质量达到软件产品中要求的可靠性、安全性
四、白盒测试的策略
1)测试中,尽量先用自动化工具来进行静态结构分析;
2)auJ试中建议先从静态测试开始,如:静态结构分析、代码走查和静态质量度量后进行动态测试,如:覆盖率测试;
3)利用静态分析的结果作为依据,再使用代码检查和动态测试的方式对静态分析结果进行进一步确认,提高测试效率及准确性;
4)覆盖率测试是白盒测试中的重要手段,在测试报告中可以作为量化指标的依据,对于软件的重点模块,应使用多种覆盖率标准衡量代码的覆盖率;
5)在不同的测试阶段,测试的侧重点是不同的。其中主要包含:
(1)桌前检查(Desk Check)
(2)单元测试(Unit Testing
(3)代码评审(Code Review
(4)同行评审(Peer Review
(5)代码走查(Walkthrough
(6)静态分析(Static Analysis