讲课黑盒测试练习题答案.docx
- 文档编号:9344165
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:10
- 大小:189.42KB
讲课黑盒测试练习题答案.docx
《讲课黑盒测试练习题答案.docx》由会员分享,可在线阅读,更多相关《讲课黑盒测试练习题答案.docx(10页珍藏版)》请在冰豆网上搜索。
讲课黑盒测试练习题答案
讲课黑盒测试练习题答案
等价类划分方法:
1.设有一个档案管理系统,要求用户输入以年月表示的日期。
假设日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。
现用等价类划分法设计测试用例,来测试程序的"日期检查功能"。
1)划分等价类并编号,下表等价类划分的结果
输入等价类
有效等价类
无效等价类
日期的类型及长度
①6位数字字符
②有非数字字符
③少于6位数字字符
④多于6位数字字符
年份范围
⑤在1990~2049之间
⑥小于1990
⑦大于2049
月份范围
⑧在01~12之间
⑨等于00
⑩大于12
2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为①、⑤、⑧,设计的测试用例如下:
测试数据 期望结果 覆盖的有效等价类
200211 输入有效 ①、⑤、⑧
3)为每一个无效等价类设计一个测试用例,设计结果如下:
测试数据 期望结果 覆盖的无效等价类
year的取值范围为1912≤year≤2050。
(6n+1)
因果图方法
1.有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。
其规格说明如下:
若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。
若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。
1) 分析这一段说明,列出原因和结果
原因:
1.售货机有零钱找
2.投入1元硬币
3.投入5角硬币
4.押下橙汁按钮
5.押下啤酒按钮
结果:
21.售货机〖零钱找完〗灯亮
22.退还1元硬币
23.退还5角硬币
24.送出橙汁饮料
25.送出啤酒饮料
2)画出因果图,如图所示。
所有原因结点列在左边,所有结果结点列在右边。
建立中间结点,表示处理的中间状态。
中间结点:
11.投入1元硬币且押下饮料按钮
12.押下〖橙汁〗或〖啤酒〗的按钮
13.应当找5角零钱并且售货机有零钱找
14.钱已付清
3)转换成判定表:
4) 在判定表中,阴影部分表示因违反约束条件的不可能出现的情况,删去。
第16列与第32列因什么动作也没做,也删去。
最后可根据剩下的16列作为确定测试用例的依据。
判定表分析方法
1.用决策表测试法测试以下程序:
该程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:
1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。
习题:
给出某一天(年,月,日),计算出它的下一天,取值范围为:
年:
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)
输入错误!
请从新输入!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 讲课 黑盒 测试 练习题 答案