软件测试实验三 下载本文

内容发布更新时间 : 2024/4/20 10:06:38星期一 下面是文章的全部内容请认真阅读。

北 京 林 业 大 学

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所示。请利用状态转换图法设计类测试用例,要求列出测试序列,并做必要解释说明。

ThrowInitializeS1 PickUpS2LiftUpS3 图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)把值映射到正交表中

OA before mapping factors Run 1 Run 2 Run 3 Run 4 Factor 1 0 0 1 1 Factor 2 0 1 0 1 Factor 3 0 1 1 0 (5)把因素和值映射到表中,为剩下的水平数选取值

OA after mapping factors Test 1 Test 2 Test 3 Test 4

Client C1 C1 C2 C2 Server S1 S2 S1 S2 M M1 M2 M2 M1