a.具有较高的发现可能故障的能力
b.从分析模型开始,考察可能发生的故障,设计用例去执行设计和代码
c.可用于集成测试,发现消息联系中‘可能的故障’(可能的故障指意料之外的结果、错误地使用了操作/消息、不正确地引用等)
d.除用于操作测试外,还可用于属性测试,用以确定其对于不同类型的对象行为是否赋予了正确的属性值
e.是从客户对象(主动)上发现错误
f.不能发现的错误:不正确的规格说明,用户不需要的功能或缺少用户需要的功能;没有考虑子系统间的交互作用
2.基于场景的测试
a.主要关注用户需要做什么,不是产品能做什么,即从用户任务(使用用例)中找出用户要做什么及如何去执行
b.有助于在一个单元测试情况下检查多重系统,比基于故障的测试更实际,更复杂一点
3.OO类的随机测试
如果一个类有多个操作(功能),这些操作(功能)序列有多种排列,这种不变化的操作序列可随机产生,用这种可随机排列来检查不同类实例的生存史,称为随机测试。
4.类层次的分割测试
a.可以减少用完全相同的方式检查类测试用例的数目,类似于等价类划分
b.分类:基于状态的分割、基于属性的分割、基于类型的分割
基于状态的分割:按类操作是否会改变类的状态进行分割(归类)
基于属性的分割:按类操作所得到的属性来分割(归类)
基于类型的分割:按完成的功能分割(分类),如初始操作、计算操作、查询操作
5.由行为模型(状态、活动、顺序和合作图)导出的测试
状态转换图(STD)可以用来帮助导出类的动态行为的测试序列,以及这些类与之合作的类的动态行为测试用例,根据状态转换图,设计出最小测试用例,加入其他测试序列到最小测试序列中,保证类所有行为被充分检查。