软件测试实验报告文档格式.doc
《软件测试实验报告文档格式.doc》由会员分享,可在线阅读,更多相关《软件测试实验报告文档格式.doc(24页珍藏版)》请在冰点文库上搜索。
a<
=100)&
(b>
b<
=100))//判断取值范围
{
if((a+b>
c)&
(a+c>
b)&
(b+c>
a))//判断是否构成三角形
{
if(a==b&
b==c)
printf("
等边三角形\n"
elseif(a==b||a==c||b==c)
等腰三角形\n"
else
一般三角形\n"
}
else
printf("
不能组成三角形\n"
}
else
输入1到100的三个整数!
\n"
return0;
}
2.找零钱最佳组合问题程序。
#include"
stdio.h"
voidcalc(int);
//计算找钱
intR,P;
while
(1){
请输入商品的价格:
%d"
R);
if(0<
R&
R<
=100)
请输入支付的金额:
scanf("
P);
if(0<
P&
P<
R=P-R;
if(R<
0)
不够钱支付!
elseif(R==0)
不用找零钱!
printf("
calc(R);
支付金额大于0不大于100!
价格应大于0不大于100!
return0;
voidcalc(intR)
{
intN50,N10,N5,N1;
N50=N10=N5=N1=0;
找零钱:
¥%d\n"
R);
while(R-50>
=0){
N50+=1;
R-=50;
while(R-10>
N10+=1;
R-=10;
while(R-5>
N5+=1;
R-=5;
while(R-1>
N1+=1;
R-=1;
............\n"
¥50x%d\n"
N50);
printf("
¥10x%d\n"
N10);
¥5x%d\n"
N5);
¥1x%d\n"
N1);
Total:
%d\n"
N50+N10+N5+N1);
四、写出划分的等价类
1.三角形问题划分等价类
有效等价类
① a,b,c为整数。
② a,b,c的取值范围在[1,100]。
③ 任意两边的和大于第三边。
④ 三条边相等。
⑤ 任意两边相等。
⑥ 一般三角形。
无效等价类
⑦ a,b,c的取值范围不在[1,100]。
⑧ 任意两边的和小于第三边。
⑨ 不是整数(字母、字符、小数)
2.找零钱最佳组合问题划分等价类
① 0<
R≤100
② 0<
P≤100
③ 0≤N1≤4
④ 0≤N5≤1
⑤ 0≤N10≤4
⑥ 0≤N50≤1
⑦ R≤0
⑧ R>
100
⑨ P≤0
⑩ P>
五、根据等价类设计的测试用例
三角形问题等价类测试用例:
用例编号
输入的数据
预期输出
实际输出
覆盖的等价类
a
b
c
1
50
等边三角形
③④
2
等腰三角形
①②③⑤
3
4
5
一般三角形
①②⑥
101
输入1到100的三个整数
⑦
不能组成三角形
①②⑧
6
z
x
y
⑨
7
!
*
@
8
0.1
0.8
0.3
找零钱最佳组合问题等价类测试用例:
R
P
N1=1
①②③
10
N5=1
①②④
N10=4
①②⑤
N50=1
N5=1,N1=1
①②③④
32
N10=1,N5=1,N1=3
①②③④⑤
34
N50=1,N10=1,N5=1,N1=1
①②③④⑤⑥
价格应大于0不大于100
②⑦
9
不够钱支付
①②
不用找零钱
11
支付金额大于0不大于100
①⑨
12
②⑧
13
①⑩
六、根据边界值分析法设计测试用例
1.三角形问题边界值分析法测试用例:
根据输入值分析边界值:
① 边界值为0
② 边界值为1
③ 边界值为2
④ 边界值为99
⑤ 边界值为100
⑥ 边界值为101
覆盖的边界值
①
②
③
99
④
⑤
⑥
14
15
16
17
18
2.找零钱最佳组合问题边界值分析法测试用例:
根据输入值分析边界值:
a)R的边界值为0
b)R的边界值为1
c)R的边界值为-1
d)R的边界值为99
e)R的边界值为100
f)R的边界值为101
g)P的边界值为0
h)P的边界值为1
i)P的边界值为-1
j)P的边界值为99
k)P的边界值为100
l)P的边界值为101
根据输出值分析边界值:
① 找50元1张
② 找10元4张
③ 找10元3张
④ 找10元2张
⑤ 找10元1张
⑥ 找5元1张
⑦ 找1元4张
⑧ 找1元3张
⑨ 找1元2张
⑩ 找1元1张
f
-1
l
g
i
e
96
N1=4
k⑦
95
k⑥
91
N5=1,N1=4
k⑥⑦
90
N10=1
k⑤
51
N10=4,N5=1,N1=4
N10=4,N5=1,N1=1
k②⑥⑦
k①
b⑩
N1=2
b⑨
97
N1=3
k⑧
80
N10=2
k④
70
N10=3
k③
19
60
k②
20
h
21
d
黑盒测试实验二
1.NextDate函数的边界值分析测试用例
程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:
1≤month≤12、1≤day≤31、1900≤year≤2050。
),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上第二天的日期。
例如,输入为2005年11月30日,则该程序的输出为2005年12月1日。
请用等价类测试和边界测试法设计测试用例。
intmain(void){
intyear;
intmonth;
intday;
printf("
请输入年份:
scanf("
year);
while(!
(year>
=1900&
year<
=2050))//判断年是否有效
{
输入的年份不正确!
return;
}
printf("
请输入月份:
scanf("
month);
while(month>
12||month<
1)//判断月是否有效
{
月份输入有误,请重新输入!
return;
}
printf("
请输入日期号:
day);
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)//判断31天
{
while(day>
31||day<
1)//判断日否有效
{
printf("
日期输入有误,请重新输入!
return;
}
}
if(month==4||month==6||month==9||month==11)//判断30天
{
while(day>
30||day<
{
printf("
}
}
if((year%4==0&
year%100!
=0)||(year%400==0))//检查闰年;
{
if(month==2)
{
if(day>
29)
printf("
本月是闰月,请在1-29之间重新输入日期!
return;
}
else
{
if(day==29)
{
day=1;
}
elseday++;
}
}
}
else
{
if(month==2)
{
if(day>
28)
{
printf("
本月是闰月,请在1-28之间从新输入日期!
else
{
if(day==28)
day=1;
}
elseday++;
}
}
switch(month)//计算当前日期的下一天
case1:
case3:
case5:
case7:
case8:
case10:
if(day==31)
month++;
day=1;
明天是:
%d/%d/%d\n"
year,month,day);
break;
}
else{
day++;
printf("
break;
}
case2:
if(day==1)
month++;
printf("
break;
}
else{
printf("
break;
}
case4:
case6:
case9:
case11:
if(day==30)
month++;
day=1;
break;
}
}
case12:
if(day==31)
year++;
month=1;
day=1;
}
else{
day++;
printf("
}
}
}
输入条件
编号
输入年份
⑴
1900<
=year<
=2050
⑺
year<
1900
⑻
year>
2050
输入月份
⑵
1<
=month<
=12
⑼
month<
⑽
month>
输入日期
⑶
=day<
=31
⑾
day<
⑿
day>
31
输入类型
⑷
输入为int型
⒀
除int型外的任意输入
输入为闰年
⑸
输入2月29日
⒁
输入为闰年2月30日
输入为平年
⑹
输入2月28日
⒂
1988/2/3
1988/2/4
⑴⑵⑶⑷
2000/2/29
2000/3/1
2001/2/28
2001/3/1
100/1/23
2300/3/2
输入的年份不正确入!
1912/0/3
1927/90/3
1956/3/-21
1972/3/43
Dasd@#¥%asdasdasd&
……%ffgwgrwgrerhsxcvxfgdfg
程序进入死循环
2000/2/30
本月是闰月,请在1-29之间从新输入日期!
2001/2/29
六、边界值分析法测试用例:
a.month=0
b.month=1
c.month=2
d.month=11
e.month=12
f.month=13
g.day=0
h.day=1
i.day=2
j.day=30
k.day=31
l.day=32
m.year=1899
n.year=1900
o.year=1901
p.year=2049
q.year=2050
r.year=2051
month
day
year
1899
m
1900.6.16
n
1901
1901.6.16
o
2049
1975.6.16
p
2049.6.16
q
2051
r
1975
1975.6.2
1975.6.3
30
1975.7.1
j