文档库 最新最全的文档下载
当前位置:文档库 › 软件测试实验三

软件测试实验三

北京林业大学

2012学年—2013学年第 1 学期软件测试实验报告书

专业:信息管理与信息系统

实验题目:基于OCL和状态图的类测试、OATS类交互测试

实验环境:Windows Server 2003、VC6.0

实验目的

掌握基于OCL和状态图的类测试以及OATS类交互测试的方法。

实验内容

实验1:以下是Student类OCL说明的一部分,请根据每个操作的前置条件和后置条件构造测试用例。要求写明测试用例的构造依据,以及最后得到的测试用例。Student

xh(学号)> 0

age(年龄)>= 16 and age <= 40

Student::setAge(age : Int)

Pre: age >= 16 and age <= 40

Post: self.age = age and xh = xh@pre

Student::setXh(xh : Int)

Pre: xh > 0

Post: self.xh = xh and age = age@pre

答:

前置条件中,①:age >= 16;②:age <= 40;Post: self.age = age and xh = xh@pre 后置条件中,①:self.age = age and xh = xh@pre;Pre:age >= 16 and age <= 40构造测试用例如下:

①(age >= 16 and age <= 40,self.age = age and xh = xh@pre)

②(not(age >= 16)and age <= 40,Exception)

③(age >= 16 and not(age <= 40),Exception)

④(not (age >= 16)and not(age <= 40),Exception)

前置条件中,①:xh > 0;Post: self.xh = xh and age = age@pre

后置条件中,①:self.xh = xh and age = age@pre;Pre:xh > 0

构造测试用例如下:

②(xh > 0,self.xh = xh and age = age@pre)

②(not(xh > 0),Exception)

实验2:考察人掷某物件的过程。假设掷出去的距离与人的高度、力量以及物件的重量有关,并且人的力量只有大于物件的重量,人才能拾起物件。

假定人用类People描述,包含如下属性:

(1)Height:身高,必须大于0.5米;

(2)Might:力量;

(3)ThingStatus:物件状态,有三种取值:None(无物件)、Pickedup(拾起

状态)、LiftedUp(举起状态);

(4)ThingWeight:物重,只有ThingStatus取值不是None时才有意义,并且

应大于0。

可以用以下几个方法描述人的行为:

(1)PickUp:拾起物件(需引用Might,执行可能改变ThingStatus、

ThingWeight);

(2)LiftUp:举起物件(执行可能改变ThingStatus)

(3)Throw:掷物件(需引用Might、Height、ThingWeight,执行可能改变

ThingStatus)。

People类的状态转换图如图1所示。请利用状态转换图法设计类测试用例,要求列出测试序列,并做必要解释说明。

Throw

图1 People类的状态转换图

答:

#s1: Initialize · Pick Up · Lift Up · Throw

#s2: Initialize · Pick Up · Lift Up · Throw ·Pick Up

实验3:一个面向对象系统包含一个client类(C1)和它的一个子类(C2)。这些client类又与一个server类S1交互,这个server类有一个子类S2。这个server 类包括一个方法foo(),它把M1的一个实例做为参数,M1有一个子类M2。

图2 client、server、message的交互关系图

请使用正交阵列测试法(OATS)测试client与server之间的类交互关系foo,要求列出详细测试步骤,并给出最终的测试用例。

答:

(1)有三个独立的变量(Factors: client,server,和消息类);

(2)每个变量可以取2个值(Levels);

(3)选择L4(23)正交表――变量为3因素,值为2水平。

(4)把值映射到正交表中

(5)把因素和值映射到表中,为剩下的水平数选取值

相关文档