黑盒测试用例练习题.docx
《黑盒测试用例练习题.docx》由会员分享,可在线阅读,更多相关《黑盒测试用例练习题.docx(13页珍藏版)》请在冰豆网上搜索。
![黑盒测试用例练习题.docx](https://file1.bdocx.com/fileroot1/2022-11/26/88b5da0b-35fe-4ce9-9431-338fe746d1f2/88b5da0b-35fe-4ce9-9431-338fe746d1f21.gif)
黑盒测试用例练习题
黑盒测试用例练习题
黑盒测试用例设计练习题
1、准考证号码
对招干考试系统“输入学生成绩”子模块设计测试用例。
招干考试分三个专业,准考证号第一位为专业代号,如:
1-行政专业,
2-法律专业,
3-财经专业。
行政专业准考证号码为:
110001~111215
法律专业准考证号码为:
210001~212006
财经专业准考证号码为:
310001~314015
请划分准考证号码的等价类。
输入条件
有效等价类
编号
无效等价类
编号
行政专业准考证号码
110001~111215数字串
(1)
负无穷~110000
(4)
法律专业准考证号码
210001~212006数字串
(2)
111216~310000
(5)
财经专业准考证号码
310001~314015数字串
(3)
314016~正无穷
(6)
序号
输入参数
覆盖等价类
输出参数
1
110002
(1)
输入正确
2
210012
(2)
输入正确
3
310022
(3)
输入正确
4
10000
(4)
输入错误
5
200000
(5)
输入错误
6
340000
(6)
输入错误
2、电话号码
城市的电话号码由两部分组成。
这两部分的名称和内容分别是:
1)地区码:
以0开头的三位或者四位数字(包括0);
2)电话号码:
以非0、非1开头的七位或者八位数字。
假定被调试的程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的号码,请使用等价分类法来设计它的测试用例。
输入条件
有效等价类
编号
无效等价类
编号
地区码
0开头
(1)
非0开头
(7)
三位数字串
(2)
<三位数字串
(8)
四位数字串
(3)
>四位数字串
(9)
电话号码
非0and非1开头
(4)
以0开头
(10)
以1开头
(11)
七位数字串
(5)
<七位数字串
(12)
八位数字串
(6)
>八位数字串
(13)
序号
输入参数
覆盖等价类
输出参数
1
012-8725656
(1)
(2)(4)(5)
输入正确
2
0123-8546523
(1)(3)(4)(5)
输入正确
3
012-84864878
(1)
(2)(4)(6)
输入正确
4
110-6845316
(7)
输入错误
5
01-5645642
(8)
输入错误
6
01111-4552135
(9)
输入错误
7
012-0464534
(1)
(2)(10)
输入错误
8
012-1455544
(1)
(2)(11)
输入错误
9
012-15454
(1)
(2)(12)
输入错误
10
0123-454514542
(1)(3)(13)
输入错误
3、保险公司计算保费费率的程序
某保险公司的人寿保险的保费计算方式为:
投保额×保险费率
其中,保险费率依点数不同而有别,10点及10点以上保险费率为0.6%,10点以下保险费率为0.1%;而点数又是由投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如表1所示。
表1保险公司计算保费费率的规则
年龄
性别
婚姻
抚养人数
20~39
40~59
其它
M
F
已婚
未婚
1人扣0.5点
最多扣3点
(四舍五入取整)
6点
4点
2点
5点
3点
3点
5点
分析程序规格说明中给出和隐含的对输入条件的要求,列出等价类表(包括有效等价类和无效等价类)。
1)年龄:
一位或两位非零整数,值的有效范围为1~99。
2)性别:
一位英文字符,只能取值‘M’或‘F’。
3)婚姻:
字符,只能取值‘已婚’或‘未婚’。
4)抚养人数:
空白或一位非零整数(1~9)
5)点数:
一位或两位非零整数,值的范围为1~99
根据表1中的等价类表,设计能覆盖所有等价类的测试用例。
输入条件
有效等价类
编号
无效等价类
编号
年龄
1~99整数
(1)
非1~99整数
(9)
性别
‘M’
(2)
非‘M’and非‘F’
(10)
‘F’
(3)
婚姻
‘已婚’
(4)
非‘已婚’and
非‘未婚’
(11)
‘未婚’
(5)
抚养人数
null
(6)
非nulland
非1~9整数
(12)
1~9整数
(7)
点数
1~99整数
(8)
非1~99整数
(13)
序号
输入参数
覆盖等价类
输出参数
1
(50,‘M’,‘已婚’,null)
(1)
(2)(4)(6)(8)
保险率为0.6%
2
(18,‘F’,‘未婚’,null)
(1)(3)(5)(6)(8)
保险率为0.6%
3
(45,‘F’,‘已婚’,8)
(1)(3)(4)(7)(8)
保险率为0.1%
4
(101,‘M’,‘已婚’,null)
(9)
输入错误
5
(65,‘H’,‘未婚’,5)
(1)(10)
输入错误
6
(78,‘F’,‘假婚’,null)
(1)(3)(11)
输入错误
7
(88,‘M’,‘已婚’,11)
(1)
(2)(4)(12)
输入错误
4、输入:
用户密码
要求:
1)用户密码为6到8位。
2)必须含有字母和数的组合。
输出:
如正确,输出正确的信息。
否则,输出相应的错误信息。
请结合等价类划分法和边界值分析法设计出相应的测试用例。
输入条件
有效等价类
编号
无效等价类
编号
用户密码
6<=位数<=8
(1)
位数<6
(3)
位数>8
(4)
包含字母和数字
(2)
不包含数字
(5)
不包含字母
(6)
序号
输入参数
覆盖等价类
输出信息
1
1234abcd
(1)
(2)
输入正确
2
1234a
(3)
输入错误
3
123456789df
(4)
输入错误
4
abcdedf
(1)(5)
输入错误
5
1234567
(1)(6)
输入错误
5、给出某一天(年,月,日),计算出它的下一天,取值范围为:
年:
1000<=year<=3000月:
1<=month<=12日:
1<=day<=31
如1999年3月4日的下一天是:
1999年3月5日
要求:
输入:
三个参数(年,月,日)
输出:
如能正确计算,计算出它的下一天,
否则,输出相应的错误信息。
1)使用C语言编写程序实现
2)请结合等价类划分法和边界值分析法设计出相应的测试用例,并依照测试用例对所编写的程序进行测试。
(1)代码如下:
#include
voidmain()
{
intyear;
intmonth,maxmonth=12;
intday,maxday;
printf("请输入年份:
(1000~3000)");
scanf("%d",&year);
if(year<1000||year>3000)
{
printf("输入错误!
请从新输入!
\n");
printf("请输入年份:
(1000~3000)");
scanf("%d",&year);
}
printf("请输入月份:
(1~12)");
scanf("%d",&month);
if(month<1||month>12)
{
printf("输入错误!
请从新输入!
\n");
printf("请输入月份:
(1~12)");
scanf("%d",&month);
}
if(month==4||month==6||month==9||month==11)
maxday=30;
elseif(month==2)
{
if(year%400==0||year%4==0)
maxday=28;
else
maxday=29;
}
else
maxday=31;
printf("请输入日份:
(1~31)");
scanf("%d",&day);
if(day<1||day>maxday)
{
printf("输入错误!
请从新输入!
\n");
printf("请输入日份:
(1~31)");
scanf("%d",&day);
}
if(month==maxmonth&&day==maxday)
{
year=year+1;
month=1;
day=1;
}
elseif(day==maxday)
{
month=month+1;
day=1;
}
else
day=day+1;
printf("下一天是%d年%d月%d日",year,month,day);
}
(2)
输入条件
有效等价类
编号
无效等价类
编号
年
1000<=year<=3000
(1)
<1000
(4)
>3000
(5)
月
1<=month<=12
(2)
<1
(6)
>12
(7)
日
1<=day<=31
(3)
<1
(8)
>31
(9)
边界测试用例
序号
输入参数
输出结果
1
20000228
2000年3月1日
2
9990105
输入错误!
请从新输入!
3
30010312
输入错误!
请从新输入!
4
20120012
输入错误!
请从新输入!
5
20111323
输入错误!
请从新输入!
6
20180300
输入错误!
请从新输入!
7
20560432
输入错误!
请从新输入!
等价类测试用例
序号
输入参数
覆盖等价类
输出结果
1
20020105
(1)
(2)(3)
2002年1月6日
2
9910502
(4)
输入错误!
请从新输入!
3
30120515
(5)
输入错误!
请从新输入!
4
20120015
(1)(6)
输入错误!
请从新输入!
5
20141325
(1)(7)
输入错误!
请从新输入!
6
20070400
(1)
(2)(8)
输入错误!
请从新输入!
7
20010632
(1)
(2)(9)
输入错误!
请从新输入!
6、假设中国某航空公司规定:
中国去欧美的航线所有座位都有食物供应。
每个座位都可以播放电影。
中国去非欧美的国外航线都有食物供应,只有商务仓可以播放电影。
中国国内的航班的商务仓有食物供应,但是不可以播放电影 。
中国国内的航班的经济仓除非飞行时间大于2小时就有食物供应,但是不可以播放电影。
使用决策表法设计测试用例。
1
2
3
4
5
6
航
线
中国去欧美?
Y
N
N
N
N
N
中国去非欧美的国外?
N
Y
Y
N
N
N
中国国内的航班
N
N
N
Y
Y
Y
商务仓
--
Y
N
Y
--
N
飞行时间>2小时
--
--
--
--
Y
--
服
务
食物供应
√
√
√
√
√
--
播放电影
√
√
--
--
--
--
测试用例
美国
亚洲,商务仓
亚洲
中国,商
务
仓
中国,飞
行
时
间
>2
中国
7、有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。
其规格说明如下:
若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。
若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。
要求:
1)列出原因和结果,画出因果图
2)根据因果图,建立判定表
3)根据判定表设计测试用例数据
(1)
原因:
1----投5角硬币
2----投1元硬币
3----按【啤酒】按钮
4----按【橙汁】按钮
5----售货机有零钱(灯亮)
6----售货机没有零钱(灯暗)
结果
21----出饮料
22----出饮料,找零钱
23----不出饮料,退钱
因果图如下:
11,12为中间节点
EV
V
∧
∧
∧
(2)(3)
1
2
3
4
5
6
条
件
1
Y
Y
N
N
N
N
2
N
N
Y
Y
Y
Y
3
Y
N
Y
Y
N
N
4
N
Y
N
N
Y
Y
5
--
--
Y
N
Y
N
6
--
--
N
Y
N
Y
11
Y
Y
Y
Y
Y
Y
12
Y
Y
Y
Y
Y
Y
动
作
21
√
√
√
--
√
--
22
--
--
√
--
√
--
23
--
--
--
√
--
√
测试用例
投5角硬币按啤酒按钮
投5角硬币按橙汁按钮
投1元硬币选择啤酒按钮售货机有零钱
投1元硬币选择啤酒按钮售货机没有零钱
投1元硬币选择橙汁按钮售货机有零钱
投1元硬币选择橙汁按钮售货机没有零钱