测试用例(Test Case,TC),在测试执行前设计一套详细的测试方案,包括测试环境,测试步骤,测试数据和预期结果。
编写测试用例的唯一标准是用户需求,具体的参考资料是《需求规格说明书》
测试用例包括:
黑盒测试又称数据驱动测试,完全不考虑程序内部结构和内部特性,注重于测试软件的功能需求。
由于黑盒测试不需要了解程序内部结构,所以许多高层测试,如确认测试、系统测试、验收测试都采用黑盒测试。
黑盒测试能发现以下几类错误:
- 功能不对或功能遗漏
- 界面错误。
- 数据结构或数据库访问错误。
- 性能问题。
- 初始化和终止错误。
黑盒测试方法:
等价类划分的步骤
例子:计算两个1~100之间整数的和
如果要进行完全测试,一共要设计多少个测试用例呢?
加数1 有1~100共计100个取值,加数2 也有1~100共计100个取值,所以他们之间的组合就有100*100=10000种组合可能,但这只是测试了正常范围内的取值。如果用户输入的数据不在1~100之间呢?因为测试量太庞大了,穷举测试肯定不可能,由此引入了等价类划分思想。
等价类:是指某个输入域的子集合。
等价类划分为:
我们将输入域分成了一个有效等价类(1~100)和两个无效等价类(<1,>100),并为每一个等价类进行编号,然后我们就可以从每一个等价类中选取一个代表性的数据来测试,设计如下表所示
的测试用例:
编号 | 所属等价类 | 加数1 | 加数2 | 和 |
---|---|---|---|---|
1 | 2(有效等价类) | 3 | 40 | 43 |
2 | 1(无效等价类) | 0 | -1 | 提示“请输入1~100之间的整数” |
3 | 3(无效等价类) | 110 | 101 | 提示“请输入1~100之间的整数” |
到这里我们的工作似乎结東了,还需要设计其他测试用例吗?
刚刚输入的数据都是整数,如果输入小数,甚至字母怎么办?
这说明刚才的等价类还不完善,我们只考虑了输入数据的范围,没有考虑输入数据的类型(我们认为只输入数据,可是最终用户输入什么都有可能)。综合考虑输入数据的类型和范围划分等价类,如下图所示:
所以,等价类划分的测试用例(扩展)
编号 | 所属等价类 | 加数1 | 加数2 | 和 |
---|---|---|---|---|
1 | 2(有效等价类) | 3 | 40 | 43 |
2 | 1(无效等价类) | 0 | -1 | 提示“请输入1~100之间的整数” |
3 | 3(无效等价类) | 110 | 101 | 提示“请输入1~100之间的整数” |
4 | 4(无效等价类) | 1.2 | 1.2 | 提示“请输入1~100之间的整数” |
5 | 5(无效等价类) | A | B | 提示“请输入1~100之间的整数” |
6 | 6(无效等价类) | @ | % | 提示“请输入1~100之间的整数” |
7 | 7(无效等价类) | 空格 | 空格 | 提示“请输入1~100之间的整数” |
8 | 8(无效等价类) | 提示“请输入1~100之间的整数” |
程序的很多错误发生在输入或输出范围的边界上,因此针对各种边界情况设置测试用例,可以发现不少程序缺陷。
设计方法:
我们还以等价类中讲的例子来讲解边界值的思想。
输入要求是1~100间的整数。因此自然产生了1和100两个边界,我们在设计测试用例的时候,要重点考虑这两个边界问题。
根据边界值方法,测试用例修改如下:
编号 | 所属等价类 | 加数1 | 加数2 | 和 |
---|---|---|---|---|
1 | 2(有效等价类) | 1 | 1 | 2 |
2 | 2(有效等价类) | 100 | 100 | 200 |
3 | 1(无效等价类) | 0 | -1 | 提示“请输入1~100之间的整数” |
4 | 3(无效等价类) | 110 | 101 | 提示“请输入1~100之间的整数” |
5 | 4(无效等价类) | 1.2 | 1.2 | 提示“请输入1~100之间的整数” |
6 | 5(无效等价类) | A | B | 提示“请输入1~100之间的整数” |
7 | 6(无效等价类) | @ | % | 提示“请输入1~100之间的整数” |
8 | 7(无效等价类) | 空格 | 空格 | 提示“请输入1~100之间的整数” |
9 | 8(无效等价类) | 提示“请输入1~100之间的整数” |
基本思想:
利用直觉和经验猜测出出错的可能类型,列举出程度中所有可能的错误和容易发生错误的情况,基本思想是列举出可能犯的错误或错误易发生的清单,然后根据清单编写测试用例;
这种方法很大程度上是凭经验进行的,即凭人们对过去所作测试结果的分析,对所揭示缺陷的规律性作直觉的推测来发现缺陷。
因果图法比较适合输入条件比较多的情况,测试所有的输入条件的排列组合。所谓的原因就是输入,所谓的结果就是输出。
利用因果图导出测试用例需要经过以下几个步骤:
基本图形符号:
约束符号:
例子
有一个处理单价为 2.5 元的盒装饮料的自动售货机软件。若投入2.5元硬币。按 “可乐",“啤酒”,或“奶茶”按钮。相应的饮料就送出来。若投入的是3元硬币。在送出饮料的同时退还5角硬币。
分析:
原因(输入):
①投入2.5元硬币
②投入3元;
③按“可乐”按钮;
④按“啤酒”按钮
⑤按“奶茶”按钮。
中间状态:
①已投币
②已按钮
结果(输出):
①退还5角硬币;
②送出“可乐”饮料;
③送出“啤酒”饮料;
④送出“奶茶”饮料
正交试验设计法,是一种成对测试交互的系统的统计方法。它提供了一种能对所有变量对的组合进行典型覆盖(均匀分布)的方法。可以从大量的试验点中挑出适量的、有代表性的点,利用“正交表”,合理的安排试验的一种科学的试验设计方法。
正交表的构成:(行数(水平数因素数)如:I8(27))
例子
根据 Powerpoint的打印功能的描述设测试用例。功能描述如下:
打印范围分:全部,当前幻灯片,给定范围
打印内容分:幻灯片,讲义,备注页,大纲视图
打印颜色/灰度分:颜色,灰度黑白
打印效果分:幻灯片加框,幻灯片不加框
分析:
根据以上提到的功能说明,构造因子状态表,得到因子状态
编号|所属等价类|加数1|加数2|和
状态/因素 | A打印范围 | B打印内容 | C打印颜色/灰度 | D打印效果 |
---|---|---|---|---|
0 | 全部 | 幻灯片 | 颜色 | 幻灯片加框 |
1 | 当前幻灯片 | 讲义 | 灰度 | 幻灯片不加框 |
2 | 给定范围 | 备注页 | 黑白 | |
3 | 大纲视图 |
将中文字转换成字母的因子状态表:
状态/因素 | A | B | C | D |
---|---|---|---|---|
0 | A1 | B1 | C1 | D1 |
1 | A2 | B2 | C2 | D2 |
2 | A3 | B3 | C3 | |
3 | B4 |
选择正交表的分析:
1、表中的因素数 >= 4
2、表中至少有4个因素数的水平数 >= 2;
3、行数取最少的一个。
4、从正交表公式中开始查找,结果为:L16(45)
注;此案例中有四个被测对象,每个被测对象的状态都不一样。