软件测试决策表.docx
- 文档编号:29130560
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:14
- 大小:24.94KB
软件测试决策表.docx
《软件测试决策表.docx》由会员分享,可在线阅读,更多相关《软件测试决策表.docx(14页珍藏版)》请在冰豆网上搜索。
软件测试决策表
软件测试
实验报告
题目:
决策表法得使用
学号:
姓名:
教师:
东南大学成贤学院电子与计算机工程学院
2017年9月30日
方案30%
设计30%
文字表述20%
分析与总结20%
总分
实验题目
1、实验内容
NextDate函数包含三个变量:
month(月份)、day(口期)与veai(年),函数得输出为输入口期前一天得日期。
例如,输入为2007年9月9日,则函数得输出为2007年9月10日。
要求输入变量month、day与year均为整数值,并且满足下列条件:
(1)lWmonthW12
(2)lWdayW31
(3)1912 J 2、实验目得与要求 分别输入测试用例,判断期塑输出与实际输出就是否相等 3.实验环戋 操作系统WIN10测试工具VS2010测试语言C++语言 4、设计思路分析(包括需求分析、整体设计思路、概要设计) 需求分析: 此函数得主要特点就是输入变量之间得逻辑关系比较复杂。 复杂性得来源有两个: 一个就是输入域得复杂性,另一个就是指闰年得规则。 例如变量year与变量month取不同得值,对应得变量day会有不同得取值范围,day值得范围可能就是1〜30或1〜31,也可能就是1〜28或1〜29。 整体设计思路: NextDate函数中包含了定义域各个变量之间得依赖问题。 等价类划分法与边界值分析法只能“独立地”选取各个输入值,不能体现出多个变屋得依赖关系。 决策表法则就是根据变屋间得逻辑依赖关系设计测试输入数据,排除不可能得数据组合,很好地解决了定义域得依赖问题。 5、详细设计 NextDate函数求解给定某个口期得卞一个口期得可能操作(动作桩)如下: 变量day加1操作: 变量day复位操作: 变量month加1操作: 变量month复位操作: 变量year加1操作。 根据上述动作桩发现NextDate函数得求解关键就是口与月得问题,通常可以在下面等价类 (条件桩)得基础上建立决策表: Ml={month: montli有30天} M2={montli: montli有31天,12月除外} M3={month: month就是12月} M4={month: montli就是2月} Dl={dav: lWdayW27} D2={dav: day=28} D3={dav: day=29} D4={dav: day=30} D5={dav: day=31} Y1={year: year就是闰年} Y2={vear: year不就是闰年} 决策表共有22条规则: 第1~5条规则解决有30天得月份; 第6~10条规则解决有31天得月份(除12月份以外); 第11-15条规则解决12月份; 第16〜22条规则解决2月份与闰年得问题。 不可能规则也在决策表中列出,比如第5条规则中在有30天得月份中也考虑了31口。 规则选项 1 2 3 4 5 6 7 8 9 10 11 条件: C1: month 在 Ml Ml Ml Ml Ml M2 M2 M2 M2 M2 M3 C2: day在 D1 D2 D3 D4 D5 DI D2 D3 D4 D5 DI C3: year在 动作: A1: 不可 能 J 7 A2: day 加1 1 V 7 J 7 寸 7 J 7 7 7 A3: day复位 寸 J A4: month 加1 寸 J 7 A5: month 复位 规则 选项 12 13 14 15 16 17 18 19 20 21 22 条件: C1: month 在 M3 M3 M3 M3 M4 M4 M4 M4 M4 M4 M4 C2: day在 D2 D3 D4 D5 D1 D2 D2 D3 D3 D4 D5 C3: year在 — — — — — Y1 Y2 Y1 Y2 — — 动作: A1: 不可能 1 V 寸 1y A2: day加 1 7 1 V 寸 1 V 1 7 A3: day复位 7 1 V A4: month 加1 7 1 V A5: month复位 7 A6: year加 1 1 V 表2简化得NextDate函数决策表: 条件: C1: mon th在 M 1 M 1 M 1 M 2 M 2 M 3 M 3 M 4 M 4 M 4 M 4 M 4 M4 C2: day在 D1 D2 D3 D 4 D 5 D1 5 D2 5 D3 5 D4 D 5 D1 D2 D3 D4 D 5 D 1 D 2 D 2 D 3 D 3 D4Q 5 C3: year在 Y 1 Y 2 Y 1 Y 2 — 动作: A1: 不可能 J 7 1 7 1 V A2: day 加1 7 1 7 7 1 7 V A3: day复位 1 7 寸 A4: mon th加1 1 7 1 7 7 1 7 A5: month复位 1 7 A6: year 加1 1 7 6、实验结果与分析 表3NextDate函数得测试用例组 测试用例 Month Day Year 预期输出 实际输出 Testcase1-3 5 15 2015 2015年5月16 日 [青输入年、月、日; 2015515 2015/5/16 Testcase4 5 30 2015 2015年5月31 日 请输入年、月、日; 2015530 2015/5/31 Testcase5 5 31 2015 2015年6月1 日 [青输入年、月、日; 2015531 2015/6/1 Testcase6-9 4 15 2015 2015年4月16 日 [青输入年、月、日; 2015415 2015Z4/16 Testcase10 4 31 2015 2015年5月1 日 2015430 2015/5/1 Testcasell-14 12 15 2015 2015年12月16 日 [青输入年"月、日, 20151215 2015/12Z16 Testcase15 12 31 2015 2016年1月1 日 请输入年、月、日: 20151231 2016/1/1 Testcase16 2 15 2015 2015年2月16 日 [青输入年、月、日; 2015215 2015/2/16 Testcase17 2 28 2016 2016年2月29 日 请输入年、月、日; 2016228 2016/2/29 Testcase18 2 28 2015 2015年3月1 日 幘输入年、月、日: 2015228 2015/3/1 Testcase19 2 29 2016 2016年3月1 日 请输入年、月、日, 2016229 2016/3/1 Testcase20 2 29 2015 不可能! 请输入年、月、日; 2015229 不可能! Testcase21-22 2 30 2015 不可能! 常献年、月、日: 2015230 凤可能! 7、实验体会与建议 程序得实际输出结果与预期结果不符合,但基本满足实验问题需求,基于决策表得测试对于某些应用程序(例如NextDate函数)很有效,但就是对另外一些简单得应用程序就不值得使用决策表了。 附录代码 #includeHstdafx>hH boolNextDate(intijntjjntk) { 1坦>=1960&&i<=2050&&j>=1&&j<=12&&k>=l&&k<=31) { if(k>=l&&k<=27) {屮;} else { switch(k) { case31: { if(j==l|[j==3|[j==5|[j==7|[j==8|[j==10) { k=l; J++; } elseif(j=12) { k=l; J=l; i++; } else {returnfalse;} break; } case30: if(j=4|[j==6|[j==9|[j==l1) k=l; J++; } elseif(j=2) {leturnfalse;} else {k++;} break: } case29: { if(j==2&&((i%4=0&&i%100! =0)||i%400==0)) { k=l; J++; } elseif(j! =2) {k++;} else {leturnfalse;} break: } case28: { if(j—2&&(a%4=0&&i%100! =0)||i%400==0)) { k++; } elseif(j! =2) {k++;} else k=l; J++; }break; returnfalse; cout«i«,7H< } mtmam() mtday.month.year; while(l) cout«”请输入年、月、口: H«endl;cin»year»month»day; NextDate(yeai;month,day);if(NextDate(yeai;month,day)==false){cout«”不可能! ”《endl;} } system(HpauseH); return0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 决策