软件测试与质量保证4 黑盒测试
目录
黑盒测试
概念
黑盒测试,又称为功能测试或数据驱动测试,把测试对象当作看不见内部的黑盒。要求导出执行程序所有功能需求的输入条件集,实现功能覆盖。
黑盒测试是在软件的接口处进行测试。
特点
- 如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
- 黑盒测试不能替代白盒测试,而是用来发现白盒测试以 外的其他类型的错误。
等价类方法
原理
测试的目的是进行完备的测试,同时避免测试用例冗余。等价类测试是通过每个等价类中的一个元素标识测试用例,降低测试用例的冗余性。
划分等价类
- 等价类是指某个输入域的子集合
- 等价类的划分有两种不同的情况
- 设计测试用例时,要同时考虑有效等价类和无效等价类设计
等价类测试重复边界值测试的两个决定因素,即健壮性和单/多缺陷假设。
等价类测试的关键,就是选择确定的等价关系,必须区分弱等价类和强等价类。
弱一般等价类测试
弱一般等价类测试是单缺陷假设
强一般等价类测试
强一般等价类测试基于多缺陷假设,因此,需要等价类笛卡尔积的每个元素对应的测试用例。
弱健壮等价类测试
单缺陷条件假设,考虑无效值的等价类测试。
- 对于有效输入,使用每个有效类的一个值。
- 对于无效输入,测试用例将拥有一个无效值,并保持其余的值 都是有效的。
强健壮等价类测试
多缺陷条件假设,从所有等价类笛卡尔积的每个元素中获得测试用例。
总结
- 等价类测试的弱形式不如强形式的测试全面
- 如果错误条件非常重要,有必要进行健壮形式的测试
- 如果输入数据以离散值区间和集合定义,则等价类测试是合 适的
- 通过结合边界值测试,等价类测试可以得到加强
- 如果函数很复杂,需要做等价类测试
- 强等价类测试假设变量是独立的,相应的测试用例相乘会引起冗余问题。如果存在依赖关系,则常常会生成错误的测试 用例
- 在确定合适的等价关系之前,可能需要进行多次尝试
- 强和弱形式的等价类测试之间的差别,有助于区分累进测试 和回归测试
边界值方法
作用
边界值分析是对等价类划分方法的补充。
从测试工作经验得知,大量的错误是发生在输 入或输出范围的边界上,而不是在输入范围的内部。
边界值原理与思想
程序是函数
输入:函数的定义域
输出:函数的值域
使用的输入变量是
- min,min+
- nom
- max-,max
一般边界值
单缺陷假设 :一个变量取极值,其他所有变量去正常值。
对于有N个变量的 函数,边界值分析 产生4N+1个测试用例。
健壮性测试
增加极限值:max+,min-
一个变量取极值,其他所有变量取正常值
对于有N个变量的函数,产生 6N+1个测试用例.
最坏情况测试
多个变量取极值:对每个变量 ,包含min,min+,nom,max-max集合的测试
然后再对这些集合做 笛卡尔积运算,生成测试用例
N个变量:个测试 用例
最坏健壮性测试
对于最坏情况测试的健壮性测试,采用健壮性测试的七 元素集合的笛卡尔积作为测试用例。
特殊值测试
特殊值测试大概是运用得最广泛的一种功能性测试。当测试人员使用其领域知识、使用类似程序的经验以及关于“软点”信息开发测试用例时,会出现特殊值测试。
特殊测试特别依赖测试人员的能力。尽管特殊值测试是 高度主观性的,但是所产生的测试用例集合,常常更能有效地发现缺陷。
随机测试
随机测试的思想是:不是永远选取有界变量的最小值、略高于最小值、正常值、略低于最大值和最大值,而是使用随机数生成器选出测试用例值。
这个程序持续生成随机测试用例,直到每种输出至少出现一次。
决策表方法
在所有功能性测试方法中,基于决策表的测试方法是最严格的,因为决策表具有逻辑严格性。
组成部分
决策表有四个部分:桩部分、条目部分、条件部分、行动部分。
例如:
使用决策表标识测试用例,能够保证一种完备的测试
为了使用决策表标识测试用例,我们把条件解释为输入,把行动解释为输出。
三角形问题决策表
注意:不关心条目和不可能规则
总结
决策表技术适用于以下特征的应用程序:
- IF-THEN-ELSE逻辑突出
- 输入变量之间存在逻辑关系
- 涉及输出变量子集的计算
- 输入与输出之间存在因果关系
决策表不能很好地伸缩,需要使用扩展条目决策表、代数简化表,将大表分解成小表
可以使用迭代技术,逐渐改进,直到得到满意的决策表