一、为什么要进行白盒测试?
1、逻辑错误和不正确假设与一条程序路径被执行可能性成反比。当我们设计和实现主流之外的功能、条件和控制时,错误往往开始出现在我们的工作中。日常处理往往能被很好的理解,而“特殊情况”的处理则难于发现。
2、我们经常相信某个逻辑路径不可能被执行,而事实上,它可能在正常的情况下被执行。程序的逻辑流有时候是违反直觉的,这意味着我们关于控制流和数据流的一些无意识的假设可能导致设计错误,只有路经测试才能发现这些错误。
3、笔误是随机的。有可能产生的笔误,很多将被语法检查机制发现,但是还有一些在测试开始后才会被发现。
二、白盒测试的常用的技术
1、静态分析技术
2、动态分析技术
3、测试数据生成
4、测试覆盖率(语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、路径覆盖)
三、为什么要进行黑盒测试?
白盒测试在测试的早期进行,黑盒测试主要用于后期。黑盒测试不是白盒测试的替代品,而是用于辅助白盒测试发现其他类型的错误。黑盒测试可以回答以下问题:
1、如何测试功能的有效性?
2、何种类型的输入会产生好的测试用例?
3、系统是否对特定的输入值尤其敏感?
4、如何分割数据类的边界?
5、系统能够承受何种数据率和数据量?
6、特定类型的数据组合会对系统产生何种影响?
四、黑盒测试的常用技术
1、没有用户参与的黑盒测试
2、有用户介入的黑盒测试
五、灰盒测试
在现代测试理念中,黑盒测试和白盒测试往往不是截然分开的。一般地,在白盒测试中交叉使用黑盒测试方法;在黑盒测试中交叉使用白盒测试的方法。灰盒测试就是这样一个介于白黑之间的测试,常见的是集成测试。
黑盒测试和白盒测试都是测试设计的方法。黑盒测试把系统理解为一个内部不可见的盒子,因此不需要明白它的内部结构。黑盒测试一般关注的是对功能需求的测试。白盒测试设计允许你观察盒子内部,让你了解其内部结构和运作原理,并使用对这些知识的了解来指导测试用例的设计。为了完全测试一个软件,二者缺一不可。