aX1TFbX2X3TFefTX4FTcgX5FTX6hFTijd程序流程图(上图)
F
aX1bX2X3efX4X6gjX5hi
程序图(上图)
环域复杂度为:6+1=7
cd
第三次作业
设有一程序,如下图所示,可以对输入的年、月、日整数信息进行有效性判断,并进行相应的日期格式转换,得到转换后的日期格式,其中:年的输入范围是2010-2015的4位整数。 如:年输入框中输入“2010”,月输入框中输入“1”,日输入框中输入“6”,点击『转换』按钮,得到转换后的日期为“2010年1月6日”。(15分)
试用等价分类法为该格式转换程序设计相应的测试用例。
第一步:划分等价类。
输入条件 有效等价类 空输入(8) 有非数字字符(9) 年 从2010到2015的整数(1) 非正整数(10) 小于2010(11) 大于2015(12) 空输入(13) 有非数字字符(14) 月 从1到12的整数(2) 非正整数(15) 小于1(16) 大于12(17) 空输入(18) 有非数字字符(19) 日 从1到31的整数(3) 非正整数(20) 小于1(21) 大于31(22) 大月的日不大于31(4) 年月日关系 小月的日不大于30(5) 平年2月的日不大于28(6) 闰年2月的日不大于29(7) 大月的日大于31(23) 小月的日大于30(24) 平年2月的日大于28(25) 闰年2月的日大于29(26) 无效等价类
第二步:确定测试用例。 有效等价类测试用例:
测试数据 [2010] [1] [1] [2015][12][31] [2011] [4][30] [2012] [2][29] [2013] [2][23] 测试范围 等价类(1)(2)(3) 等价类(1)(2)(3)(4) 等价类(1)(2)(3)(5) 等价类(1)(2)(3)(7) 等价类(1)(2)(3)(6) 期望结果 输出:2010年 月1日 输出:2015年12月31日 输出:2011年4月30日 输出:2012年2月29日 输出:2013年2月28日
无效等价类测试用例:
测试数据 [ ][10][10] [A][10][10] [2010.8][10][10] [2000][10][10] [2016][10][10] [2012] [ ][10] [2012] [+][10] [2012][1.1][10] [2012] [0][10] [2012][13][10] [2012][10] [ ] [2012][10] [?] [2012][10][5.8] [2012][10] [0] [2012][12][32] [2012][11][31] [2012] [2][30] [2011] [2][29] 测试范围 等价类(8) 等价类(9) 等价类(10) 等价类(11) 等价类(12) 等价类(13) 等价类(14) 等价类(15) 等价类(16) 等价类(17) 等价类(18) 等价类(19) 等价类(20) 等价类(21) 等价类(22) 等价类(24) 等价类(25) 等价类(26) 期望结果 错误:年份非法 无效 无效 错误:年份非法 错误:年份非法 错误:月份非法 无效 无效 错误:月份非法 错误:月份非法 错误:日期非法 无效 无效 错误:日期非法 错误:日期非法 错误:月份与日期不匹配 错误:年份、月份与日期不匹配 错误:年份、月份与日期不匹配
有一个饮料自动售货机的控制处理软件,它的规格说明为:若投入5角钱的硬币,按下“橙汁”或“雪碧”或“可乐”的按钮,则相应的饮料就送出来,若按下的是“咖啡”的按钮,则提示“金额不足”;若投入1元钱的硬币,按下“橙汁”或“雪碧”或“可乐”的按钮,则自动售货机在送出相应饮料的同时退还5角硬币,若按下的是“咖啡”的按钮,则只送出相应的饮料。(15分)
试用因果图法为该饮料自动售货机的控制处理软件设计一组测试用例。
第一步:列出程序的输入条件(因)和输出动作(果),如图所示:
输入条件 橙汁或雪碧或可乐(1) 咖啡(2) 5角(3) 1元(4) 输出动作 送出相应饮料(5) 退还5角(6) 余额不足(7) 第二步:因果图:第三步:判定表:
1135214632474
规则 1 2 3 4 1 1 1因结点2 1 13 1 14 1 113 114 124 15 1 1 1 0中间结点果结点6 0 1 0 07 0 0 0 1
第四步:为判定表中的每一列(或规则)设计一个测试用例,如图所示:
输入数据 橙汁 5角 雪碧 1元 咖啡 5角 咖啡 1元 预期结果 饮品:橙汁 饮品:雪碧 ,退币: 5角 提示:余额不足 饮品:咖啡