边界值分析
- 经验表明:大量的错误发生在定义域和值域的边界上,而不是内部。
- 确定边界条件取值的原则
- 如果规定了值的范围,则取刚达到范围的边界,以及刚超过边界的值。
- 如果规定了值的个数,则取最大个数、最小个数,最大个数多一、最小个数少一。
- 规定了输入域或输出域是有序集合,则取第一个元素和最后一个元素。
- 如果使用的是一个内部数据结构,则选择这个内部数据结构的边界上的值。
- 边界值分析
- 在最小值、略高于最小值、正常值、略低于最大值和最大值处取输入变量值。
- 表示方法(min、min+、nom、max-、和max)。
- 单缺陷假设
- 失效极少是由两个或多个缺陷的同时发生引起的。
- 单缺陷假设是边界值分析的关键假设。
- 边界值分析测试用例
- 使所有变量取正常值,只使一个变量取极值。
- 对于一个n变量函数,边界值分析会产生4n+1个测试用例。
- 优缺点
- 优点:简便易行,生成测试数据的成本很低。
- 缺点:测试用例不充分,不能发现测试变量之间的依赖关系;不考虑含义和性质。
- 结论:只能作为初步测试用例使用。
健壮性边界值测试
- 健壮性是指在异常情况下,软件还能正常运行的能力。健壮的系统是指对于规范要求以外的输入,能够判断该输入不符合要求,并能合理处理的系统。
- 健壮性测试是边界值分析的一种简单扩展,除了使用五个边界值分析取值,还要过采用:
- 一个略超过最大值(max+)的取值
- 一个略小于最小值(min-)的取值
- (xmin-,xmin,xmin+,xnom,xmax-,xmax ,xmax+)
- 对于一个n变量函数,健壮性边界值分析会产生6n+1个测试用例。
- 健壮性测试的主要价值是观察异常情况的处理
- 软件质量要素的衡量标准:软件的容错性
- 软件容错性的度量
- 从非法输入中恢复
最坏情况边界值测试
- 最坏情况测试的基本思想
- 边界值测试分析采用了可靠性理论的单缺陷假设
- 最坏情况测试拒绝这种假设,关心当多个变量都取极值时会出现什么情况。
- 最坏情况用例设计方法
- 对每一个变量首先进行包含最小值、略高于最小值、正常值、略低于最大值、最大值 五个元素集合的测试,然后对这些集合进行笛卡尔积计算,以生成测试用例。
- n变量函数的最坏情况测试会产生5n个测试用例。
健壮最坏边界值测试
- 对每一个变量,首先进行包含最小值、略高于最小值、正常值、略低于最大值、最大值、略大于最大值、略小于最小值的取值。然后对这些集合进行笛卡尔积计算以生成测试用例。
- 健壮最坏情况测试总产生7n个测试用例。
总结
特殊值测试
- 特殊值测试使用领域知识、使用类似程序的经验开发测试用例的特殊值。
- 特点:最直观、最不一致、具有高度主观性。
- 特殊值测试特别依赖测试人员的能力。
- 虽然特殊值测试是高度主观性的,但是能更有效地发现缺陷。
随机测试
- 不是永远选取有界变量的最小值、略高于最小值、正常值、略低于最大值和最大值,而是使用随机数生成器选出测试用例值。
等价类划分与边界值分析的比较
- 边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。
- 通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
- 边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例。