动态黑盒测试
边界值测试:
将程序输入看成定义域(集合),输出看成值域(集合)。程序把定义域映射到值域。可以根据定义域和值域构造测试用例。缺点是容易出现冗余和覆盖不全。
-
边界值分析:
- 当失效问题不会由2个故障同时引发(单故障假设)时,也就是说变量是相对独立的,不会相互影响。
- 将1个输入变量取图中(最大最小,略大于略小于),其他输入变量取正常值。
-
健壮性测试:
- 除了边界值分析的5个值,还要考察取值在范围之外的情况
- 测试系统对异常的处理
-
最坏情况测试
- 单故障假设不成立时,考虑多个变量同时取以上5种值的组合。
- 所以边界值分析是最坏情况测试的子集
-
特殊值测试:
- 根据对程序的理解编写测试用例,用随机生成器生成。
- 例如一个程序的输入为日期,日期有2月底(还包括闰年的情况),大小月,使用上述测试方法都难以覆盖。
等价类测试:
等价类对(输入或输出)集合进行划分,将集合划分为互不相交的子集。在每个等价类中取出1个元素构成测试用例。
- 弱一般等价类:
- 测试用例只使用一个等价类(区间)。
- 例如一个程序的输出为三角形,可以发现输出有4种:非三角形,不等边三角形,等腰三角形,等边三角形。根据每种输出构造1种输入用例。
强一般等价类:例如一个程序有2个输入变量,对每个变量的区间进行划分,覆盖所有等价类的输入组合。
-
弱健壮等价类测试
- 弱:基于单故障假设。同时考虑有效输入和无效输入
- 有效输入即为弱一般等价类,无效输入要求要求每个测试用例包含1个无效值。
- 强健壮等价类测试:多故障假设 图6-4
基于决策表的测试:
根据规则(可能出现的情况TF的集合)推出对应的结果。例如表7-2
以例7-9和7-10的规则4和9为例,注意规则的冗余(规则一致但结果一致 )和不一致性(规则一致但结果不一致 )
总结:
测试用例数量:
测试用例工作量:
以计算保费为例,使用混合测试,根据最坏边界值,决策表,等价类测试用例去除冗余测试用例(例如考虑考虑健壮性测试,包括年龄超出,不需要保险和无需驾驶折扣等情况)