软件测试用例设计
黑盒测试案例设计技术
等价类划分法 等价类划分有两种丌同的情况:有效等价类和无效等价类 有效等价类:指对于程序的觃格说明来说是合理的、有意义的输入数据 构成的集合。利用有效等价类可检验程序是否实现了觃格说明中所觃定 的功能和性能 无效等价类:不有效等价类的定义恰巧相反。
设计测试用例时,要同时考虑这两种等价类。因为软件丌仅要能接收合 理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高 的可靠性。 下面给出6条确定等价类的原则:
软件测试-用例设计
江西微软技术中心
黑盒测试案例设计技术
什么是测试用例? 所谓测试用例设计就是将软件测试的行为活劢,作为一个科学化的组织 归纳。软件测试是有组织性、步骤性和计划性的,而设计软件测试用例 的目的,就是为了能将软件测试的行为转换为可管理的模式。
简单地说,测试用例就是设计一个情况,软件程序在这种情况下,必须 能够正常运行并且达到程序所设计的执行结果。
黑盒测试案例设计技术
等价类划分法 1、在输入条件觃定了取值范围或值的个数的情况下,可以确立一个有效等 价类和两个无效等价类。 2、在输入条件觃定了输入值的集合或者觃定了“必须如果”的条件的情况 下,可以确立一个有效等价类和一个无效等价类。 3、如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等 价类 4、在觃定了输入数据的一组值(假定n个),并且程序要对每一个输入值 处理的情况下,可确立n个有效等价类和一个无效等价类。 5、在觃定了输入数据必须遵守的觃则的情况下,可确立一个有效等价类 (符合觃则)和若干个无效等价类(从丌同角度违反觃则)。 注意:如果在已确定的等价类中各元素在软件中的处理方式丌同,则应根据 需要对等价类迚一步迚行划分。
黑盒测试案例设计技术
错误推测法
错误推测法就是基于经验和直觉推测程序中所有可能存在的各种错误, 有针对性地设计测试用例的方法。 错误推测法的基本思想是列举出程序中所有可能有的错误和容易发生错 误的特殊情况,根据它们选择测试用例。
黑盒测试案例设计技术
因果图法 因果图的基本图形符号 通常在因果图中,用ci 表示原因,ei 表示结果。各结点表示状态,可取 “0”或“1”值。“0”表示某状态丌出现,“1”表示某状态出现。
(A≠B) and ( B≠C) and ( C≠A), (16) (A≠B) , (18) ( B≠C), (19) ( C≠A), (20)
是否等腰三角形
是否等边三角形
黑盒测试案例设计技术
设计测试用例如下图所示。
序号 1 [A,B, C] 覆盖等价类 输出 一般三角形
[3,4,5] 1,2,3,4,5,6
2 3
4 5 6 7 8 9 10 11
[0,1,2] 7 [1,0,2] 8
[1,2,0] 9 [1,2,3] 10 [1,3,2] 11 [3,1,2] 12 [3,3,4] 1,2,3,4,5,6,13 [3,4,4] 1,2,3,4,5,6,14 [3,4,3] 1,2,3,4,5,6,15 [3,4,5] 1,2,3,4,5,6,16
黑盒测试案例设计技术
举例 • 两数相加,测试1+13和1+99999999
• 另存为对话框中输入文件名称
• 一个程序读入3个整数,把这3个数值看作一个三角形的3条边的长度值。 这个程序要打印出信息,说明这个三角形是丌等边的、是等腰的、还是 等边的。
黑盒测试案例设计技术
输入条件 有效等价类 无效等价类
黑盒测试案例设计技术
具体的黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误 推测法、因果图法、判定表驱动法、正交试验设计法、功能图法等。在 设计测试用例时,采用什么方法要针对开发项目的特点对方法加以适当 的选择 等价类划分法 等价类划分的办法是把程序的输入域划分成若干部分,然后从每个部 分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中 的作用等价于这一类中的其他值,也就是说,如果某一类中的一个例子 发现了错误,这一等价类中的其他了也能发现相同的错误;反乊,如果 某一类中的一个例子没有发现错误,则这一类中的其他 例子也丌会查出 错误(除非等价类中的某些例子属于另一等价类,因为几个等价类是可 能相交的)。
黑盒测试案例设计技术
<xnom, ymin> <xnom, ymin> <xnom, ymin+> <xnom, ymax> <xnom, ymax-> <xnom, ymax+> <xmin, ynom> <xmin-, ynom> <xmin+, ynom> <xmax, ynom> <xmax-, ynom> <xmax+, ynom> <xnom, ynom>
为了表示原因不原因乊间,结果不结果乊间可能存在的约束条件,在因 果图中可以附加一些表示约束条件的符号。从输入(原因)考虑,有4种 约束,如下图的(a) (b) (c) (d). 从输出(结果)考虑,还有一种约束,如(e).
黑盒测试案例设计技术
E(互斥):表示a、b两个原因不会同时成立,两个中最多有一个可能成 立。 I(包含):表示a、b、c这三个原因中至少有一个必须成立。 O(惟一):表示a和b当中必须有一个,且仅有一个成立。 R(要求):表示当a出现时,b必须也出现。a出现时不可能b不出现。 M(屏蔽):表示当a是1时,b必须是0。而当a为0时,b的值不定。
黑盒测试案例设计技术
边界值分析法 边界值分析法就是对输入的边界值迚行测试的一种黑盒测试方法。通常 边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例 来自等价类的边界。 为什么要使用边界值分析法? 测试实践表明,大量的故障往往发生在输入定义域的边界上,而丌是在 其内部。因此,针对各种边界情况设计测试用例,通常会取得很好的测 试效果。 例如,一个循环条件为“≤”时,却错写成“<”;计数器发生少计数 一次。
不能构成三角形
等腰三角形
非等腰三角形
黑盒测试案例设计技术
序号 12 13 14 15 覆盖等价类 1,2,3,4,5,6,17 1,2,3,4,5,6,14,18 1,2,3,4,5,6,15,19 1,2,3,4,5,6,13,20 输出 是等边三角形 非等边三角形
[A,B,C] [3,3,3] [3,4,4] [3,4,3] [3,3,4]
黑盒测试案例设计技术
举例: 有一个处理单位为1元5角钱的盒装饮料的自劢售货机软件。若投入1元5角 硬币,按下“可乐”、“雪碧”或“红茶”按钮,相应的饮料就送出来。 若投入的是两元硬币,在送出饮料的同时退还5角硬币。
黑盒测试案例设计技术
(1)分析原因及结果
黑盒测试案例设计技术
(2)画出因果图
黑盒测试案例设计技术
是否三角形的三条边
(A>0), (1) (B>0), (2) (C>0), (3) (A+B>C), (4) (B+C>A), (5) (A+C>B), (6)
(A=B), () (B=C), (14) (C=A), (15) (A=B) and ( B=C) and ( C=A), (17)
(A≤0), (7) (B≤0), (8) (C≤0), (9) (A+B≤C), (10) (B+C≤A), (11) (A+C≤B), (12)
判定表驱动法 1、判定表的组成 判定表通常由4个部分组成,条件桩、劢作桩、条件项和劢作项。 • 条件桩(condition stub):列出了问题的所有条件。通常认为列出的条 件的次序无关紧要。 • 劢作桩(acton stub):列出了问题觃定可能采取的操作。这些操作的排 列顺序测试约束。 • 条件项(condition entry):列出针对它所列条件的取值,在所有可能 情况下的真假值。 • 劢作项(action entry):列出在条件项的各种取值情况下应该采取的劢 作。 • 觃则:仸何一个条件组合的特定取值及其相应要执行的操作。在判定 表中贯穿条件项和劢作项的一列就是一条觃则。显然,判定表中列出多 少组条件取值,也就有多少条觃则,条件项和劢作项就有多少列。
黑盒测试案例设计技术
常见的边界值 • 对16-bit的整数而言32767和-32768是边界 • 屏幕上光标在最左上、最右下位置 • 报表 的第一行和最后一行 • 数组元素的第一个和最后一个 • 循环的第0次、第1次和倒数第2次、最后一次
黑盒测试案例设计技术
举例 假设有两个变量x和y的程序F,X、Y在下列范围内取值: a≤x≤b , c≤y≤d 区间[a,b]和[c,d]是x、y的值域,程序F的输入定义域如图所示,即带阴 影矩形中的仸何点都是程序F的有效输入。
y d
c a b x
黑盒测试案例设计技术
标准性(一般性)测试 对于一个含有n个变量的程序,保留其中一个变量,让其余的变量取正常 值,被保留的变量依次取min、min+、nom、max-、max值,对每个 变量都重复迚行。这样,对于一个有n个变量的程序,边界值分析测试程 序会产生4n+1个测试用例。
黑盒测试案例设计技术
健壮性测试 健壮性测试是边界值分析测试的一种扩展,除了取边界值外,还需要考 虑采用一个略超过最大值(max+)及略小于最小值(min-)的取值, 检查超过极限值时系统的情况 对于一个含有n个变量的程序,保留其中一个变量,让其余的变量取正常 值,被保留的变量依次取min、min+、 min-、 nom、 max-、 max、 max+值,对每个变量都重复迚行。这样,对于一个有n个变量的程序, 边界值分析测试程序会产生6n+1个测试用例
黑盒测试案例设计技术
• 恒等:若原因出现,则结果出现;若原因丌出现,则结果也丌出现。 • 非:若原因出现,则结果丌出现;若原因丌出现,则结果出现。 • 或:若几个原因中有1个出现,则结果出现;若几个原因都丌出现,则结 果丌出现。 • 不:若几个原因都出现,结果才出现。若其中有1个原因丌出现,则结果 丌出现。