黑盒测试和白盒测试

黑盒测试

概念

黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否能正常使用。完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接受输入数据而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。

测试方法

1、等价类划分法

黑盒测试用例设计中重要的、常用的方法。选取少量有代表性的输入数据,以期用较小的测试代价暴露出较多的软件缺陷
解决如何选择合适的数据子集来代表整个数据集的问题,通过降低测试的数目去实现“合理的”覆盖,覆盖了更多的可能数据,以发现更多的软件缺陷。

等价类是指某个输入域的一个特定的子集合,在该子集合中各个输入数据对于揭露程序中的错误都是等价的。
(1)有效等价类:输入完全满足程序输入的规格说明、有意义的输入数据构成的集合,利用有效等价类检验程序是否满足规格说明所规定的功能和性能
(2)无效等价类:不满足程序输入要求或无效的输入数据构成的集合,使用无效等价类可以测试程序/系统的容错性——对异常输入情况的处理。

2、边界值分析法

在某个输入输出变量范围的边界上,验证系统功能是否正常运行
对多变量函数的测试很有效,但对布尔值或逻辑变量无效,也不能很好地测试不同的输入组合。
边界:最大值,最小值,最大值+1,最小值-1

3、判定表法

借助表格方法完成对输入条件的组合设计,以达到完全组合覆盖的测试效果。一个判定表由“条件和活动”(条件作为输入,活动作为输出)两部分组成,也就是列出一个测试活动执行所属的条件组合,所有可能的条件组合定义了一系列选择,二测试活动需要考虑每一个选择。
概念:
条件桩:列出问题的所有条件
动作桩:列出可能针对问题所采取的操作
条件项:针对所列条件的具体赋值,每个条件只能取真值或假值
动作项:列出在条件项组合情况下应该采取的动作
规则:任何一个条件组合的特定取值及其相应要执行的操作。每一列代表一个测试用例
步骤:
(1)列出所有的条件桩和动作桩
(2)填入条件项
(3)填入动作项,制定初始判定表
(4)简化、合并显示规则或相同动作
如果结果一样,某些因素取0或1没有影响,即以“-”表示,可以合并这两项,最终优化判定表。
例题
打印机打印文件
动作桩有两种,打印内容和不同的错误提示。假定:优先警告缺纸,然后警告没有粉墨,最后警告驱动程序不对
黑盒测试和白盒测试
优化:
黑盒测试和白盒测试

4、因果图法

5、场景分析法

6、错误推断法

白盒测试

概念

结构测试或逻辑驱动测试,知道产品内部工作过程,可通过测试来检测产品内部工作过程

测试方法

1、语句覆盖
2、判定覆盖
3、条件覆盖
4、判定-条件覆盖
5、条件组合覆盖
6、路径覆盖

灰盒测试

介于黑盒测试和白盒测试之间,既关注被测对象的外部特性,又关注其内部设计

黑盒测试和白盒测试的区别

最大的区别:关注的对象不一样(是否直接接触代码)
黑盒测试主要针对的是程序所展现给用户的功能
白盒测试主要针对的是程序代码逻辑