题目
面向对象的测试用例设计有几种方法?如何实现?
-
Berard 提出了一些测试用例的设计方法,主要原则包括:
-
每个测试用例应当给予特殊的标识,并且还应当与测试的类有明确的联系。
-
测试目的应当明确。
-
应当为每个测试用例开发一个测试步骤列表。这个列表应包含以下一些内容:
-
列出所要测试对象的专门说明。
-
列出将要作为测试结果运行的消息和操作。
-
列出测试对象可能发生的例外情况。
-
列出外部条件(即为了正确对软件进行测试所必须有的外部环境的变化)。
-
列出为了帮助理解和实现测试所需要的附加信息。
-
-
-
主要方法:
-
基于故障的测试
基于故障测试也可以用于组装测试,组装测试可以发现消息联系中
可能的故障
。可能的故障
一般为意料之外的结果、错误地使用了操作 / 消息、不正确引用等。为了确定由操作(功能)引起的可能故障必须检查操作的行为。这种方法除用于操作测试外,还可用于属性测试,用以确定其对于不同类型的对象行为是否赋予了正确的属性值。因为一个对象的
属性
是由其赋予属性的值定义的。 -
基于脚本的测试
基于脚本的测试主要关注用户需要做什么,而不是产品能做什么,即从用户任务(使用用例)中找出用户要做什么及去执行。
这种基于脚本的测试有助于在一个单元测试情况下检查多重系统。所以基于脚本测试用例测试比基于故障测试不仅更实际(接近用户),而且更复杂一点。
-
OO 类的随机测试
如果一个类有多个操作(功能),这些操作(功能)序列有多种排列。而这种不变化的操作序列可随机产生,用这种可随机排列的序列来检查不同类实例的生存史,就叫随机测试。
-
类层次的分割测试
这种测试可以减少用完全相同的方式检查类测试用例的数目。这很像传统软件测试中的等价类划分测试。分割测试又可分三种。
-
基于状态的分割。按类操作是否改变类的状态来分割(归类)。
-
基于属性的分割。按类操作所用到的属性来分割(归类)。
-
基于类型的分割。按完成的功能分割(归类)。
-
-
由行为模型(状态、活动、顺序和合作图)导出的测试
状态转换图(STD)可以用来帮助导出类的动态行为的测试序列,以及这些类与之合作的类的动态行为测试序列。
-