一、实验目的 1、加深对黑盒测试的理解。 2、进一步掌握等价类划分法与边界值分析法的使用。 3、进一步掌握因果图法与判定表法的使用。 二、实验原理 1、等价类划分 等价类划分法是一种黑盒测试的技术,不考虑程序的内部结构,是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。 有效等价类,是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合,程序接收到有效等价类数据后可以正确执行、计算。 无效等价类,与有效等价类的定义恰巧相反,不符合需求规格说明书。程序接收到无效等价类数据,应该给出错误提示,或者根本不让用户输入。 2、边界值分析法 边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。 (1)首先确定边界情况。通常输入或输出等价类的边界就是应该着重测试的边界情况。 (2)选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值。 3、判定表: 分析条件桩与动作桩后,全组合获取条件项,按逻辑简化判定表,再根据简化后的判定表设计测试用例。 4、因果图: 分析因和果,先考虑条件与条件之间的关系,条件与结果之间的关系,绘制出因果图,再转换为判定表,再根据判定表设计测试用例。 三、实验操作方法和步骤 1、NextDate函数的测试 程序有三个输入变量year、month、day(year、month、day均为整数值,并且满足:1800≤ year ≤2100、1≤month≤12、1≤day≤31),分别作为输入日期的年份、月份、日,用户可以使用程序中的数字键盘对日期进行输入,该程序则可以输出该输入日期在日历上第二天的日期。例如,输入为2005年11月30日,则该程序的输出为2005年12月1日。请使用等价类划分法为NextDate函数列出输入域等价类表,并设计相应的测试用例。
- 有函数f(x,y,z),其中x∈(20,60),y∈[2,10),z∈[100,200]。请使用边界值分析法设计该函数的测试用例。
- 打印机能否打印出正确的内容,有多个影响因素,包括驱动程序、纸张、墨粉。这里假定: 优先警告没有纸张,然后二级警告没有墨粉,最后三级警告驱动程序不对。请给出化简后的判定表。
- 某电商系统中“定货折扣”的处理逻辑如下:“如果用户是一级会员,且订货金额超过1000元,则优惠10%;如果金额超过2000元,则优惠15%。如果用户是二级会员,且订货金额超过1000元,则优惠5%;如果金额超过2000元,则优惠10%。如果用户为非会员,则不论订货金额是多少,都没有优惠”。画出因果图和判定表,并根据判定表设计测试用例。
四、实验结果与分析 1、列出等价类表与测试用例集。 等价类表:
输入条件 | 有效等价类 | 编号 | 无效等价类 | 编号 | Year | 1800≤ year ≤2100平年 | 1 | <1800 | 3 | | 1800≤ year ≤2100闰年 | 2 | >2100 | 4 | | Month={1 3 5 7 8 10 12} | 5 | <1 | 8 | Month | Month={4 6 9 11} | 6 | >12 | 9 | | 2 | 7 | | | | 1≤day≤31 | 10 | <1 | 14 | | 1≤day≤30 | 11 | 平年>28 | 15 | Day | 1≤day≤29 | 12 | 闰年>29 | 16 | | 1≤day≤28 | 13 | 小月>30 | 17 | | | | 大月>31 | 18 |
测试用例集:
用例编号 | 测试数据 | 覆盖项 | 预期输出 | 1 | 2000年11月30日 | 1 6 11 | 2000年12月1日 | 2 | 2005年2月28日 | 1 7 13 | 2005年3月1日 | 3 | 2005年2月29日 | 1 7 12 | 2005年3月1日 | 4 | 2004年3月30日 | 2 5 10 | 2004年3月31日 | 5 | 1777年3月30日 | 3 5 10 | 年的值不在指定范围内 | 6 | 2111年3月28日 | 4 | 年的值不在指定范围内 | 7 | 2004年-1月27日 | 8 | 月的值不在指定范围内 | 8 | 2004年13月25日 | 9 | 月的值不在指定范围内 | 9 | 2004年2月-1日 | 14 | 日的值不在指定范围内 | 10 | 2004年2月29日 | 15 | 日的值不在指定范围内 | 11 | 2004年2月30日 | 16 | 日的值不在指定范围内 | 12 | 2004年4月31日 | 17 | 日的值不在指定范围内 | 13 | 2004年3月32日 | 18 | 日的值不在指定范围内 | | | | |
- 列出等价类表、每个输入变量的边界值与测试用例集。
等价类表:
输入条件 | 有效等价类 | 编号 | 无效等价类 | 编号 | x | 20<x<60 | 1 | <20 | 2 | | | | >60 | 3 | y | 2<=y<10 | 4 | <2 | 5 | | | | >10 | 6 | z | 100<=z<=200 | 7 | <100 | 8 | | | | >200 | 9 | | | | | |
边界值选取: x:20,21,40,59,60 y:1,2,5,9,10 z:99,100,150,200,201 测试用例集:
用例编号 | 测试数据 | 预期输出(有效\无效) | 1 | 20.5.150 | 无效 | 2 | 21.5.150 | 有效 | 3 | 40.5.150 | 有效 | 4 | 60.9.150 | 无效 | 5 | 60.5.150 | 有效 | 6 | 60.9.200 | 有效 | 7 | 21.1.150 | 无效 | 8 | 21.5.201 | 无效 | 9 | 21.5.99 | 无效 |
- 列出化简后的判定表。
序号 | 1 | 2 | 3 | 4 | 条件桩 | 是否有墨粉 | 否 | 是 | 是 | - | 是否有纸张 | 是 | 是 | 是 | 否 | 驱动程序是否正常 | - | 否 | 是 | - | 动作项 | 打印正确内容 | 可以打印 | 不可以打印 | 可以打印 | 不可以打印 | 提示没有纸张 | 无提示 | 无提示 | 无提示 | 提示 | 提示没有墨粉 | 提示 | 无提示 | 无提示 | 无提示 | 提示程序有误 | 无提示 | 提示 | 无提示 | 无提示 |
4、列出因果图、根据因果图制定的判定表与测试用例集。 因果图:  判定表:
序号 | 1 | 2 | 3 | 条件桩 | 会员级别 | 一级 | 二级 | 非会员 | 订货金额 | <=1000 | <=1000 | 任意金额 | >1000&&<=2000 | >1000&&<=2000 | >2000 | >2000 | 动作桩 | 折扣百分比 | 0% | 0% | 0% | 10% | 5% | 0% | 15% | 10% | 0% |
测试用例集:
用例编号 | 会员级别 | 订货金额(元) | 优惠折扣 | 1 | 一级会员 | 100 | 0% | 2 | 一级会员 | 1500 | 10% | 3 | 一级会员 | 2500 | 15% | 4 | 二级会员 | 10 | 0% | 5 | 二级会员 | 1500 | 5% | 6 | 二级会员 | 2500 | 10% | 7 | 非会员 | 50 | 0% | 8 | 非会员 | 1501 | 0% | 9 | 非会员 | 2600 | 0% |
|