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