面向对象软件测试用例设计

 目前, 面向对象软件测试用例设计方法,还处于研究和发展阶段。与传统的软件测试
不同的是。面向对象测试更关注于设计适当的操作序列以检查类的状态。
设计测试用例有以下几个要点:
(1) 应该唯一标识每一个测试案例, 并且与被测试的类明显地建立关联;
(2) 陈述测试对象的一组特定状态;
(3) 对每一个测试建立一组测试步骤,要思考或确定的问题包括:对被测试对象的一
组特定状态,一组消息和操作,考虑当对象测试时可能产生的一组异常,一组外部条件,
辅助理解和实现测试的补充信息。
       类的封装性和继承性给面向对象软件的开发带来了很多好处,但却给测试带来了负面
影响。一方面,面向对象测试用例设计的目标是类,类的属性和操作是封装的,而测试需
要了解对象的详细状态;同时测试还要检测数据成员是否满足数据封装的要求,基本原则
是数据成员是否被外界直接调用,即被数据成员所属的类或子类以外的类调用。另一方继

承也给测试用例的设计带来了不少麻烦。继承并没有减少对子类的测试,相反使测试过
程更加复杂。如果子类和父类的环境不同,则父类的测试用例对于子类没用,需要为子类
设计新的测试用例。
一、 设计类测试用例
      对于面向对象软件,小型测试着重测试单个类和类的封装,即类级别的测试,测试方
法有随机测试、划分测试和基于故障的测试等。
1.类级随机测试
随机测试是针对软件在使用过程中随机产生的一系列不同的操作序列设计的测试案
例,可以测试不同的类实例生存历史。
为了简要地说明这些方法,考虑一个记事本的应用。在这个应用中,类text 有以下操
作:open(打开),new(新建),read(读取),write(写入),copy(复制),paste(粘贴),view(查
看),save(保存)和close(关闭)。这些操作的每一个都能应用于类text,但是由于这个问题的
本质提出了某些约束条件。例如,在其他操作执行之前,必须首先执行open 操作,并且在
所有其他操作执行完,最后必须执行close 操作。即使对于这些约束,还存在这些操作的许
多不同的排列。text 的一个的最小操作序列
open·new·write·save·close
另外,有其他很多行为可以出现在这个序列中
open·new·write·[read| write| copy |paste]n ·save·close
这样可以随机地生成一系列不同的操作序列作为测试用例,测试类实例的不同生存历史。
2. 类级划分测试
划分测试方法与传统软件测试采用的等价划分方法类似,减少了测试类所需要的测试
用例的数量。首先,用不同的划分方法(包括基于状态的划分方法、基于属性的划分方法、
基于功能的划分方法),把输入和输出分类,然后把划分出来的每个类别设计测试用例。
下面分别介绍划分类别的方法:
基于状态的划分方法是根据操作改变类状态的能力对操作进行范畴划分。仍以text 类
为例,首先将状态操作和非状态操作分开,状态操作包括read 和write,而非状态操作有
view,然后分别为它们设计测试用例。
测试用例1:open·new·write·read·write·save·close
测试用例2:open·new·write·read·write·view·save·close
基于属性的划分根据操作使用的属性将操作划分成范畴。对于text 类,以属性save为
例。首先根据这个属性将操作划分为3个范畴:使用save的操作;修改save的操作;不使
用或修改save的操作,然后为每个范畴设计测试序列。当然对于text 类也可以使用其他属
性进行划分。
基于功能的划分是根据类操作所执行的一般功能将操作进行划分的。首先将text 类中
的操作划分为初始化操作(open,new),写入/读取操作(write,read),保存操作(save)和关闭
操作(close),然后分别为每个类别设计测试用例。3. 类级基于故障的测试
基于故障的测试与传统的错误测试推测法类似。首先,推测软件中可能有的错误,然
后,设计出最可能发现这些错误的测试案例。为了推测出软件中可能存在的错误,应该仔
细研究分析模型和设计模型,很大程度上要依靠测试人员的经验。
二、 测试类间测试用例
从面向对象的集成测试开始,设计测试用例就要考虑类间的协作,通常可以从OOA
的类—关系模型和类—行为模型中导出类间测试用例。
类间测试方法有随机测试方法、划分测试方法、基于场景的测试和行为测试。
随机测试方法和划分测试方法与类级随机测试、类级划分测试类似,主要看一下基于
场景的测试和行为测试。
1. 基于场景的测试
基于场景的测试关注的是用户做什么,这正是基于故障测试所忽略的,即不正确的规
约和子系统间的交互。当与不正确的规约关联发生错误时,软件就可能不做用户所希望的
事情,这样软件质量会受影响;当一个子系统的行为所建立的环境使得另一个子系统失败
时,子系统间的交互错误就会发生。
2. 行为测试
行为测试即从动态模型导出测试用例;用状态转换图作为表示类的动态行为模型,类
的状态图可以导出测试该类的动态行为的测试用例。
设计的测试用例,一方面应该覆盖所有状态,另一方面应该导出足够的测试用例,以
保证该类的所有行为都被适当的测试过。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值