软件测试设计
一、测试用例的设计方法
- 测试过程中可能遇到的问题
》不知道是否较全面的测试了所有内容。
》测试的覆盖率无法衡量。
》对新版本的重复测试很难实施。
》存在大量冗余测试影响测试效率。
》等价类划分:
“我们不可能进行穷举测试,那么我们就必须对输入进行分类”
———— 输入用同一数据结构表示的数据是稳定的,在某值域范围内,程序处理的方法是相同的。如果输入不在同一值域,则不能称为同一类。
等价类划分法:
把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的、常用的黑盒测试用例设计方法。
- 有效等价类:指对于程序的的规格说明来说是合理的、有意义的输入数据构成的集合。
- 无效等价类:与有效等价类刚好相反。
- 等价类:是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的
》等价类划分的步骤 —— 设计测试用例
- 在设计测试用例时,应同时考虑有效等价类和无效等价类测试用例的设计。
- 根据已列出的等价类表可确定测试用例,具体过程如下:
(1)首先为等价类表中的每一个等价类分别规定一个唯一的编号。
(2)设计一个新的测试用例,使它能够尽量覆盖尚未覆盖的有效等价类。重复这个步骤,直到所有的有效等价类均被测试用例覆盖。
(3)设计一个新的测试用例,使它仅覆盖一个尚未覆盖的无效等价类。重复这一步骤。直到所有的无效等价类均被测试用例覆盖。
》等价类的特点:
- 两块划成一块(等价类划分过粗)
- 一块划成两块(等价类划分过细)
》注意:
- 考虑无效等价类
- 仔细划分
举例:
经整理后得到等价类(分类标准受实际操作条件约束):
边界值法:
针对各种边界情况设计测试用例,通常会取得很好的测试效果。
》关于边界点,可以分为上点、内点、离点
- 上点:就是边界上的点,不管他是开区间还是闭区间,如果该点是封闭的,那上点就在值域范围内,如果该点是开放的,那上点就不在值域范围外。
- 内点:就是在值域范围内的任意一个点。
- 离点:就是离上点最近的一个点,如果边界是封闭的,那离点就是值域范围外离上点最近的点,如果边界是开放的,那离点就是域范围内离上点最近的点。
*举例 —— 常见的边界值:
- 对16-bit 的整数而言32767和-32768是边界
- 屏幕上光标在最左上、最右下位置
- 报表的第一行和最后一行
- 数组元素的第一个和最后一个
- 循环的第0次、第1次和倒数第2次、最后一次
内部边界值条件:
某些不需要呈现给用户的,或者说用户是很难注意到的,但同时确实属于检验范畴内的边界条件,称为内部边界值条件或子边界值条件。
》内部边界值条件主要有下面几种:
- 数值的边界值检验
- 字符的边界值检验
- 其它边界值检验
小结:
在实际的测试用例设计中,需要将基本的软件设计要求和程序定义的要求结合起来,即结合基本边界值条件和内部边界值条件来设计有效的测试用例。