黑盒测试:
也叫功能测试或数据驱动测试,是在已知产品所具有的功能,通过测试来检验每个功能是否正常使用,测试时,将程序看作不能打开的黑盒子,在完全不考虑程序内部结构和内部特性情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当接受输入数据而产生正确的输出信息,并保持外部完整性。
黑盒法是穷举输入测试,只有把所有可能的输入当作测试情况使用,才能检查出程序所有的错误。实际上测试情况有无穷多个,因此不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。
黑盒测试方法:等价类划分法、边界值分析法、因果图法、场景法、正交实验设计法、判定表驱动分析法、错误推测法、功能图分析法
白盒测试:
也叫结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例。主要用于软件或程序验证。白盒测试检查程序内部逻辑结构,对所有逻辑路径进行测试,是一种穷举路径的测试方法,即使每条路径测试都通过,仍有可能存在错误,因为:穷举路径测试法无法检查程序本身是否违反设计规范(错误程序)、不可能检查出因遗漏路径而出错、发现不了与数据相关的错误。
遵循原则:
1. 保证一个模块中的所有独立路径至少被测试一次;
2. 所有逻辑值均需要测试真(true)和假(false);两种情况;
3. 检查程序的内部数据结构,保证其结构的有效性;
4. 在上下边界及可操作范围内运行所有循环。
白盒测试方法:
1、静态测试:不用运行程序,包括代码检查、静态结构分析、代码质量度量、文档测试等,它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具(Fxcop)自动进行。
2、动态测试:执行程序,找到运行程序中的问题,包括功能确认和接口测试、覆盖率分析、性能分析、内存分析等。
白盒测试中的逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。六种覆盖标准发现错误的能力呈由弱到强的变化:
1.语句覆盖每条语句至少执行一次。
2.判定覆盖每个判定的每个分支至少执行一次。
3.条件覆盖每个判定的每个条件应取到各种可能的值。
4.判定/条件覆盖同时满足判定覆盖条件覆盖。
5.条件组合覆盖每个判定中各条件的每一种组合至少出现一次。
6.路径覆盖使程序中每一条可能的路径至少执行一次。