黑盒测试软件测试实验报告2

  • 格式:doc
  • 大小:99.50 KB
  • 文档页数:7

下载文档原格式

  / 7
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件测试与质量课程实验报告
实验2:黑盒测试法实验
姓名
院系
学号
任课教师
实验指导教师
实验地点
实验时间
实验目的
系统地学习和理解黑盒测试的基本概念、原理
熟悉和掌握等价类划分法,边界值分析法和决策表方法
掌握测试用例编写要点
实验内容
1.编写一个程序,循环从标准输入读入某雇员的工作时间(以小时计)和每小时的工资数,计算并输出他的工资。若雇员月工作小时超过40小时,则超过部分按原工资的1.5倍的加班工资来计算。若雇员月工作小时超过50小时,则超过50的部分按原工资的3倍的加班工资来计算,而40到50小时的工资仍按照原工资的1.5倍的加班工资来计算。
输入错误,请重新输入
扣分原因(有扣分时填写)
扣分
0
日期:
缺席:扣10分实验报告雷同:扣10分实验结果填写不完整:扣1–10分
其他情况:扣分<=5分总扣分不能大于10分
参考代码如下:
(1)程序参考答案:
#include <iostream.h>
double main()
{
int hours;
double payment,wage;
wage=20;
cout<<"please input hours:";
cin>>hours;
if(hours>=0&&hours<=168){
if (hours<40)
payment=hours*wage ;
else if ((hours>=40) && (hours<=50))
payment=40*wage+(hours-40)*1.5*wage;
printf("请输入日份:(1~31)");
scanf("%d",&day);
if(day<1 || day>maxday)
{
printf("输入错误!请从新输入!\n");
printf("请输入日份:(1~31)");
scanf("%d",&day);
}
if(month==maxmonth && day==maxday)
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日期增一






A3日期复位(置一)



A4月份增一


A5月份复位(置一)

A6年增一

测试用例表
用例ID
月份
printf("请输入年份:(1000~3000)");
scanf("%d",&year);
}
printf("请输入月份:(1~12)");
scanf("%d",&month);
if(month<1 || month>12)
{
printf("输入错误!请从新输入!\n");
printf("请输入月份:(1~12)");
1
20
3
39
780
4
40
800
5
41
830
6
49
1070
7
50
1100
8
51
1160
9
167
8120
10
168
8180
2.
(1)构造决策表
M1={月份:30天/月}
M2={月份:31天/月,12月除外}
M3={月份:12月}
M4={月份:2月}
D1={日期:1<=日<=27}
D2={日期:日=28}
日期

预期输出
1--3
6
15/28/29
2013
2013年4月16/29/30日
4
6
30
2013
2013年7月1日
5
6
31
2013
输入错误,请重新输入
6--9
3
15/28/29/30
2013
2013年3月16/29/30/31日
10
3
31
2013
2013年4月1日
11-14
12
12/28/29/30
void main()
{
int year;
int month,maxmonth=12;
int day,maxday;
printf("请输入年份:(1000~3000)");
scanf("%d",&year);
if(year<1000 || year>3000)
{
printf("输入错误!请从新输入!\n");
else if (hours>50)
payment=40*wage+10*1.5*wage+(hours-50)*3*wage;
cout<<"The final payment are:"<<payment;
return payment;}
else cout<<"input error";
}
(2)#include<stdio.h>
A5:月份复位(置一)
A6:年增一
决策表
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日期增一







A3日期复位(置一)


A4月份增一


A5月份复位(置一)
A6年增一
11
12
13
14
15
16
scanf("%d",&month);
}
if(month==4||month==6||month==9||month==11)
maxday=30;
else if(month==2)
{
if(year%400==0 || year%4==0)
maxday=29;
else
maxday=28;
}
else
maxday=31;
(4)时间<0
(5)时间>168
(6)输入的时间类型不是int型
测试用例
测试用例编号
输入
输出
覆盖等价类
1
30
300
(1)
2
45
570
(2)
3
55
1400
(3)
4
-10
input error
(4)
5
A
input error
(6)
6
170
input error
(5)
边界值分析
测试用例编号
输入
输出
1
0
0
2
要求:
输入:三个参数(年,月,日)
输出:如能正确计算,计算出它的下一天,
否则,输出相应的错误信息。
请利用决策表法设计出相应的测试用例,并依照测试用例对所编写的程序进行测试。
实验结果
1.等价类划分
输入条件
有效等价类
无效等价类
输入工作时间
(1)时间>=0且时间<40;
(2)时间>=40且时间<=50;
(3)时间>50且时间<=168
2013
2013年12月13/29/30/31日
15
12
31
2013
2014年1月1日
16
2
14
2013
2013年2月15日
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
请结合等价类划分法和边界值分析法设计出相应的测试用例,并依照测试用例对所编写的程序进行测试。
2.给出某一天(年,月,日),计算出它的下一天,取值范围为:
年:1000<= year <=3000月:1<=month <=12日:1<= day <=31
如1999年3月4日的下一天是:1999年3月5日
D3={日期:日=29}
D4={日期:日=30}
D5={日期:日=31}
Y1={年:闰年}
Y2={年:平年}
条件桩:
C1:月份在{M1,M2,M3,M4}中之一
C2:日期在{D1,D2,D3,D4,D5}中之一
C3:年在{Y1,Y2}中之一
动作桩:
A1:不可能
A2:日期增一
A3:日期复位(置一)
A4:月份增一
{
year=year+1;
month=1;
day=1;
}
else if(day==maxday)
{
month=month+1;
day=1;
}
else
day=day+1;
printf("下一天是%d年%d月%d日",year,month,day);
}