这一篇主要对白盒测试和黑盒测试进行介绍。
白盒测试
白盒测试又称结构测试、逻辑驱动测试、基于程序代码内部结构的测试。需要考察的是程序代码的内部结构、逻辑设计等。白盒测试对测试工程师的要求也比较高,有很深的软件开发功底,精通相应的开发语言。
对于白盒测试,常用的测试方法有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、多重条件覆盖等。
白盒测试主要是相对程序模块进行如下检查:
- 对程序模块所有独立的执行路径至少测试一遍;
- 对所有的逻辑判定,取“真”和“假”的情况至少测一遍;
- 在循环的边界和运行的边界内执行循环体;
- 测试内部数据结构的有效性等。
黑盒测试
黑盒测试又称功能测试、数据驱动测试、给予需求规格说明书的功能测试,该测试注重测试软件的功能性需求。
测试工程师将测试对象看做一个黑盒子,不需要考虑程序内部的逻辑结构和特性,只需要依据程序的需求规格说明书,检查程序的功能是否符合功能说明。
黑盒测试更好的从用户的角度来考察被测系统的功能性需求实现情况,在软件测试的各个阶段,如:单元测试、集成测试、系统测试及验收测试等阶段都发挥着作用,尤其是在系统测试和确认测试中,其作用是无法取代的。
黑盒测试的方法有:等价类划分法、边界值法、错误猜测法、因果图法、场景设计法。
黑盒测试主要是为了发现以下几类错误:
- 是否有不正确或遗漏的功能;
- 在接口上,输入是否能正确的接收?是否输出正确的结果?
- 是否有数据结构错误或外部信息访问错误?
- 性能上是否能满足要求?
- 是否有初始化或终止性错误?