2023年7月16日发(作者:)
软件测试与质量课程实验报告
实验2:
黑盒测试法实验
姓名
院系
学号
任课教师
实验地点
实验目的
•
实验指导教师
实验时间
系统地学习和理解照盒测试的基本概念、原理
•熟悉和掌握等价类划分法,边界值分析法和决策表方法
掌握测试用例编写要点
实验内容
•
1.
编写一个程序,循环从标准输入读入某雇员的工作时间(以小时计)和 每小时的工资数,计算并输出他的工资。若雇员月工作小时超过40小时,则 超过部分按原工资的1.5倍的加班工资來计算。若雇员月工作小时超过50小 时,则超过50的部分按原工资的3倍的加班工资來计算,而40到50小时的工 资仍按照原工资的1.5倍的加班工资来计算。
请结合等价类划分法和边界值分析法设计出相应的测试用例,并依照测
试用例对所编写的程序进行测试。
2.
给出某一天(年,月,日),计算出它的下一天,取值范围为:
年:1000v= year <=3000
月:l<=month<=12
如1999年3月4
口的下一天是:1999年3月5
口
要求:
输入:三个参数(年,月,日)
输出:如能正确计算,计算出它的下一天,
否则,输出相应的错误信息。
请利用决策表法设计出相应的测试用例,并依照测试用例对所编写的程序进行测
试。
实验结果
口:
l<=day<=31 1.等价类划分
输入条件
输入工作时间
有效等价类
⑴时间>=0且时间<40;
⑵时间>=40且时间<=50;
(3)时间A50且时间<=168
无效等价类
(4)
时间<0
(5)
时间a 168
(6)
输入的时间类型不是mt型
测试用例
测试用例编号
1
2
3
4
5
输入
30
45
55
-10
A
170
输出
300
570
1400
mput error
mput error
mput error
覆盖等价类
(1)
⑵
⑶
(4)
(6)
(5) 6
边界值分析
测试用例编号
1
2
3
4
5
6
7
8
9
输入
0
1
39
40
41
49
50
51
167
168
输出
0
20
780
800
830
1070
1100
1160
8120
8180 10
2.
(1)构造决策表
Ml={月份:30天/月}
M2={月份:31天/月,12月除夕卜}
M3={月份:12月}
M4={月份:2月}
D1={0
期:1<=
口
<=27}
D2={0
期:日=28}
D3={
口期:口
=29}
D4={
口期:口
=30} D5={日期:口=31}
Yl={年:闰年}
Y2={年:平年}
条件桩:
C1:月份在{Ml, M2, M3, M4}中之一
C2:
口期在{DI, D2, D3, D4, D5}中之一
C3:年在{Yl, Y2}中之一 动作桩:
A1:不可能
A2:日期增一
A3:日期复位(置一)
A4:月份增一
A5:月份复位(置一)
A6:年增一
决策表
1 2 3 4 5 6 7 8 9 10
C1:,
月
C2:
□
C3年
X
A1:不可能
A2日期增一
A3
口期复位
Ml
D1
Ml
D2
Ml
D3
Ml
D4
Ml
D5
M2
DI
M2
D2
M2
D3
M2
D4
M2
D5
V
V
J
J
J
J
V
J
V
J
(置一)
A4月份增一
A5月份复位
J
J
(置一)
A6年增一
11
C1:月
C2:
口
C3:年
12
M3
D2
13
M3
D3
14
M3
D4
15
M3
D5
16
M4
DI
17
M4
D2
Y1
18
M4
D2
Y2
19
M4
D3
Y1
20
M4
D3
Y2
21
M4
D4
22
M4
D5
M3
D1
A上不可能
A2日期增
V
V
J
V
J
V
J
V
V
A3
口期复
V
V
V
J
J
位(置A4月份增
A5月份复
V
V
位(置A6年增一
测试用例表
月份
用例ID
1-3
4
5
6-9
10
11-14
15
16
17
18
19
20
21,22
6
6
6
3
3
12
12
2
2
2
2
2
2
15/28/29
30
31
15/28/29/30
31
12/28/29/30
31
14
28
28
29
29
30/31
2013
2013
2013
2013
2013
2013
2013
2013
2004
2001
2005
2001
2001
2013
年
4
月
16/29/30
日
2013
年
7
月
1
口
口期 年 预期输出
输入错误,请重新输入
2013
年
3
月
16/29/30/31
日
2013
年
4
月
1
口
2013
年
12
月
13/29/30/31
日
2014
年
1
月
1
口
2013
年
2
月
15
口
2004
年
2
月
29
口
2001
年
3
月
1
口
2005
年
3
月
1
口
输入错误,请重新输入
输入错误,请重新输入
扣分
0
扣分原因(有扣分时填写)
缺席:扣10分
实验报告雷同:扣10分
总扣分不能大于10分
口期:
实验结果填写不完整:扣1-10分
其他情况:扣分<=5分 参考代码如下:
(1)程序参考答案:
存include
double maiii()
{
mt hours;
double payment,wage;
wage=20;
Mcout«please mput hours/1;
cin»liours;
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;
else if (hours>50)
pavment=40*wage+l 0* 1.5*wage+(hours-50)*3*wage;
Mcout«The final payment are:H«payment;
return payment;}
nelse cout«input errorH;
}
(2) #iiiclude
void main()
{
int veai;
J
z
int month,maxinonth= 12;
int y;
printfC1
请输入年份:(1000〜3000)”);
scanf^^d^&year);
if(vear<1000 || year>3000)
prmtf(n输入错误!请从新输入!
1T);
请输入年份:(1000-3000)M);
scanff^d^&yeai);
}
pnntf(”请输入月份:(1~12门;
scanf^'^d'^&month);
if(month
{
pnntf(”输入错误!请从新输入!
1T); pirntfC1
请输入月份:(1~12)”);
scanf(H%cl,&montli);
}
if(month==4||month==6| month==9||month=l 1) niaxdav=30;
else if(month=2) {
if(year%400==0 || yeai_%4=0) niaxdav=29;
else
niaxdav=28;
}
else
niaxdav=31;
printf(MiW输入口份:(1~31门;
scanf("% if(dav { pnntf(”输入错误!请从新输入! 1T); printf(”请输入日份:scanf(H%d,&day); } if(month==maxinontli && day=niaxdav) { yeai-year+1; month=l; day-]; } else if(day==maxday) { month=month+l; day-]; } else dav=day+l; piimf(”下一天是%<1 年%(1 E%d 口 "^); } (1-31)");
发布者:admin,转转请注明出处:http://www.yc00.com/news/1689457392a251417.html
评论列表(0条)