实验3黑盒测试决策表测试方法.docx
《实验3黑盒测试决策表测试方法.docx》由会员分享,可在线阅读,更多相关《实验3黑盒测试决策表测试方法.docx(24页珍藏版)》请在冰豆网上搜索。
实验3黑盒测试决策表测试方法
2015—2016学年第2学期
软件测试技术课程
实验报告
学院:
计算机科学技术
专业:
软件工程
班级:
软件二班
姓名:
吴德宁
学号:
041340217
任课教师:
刘玉宝
实验日期:
2016年5月17日
实验题目
实验3、黑盒测试:
决策表测试方法
实验目的
1、掌握决策表的概念
2、掌握决策表测试用例设计法。
实
验
内
容
1、对NextDate问题运用决策表法设计测试用例,并执行测试,撰写实验报告。
NextDate(intmonth,intday,intyear)函数规定:
输入三个整数:
month、day和year,函数的输出为输入日期后一天的日期。
例如,输入为2006年3月7日,则函数的输出为2006年3月8日,year满足1920≤year≤2050。
实验步骤:
1)构造决策表
●M1={月份:
30天/月},
M2={月份:
31天/月,12月除外},
M3={月份:
12月},M4={月份:
2月}
●D1={日期:
1<=日<=27},
D2={日期:
日=28},
D3={日期:
日=29},
D4={日期:
日=30},
D5={日期:
日=31}
●Y1={年:
闰年},Y2={年:
平年}
注:
二月:
平年28天,闰年29天
条件桩:
●C1:
月份在{M1,M2,M3,M4}中之一
●C2:
日期在{D1,D2,D3,D4,D5}中之一
●C3:
年在{Y1,Y2}中之一
动作桩:
●A1:
不可能
●A2:
日期增1
●A3:
日期复位(置1)
●A4:
月份增1
●A5:
月份复位(置1)
●A6:
年增1
1
2
3
4
5
6
7
8
9
10
C1:
月
M1
M1
M1
M1
M1
M2
M2
M2
M2
M2
C2:
日
D1
D2
D3
D4
D5
D1
D2
D3
D4
D5
C3:
年
A1:
不可能
√
A2:
日期+1
√
√
√
√
√
√
√
A3:
日期复位
(置1)
√
√
A4:
月份+1
√
√
A5:
月份复位
(置1)
A6:
年+1
11
12
13
14
15
16
17
18
19
20
21
22
C1:
月
M3
M3
M3
M3
M3
M4
M4
M4
M4
M4
M4
M4
C2:
日
D1
D2
D3
D4
D5
D1
D2
D2
D3
D3
D4
D5
C3:
年
Y1
Y2
Y1
Y2
A1:
不可能
√
√
√
A2:
日期+1
√
√
√
√
√
√
A3:
日期复位
(置1)
√
√
√
A4:
月份+1
√
√
A5:
月份复位
(置1)
√
A6:
年+1
√
2)根据决策表设计测试用例,得到测试用例表(测试用例表格式同实验1)。
用例编号
月
日
年
预期输出
1--3
4
12/28/29
2001
2001年4月13/29/30日
4
4
30
2001
2001年5月1日
5
4
31
2001
不可能
6--9
1
15/28/29/30
2001
2001年1月16/29/30/31日
10
1
31
2001
2001年2月1日
11-14
12
15/28/29/30
2001
2001年12月16/29/30/31日
15
12
31
2001
2002年1月1日
16
2
15
2001
2001年2月16日
17
2
28
2004
2004年2月29日
18
2
28
2001
2001年3月1日
19
2
29
2005
2005年3月1日
20
2
29
2001
不可能
21,22
2
30/31
2001
不可能
3)执行测试,填写软件缺陷报告(软件缺陷报告格式同实验1)。
缺陷编号
001
用例编号
1—3
缺陷类型
严重级别
严重
优先级
优先
缺陷状态
New
测试阶段
□单元□集成□系统□√验收□其它()
可重现性
□是□否
BUG原因
□需求分析□基本设计□详细设计□设计式样理解□√编程□数据库设计
□环境配置□其它()
缺陷描述
输入非数字字符,运行出现死循环
预期结果
报告输入格式错误
重现步骤
备注
按照步骤打开程序,输入非字符,运行
以下部分由BUG修改人填写
缺陷修改描述
测试人
修正人
确认人
修正日期
年月日
缺陷编号
001
用例编号
缺陷类型
缺陷编号
002
用例编号
9
缺陷类型
严重级别
一般
优先级
优先
缺陷状态
New
测试阶段
□单元□集成□系统□√验收□其它()
可重现性
□是□否
BUG原因
□需求分析□基本设计□详细设计□设计式样理解□√编程□数据库设计
□环境配置□其它()
缺陷描述
输入2012.1.30,出现两次2012.2.1
预期结果
出现一次2012.2.1
重现步骤
备注
按照步骤打开程序,输入2012.1.30,出现两次2012.2.1
以下部分由BUG修改人填写
缺陷修改描述
测试人
修正人
确认人
修正日期
年月日
缺陷编号
003
用例编号
12
缺陷类型
严重级别
严重
优先级
优先
缺陷状态
New
测试阶段
□单元□集成□系统□√验收□其它()
可重现性
□是□否
BUG原因
□需求分析□基本设计□详细设计□设计式样理解□√编程□数据库设计
□环境配置□其它()
缺陷描述
输入2012.12.31出现2011.12.33
预期结果
应该出现2013.1.2
重现步骤
备注
按照步骤打开程序,输入2012.12.31出现2011.12.33
以下部分由BUG修改人填写
缺陷修改描述
测试人
修正人
确认人
修正日期
年月日
测试代码(C语言实现)
#include
usingnamespacestd;
voidNextDate(intyear,intmonth,intday);
voidmain()
{
intyear=0,month=0,day=0;
NextDate(year,month,day);
}
voidNextDate(intyear,intmonth,intday)
{
cout<<"请输入年份:
"<cin>>year;
while(!
(year>=1811&&year<=2013))
{
cout<<"年份超过界限,请重新输入"<cin>>year;
}
cout<<"请输入月份:
"<cin>>month;
while(month>12||month<1)
{
cout<<"月份输入有误,请重新输入"<cin>>month;
}
cout<<"请输入日期:
"<cin>>day;
while(day>31||day<1)
{
cout<<"日期输入有误,请重新输入"<cin>>day;
}
if((year%4==0&&year%100!
=0)||(year%400==0))//检查闰年;
{
inti=0;
i=day-29;
while(month==2&&i>0)
{
cout<<"本月是闰月,请在1-29之间从新输入日期"<cin>>day;
}
if(month==2&&day==28)
{
month=3;
day=1;
}
elseif(month==2&&day==29)
{
month=3;
day=2;
}
elseday=day+2;
}
elseday=day+2;
//月底计算;
switch(month)
{
case1:
case3:
case5:
case7:
case8:
case10:
if(day==32)
{
month++;
day=1;
cout<<"明天是:
"<}
elseif(day==33)
{
month++;
day=2;
cout<<"明天是:
"<}
break;
case2:
if(day==29)
{
month=3;
day=1;
cout<<"明天是:
"<}
elseif(day==30)
{
month=3;
day=2;
cout<<"明天是:
"<}
break;
case4:
case6:
case9:
case11:
if(day==31)
{
month++;
day=1;
cout<<"明天是:
"<}
elseif(day==32)
{
month++;
day=2;
cout<<"明天是:
"<}
break;
case12:
if(day==32)
{
year++;
month=1;
day=1;
cout<<"明天是:
"<}
break;
}
cout<<"明天是:
"<}
2、航空服务查询问题:
根据航线,仓位,飞行时间查询航空服务。
假设一个中国的航空公司规定:
●中国去欧美的航线所有座位都有食物供应,每个座位都可以播放电影。
●中国去非欧美的国外航线都有食物供应,只有商务仓可以播放电影。
●中国国内的航班的商务仓有食物供应,但是不可以播放电影
●中国国内的航班的经济仓除非飞行时间大于2小时就有食物供应,但是不可以播放电影。
请用程序实现上述功能,并用决策表法设计测试用例,再执行测试,撰写实验报告。
实验步骤:
1)构造决策表
1.列出条件桩和动作桩
条件桩:
C1:
航线为国外欧美航线
C2:
航线为国外非欧美航线
C3:
航线为国内航线
C4:
仓位为商务仓
C5:
仓位为经济仓
C6:
飞行时间小于2h
C7:
飞行时间大于等于2h
动作桩:
A1:
播放电影
A2:
食物供应
2.规则数计算
2^7=128(太大)
3.修改条件桩使有限条目决策表成为拓展条目决策表
等价类
M1={航线为国外欧美航线}
M2={航线为国外非欧美航线}
M3={航线为国内航线
}
D1={仓位为商务仓}
D2={仓位为经济仓}
Y1={飞行时间小于2h}
Y2={飞行时间大于等于2h}
条件桩:
C1:
航线在{M1,M2,M3}中之一
C2:
仓位在{D1,D2}中之一
C3:
飞行时间在{Y1,Y2}中之一
动作桩:
A1:
播放电影
A2:
食物供应
计算规则数:
3×2×2=12
4.填入条件项和动作项
化简后的决策表:
2)根据决策表设计测试用例,得到测试用例表。
测试用例表
用例编号
C1:
仓位
C2:
仓位
C3:
飞行时间
A1:
播放电影
A2:
食物供应
1
M1
D1
Y1
✔
✔
2
M2
D1
Y1
✔
✔
3
M2
D2
Y1
✔
4
M3
D1
Y1
✔
5
M3
D2
Y1
6
M3
D2
Y2
✔
3)执行测试,填写软件缺陷报告。
测试模块:
航空服务查询
开发者:
BillDavid
测试员:
ThomasEdision
测试日期:
2016年5月21日
软件缺陷列表
缺陷ID
缺陷详细信息
Mistake1
C1舱位:
M1,C2舱位:
D1,飞行时间Y1,航空服务输入字符为数字报错,该错误为不可以输入数字。
Mistake2
C1舱位:
M2,C2舱位:
D1,飞行时间Y1,C1和C2舱位可以多选,错误为未设定单选。
Mistake3
C1舱位:
M2,C2舱位:
D2,飞行时间Y1,飞行时间不能单选中,错误为功能设计错误。
Mistake4
C1舱位:
M3,C2舱位:
D1,飞行时间Y1,点击查询按钮提示数据库连接错误。
Mistake5
C1舱位:
M3,C2舱位:
D2,飞行时间Y1,退出按钮异常,不能关闭当前窗口。
Mistake6
C1舱位:
M3,C2舱位:
D2,飞行时间Y2,当在鼠标依靠航空服务栏时,系统提示响应事件无效。
3、对三角问题运用决策表法设计测试用例,并执行测试,撰写实验报告。
三角形问题:
输入三个整数a、b、c分别作为三边的边长构成三角形。
通过程序判定所构成的三角形的类型(等边三角形、等腰三角形、一般三角形、构不成三角形),并在屏幕上输出。
1<=a,b,c<=200。
1)构造决策表
条件桩:
C1:
a,b,c构成三角形?
C2:
a=b?
C3:
a=c?
C4:
b=c?
行动桩:
A1:
非三角形
A2:
一般三角形
A3:
等腰三角形
A4:
等边三角形
A5:
不可能
化简决策表:
简化后的决策表:
2)根据决策表设计测试用例,得到测试用例表。
用例
a
b
c
预期输出
1
1
2
4
非三角形
2
3
4
5
一般三角形
3
3
4
4
等腰三角形
4
4
3
4
等腰三角形
5
?
?
?
?
6
4
4
3
等腰三角形
7
?
?
?
?
8
?
?
?
?
9
3
3
3
等边三角形
去掉不存在的情况:
用例
a
b
c
预期输出
1
1
2
4
非三角形
2
3
4
5
一般三角形
3
3
4
4
等腰三角形
4
4
3
4
等腰三角形
5
4
4
3
等腰三角形
6
3
3
3
等边三角形
3)执行测试,填写软件缺陷报告。
测试模块:
三角形计算模块
开发者:
IT工作室
测试员:
吴德宁
测试日期:
2016年5月17日
软件缺陷列表
缺陷ID
缺陷详细信息
Mistake1
a=120,b=120,c=-1时,预期为超出范围,但输出为等边三角形
Mistake2
a=120,b=120,c=0时,预期为超出范围,但输出为等边三角形
Mistake3
a=100,b=100,c=201时,预期为超出范围,但输出为等边三角形
Mistake4
a=100,b=100,c=200时,预期为不满足构成三角形条件,但输出为等边三角形
Mistake5
a=120,b=0,c=120时,预期为超出范围,但输出为等边三角形
Mistake6
a=100,b=201,c=100时,预期为超出范围,但输出为等边三角形
Mistake7
a=100,b=200,c=100时,预期为不满足构成三角形条件,但输出为等边三角形
Mistake8
a=0,b=120,c=120时,预期为超出范围,但输出为等边三角形
Mistake9
a=201,b=100,c=100时,预期为超出范围,但输出为等边三角形
Mistake10
a=200,b=100,c=100时,预期为不构成三角形条件,但输出为等边三角形
实
验
总
结
成绩