黑盒:边界值测试
*边界值分析
*健壮性测试
*最坏情况测试
*随机测试
这个是在测试类型的 健壮与一般选择中涉及到的。如果编写语言是强语言,一般不需要使用健壮类型测试。
一、边界值分析
1.1.边界值分析基本原理
原理:错误更可能出现在输入变量的极值附近。
*边界值分析关注输入空间的边界,并从中标识测试用例。
常见的边界值举例:
对于16bit整数而言,32767和-32768是边界;
屏幕光标在最左上、最右下的位置是边界;
报表的第一行和最后一行;
数组元素的第一个和最后一个;
循环的第0、1次和倒数第2、1次;
1.2.边界值分析的基本思想
在最小值、略高于最小值、正常值、略低于最大值、最大值处取输入变量值。
表示方法:min、min+、nom、max-、max;
边界值分析采用单缺陷假设,即弱类型测试。
单缺陷假设:软件失效、极少是由两个或多个缺陷同时发生引起的。
1.3.边界值分析的测试用例
设计边界值测试用例时,多个变量,只使其中一个变量取极值,其他变量取正常值,控制变量嘛。
归纳基本边界值分析方法:
1.通过变量个数
2.通过变量取值范围
Question:
对于一个变量个数为n的函数,边界值分析会产生多少个测试用例?
每个变量取极值时(min、min+、max-、max),其他变量取正常值,最后再加上所有变量取正常值的情况。
答:用例个数=4n+1
1.4.边界值分析的优缺点分析
边界值测试分析采用了可靠性理论的 单缺陷假设。
优点:简便易行,生产测试数据的成本很低;
缺点:测试用例不充分;不能发现测试变量间的依赖关系;不考虑含义和性质。
结论😗:只能作为初步测试用例使用。
二、健壮性测试
健壮性是指在异常情况下,软件还能正常运行的能力。
健壮性有两层含义1.容错能力2.恢复能力。
2.1.健壮性边界测试的基本思想
是边界值分析的简单拓展,除了使用五个边界值,还要采用:
一个略小于最小值的取值min-;
一个略大于最大值的取值max+;
圈出来的是相对于普通边界值测试多出来的测试用例。
2.2.健壮性测试的讨论
健壮性测试的主要价值是观察异常情况的处理。
软件质量要素的衡量标准:软件的容错性;
软件容错性的量度:从非法输入中恢复。
关于强类型语言和健壮性测试的解释:
n个变量,健壮性测试的测试用例个数:6n+1;
三、最坏情况测试
3.1.最坏情况测试的基本思想
基本边界值测试采用的是单缺陷假设。
最坏情况测试拒绝这种假设,当多个变量都取极值(多缺陷)时,会出现什么情况?
3.2最坏情况测试用例
对于每个变量的取值,仍然是:min、min+、nom、max-、max;
对这些集合计算笛卡尔积,生成测试用例。
变量个数为n,那么最坏情况边界值测试的用例个数是5n。
3.3最坏情况与边界值分析的比较
基本边界值分析测试用例是最坏情况测试用例的真子集。
最坏情况测试显然更彻底。
最坏情况测试工作量大得多。
3.4健壮最坏情况测试
最坏情况测试的基础上,每个变量的取值多两个。所以测试用例个数:7n。
四、随机测试
4.1随机测试的基本思想
不是永远选取有界变量的最小值、略高于最小值、正常值、略低于最大值和最大值,而是使用随机数生成器选出测试用例值。
五、习题
练习:NextDate函数
输入条件
1≤月份≤12
1≤日期≤31
1812 ≤年≤2012
请用边界值分析设计测试用例
基本边界值分析
月份:min一月,min+二月,max-11月,max12月;
日期:min1,min+2;max-30,max31;
年份:min1812,min+1813,max-2011,max2012;
但是有个特殊情况2月(与年份属性相关),需要最坏情况测试。
所以建议改成健壮最坏情况?73个用例。
这当然是最完善的,但是会增加许多不必要的测试。
所以……也可以把二月单独拿出来讨论。