零基础学软件测试系列的博客已经写了一周了,谢谢大家的支持,你们的支持是我继续写下去的动力。欢迎大家对其中的错误和不足之处批评指正,我会欣然接受。这一周中不知道大家学的怎么样了,如果有什么需要我帮助的都可以留言。好了言归正传了,开始我们今天的内容了。
还是先看一下昨天的作业的,他的条件是“6到18个字符,可以使用字母、数字、下划线,需已字母开头”。那么有效等价类就应该是
输入条件 | 有效等价类 | 无效等价类 |
符合要求的邮件地址 | 6---18个字符 (1) | 小于6个字符 (6) |
大于18个字符 (7) | ||
字母 (2) | 不是字母、数字和下划线 (8) | |
数字 (3) | ||
下划线 (4) | ||
首位是字母 (5) | 首位不是字母 (9) |
那么测试用例就出来了吧
序号 | 输入 | 覆盖等价类 | 输出 |
1 | Nick_mail01 | 1,2,3,4,5 | 正确 |
2 | nick | 2,5,6 | 错误 |
3 | qwertyuiopasdfghjklzxc | 2,5,7 | 错误 |
4 | Nick+mail? | 1,2,5,8 | 错误 |
5 | 5683_mail | 1,2,3,4,9 | 错误 |
好了,现在就正式开始今天的内容了,今天和大家介绍的是边界值分析的方法,这个比较简单。在人们大量的测试工作经验中总结出,大量的错误时发生在输入或输出范围的边界上,而不是在输入范围内部,为什么会这样呢?有一个原因就是对需求不明确造成的,比如需求上写着这个输入框的范围是5---10,这里就有一个问题了,包不包括5和10,这个范围是大于5小于10还是大于等于5小于10,大于5小于等于10还是大于等于5小于等于10。这就需要我们队边界值检查了。看一下我们昨天的作业,他的范围是6到18,那么应用边界值分析我们就可以加上5,6,7和17,18,19这六个边界值了。
现在我们看的边界值条件都是很容易找到的,他们都会在规格说明书中定义,或在软件使用过程中确定。实际上还有一些边界是在软件内部,最终用户看不到的,但是软件测试仍需要检查的,这些边界成为次边界条件或内部边界条件。那么我们就来看一下常见的次边界条件。
1、2的乘方
术语 | 范围或值 | 术语 | 范围或值 |
位 | 0或1 | 千 | 1,024 |
双位 | 0~15 | 兆 | 1,048,576 |
字节 | 0~255 | 亿 | 1,073,741,824 |
字 | 0~65,535 | 万亿 | 1,099,511,627,776 |
2、ASCII表
字符 | ASCII值 | 字符 | ASCII值 | 字符 | ASCII值 | 字符 | ASCII值 |
NULL | 0 | B | 66 | 2 | 50 | a | 97 |
Space | 32 | Y | 89 | 9 | 57 | b | 98 |
/ | 47 | Z | 90 | : | 58 | y | 121 |
0 | 48 | [ | 91 | @ | 64 | z | 122 |
1 | 49 | ‘ | 96 | A | 65 | { | 123 |
3、默认、空白、空值、零值和无
4、其他一些不正确非法的值
这些常见的次边界值也是需要我们在测试时注意的。最后我们来总结一下边界值的选择方法,边界值分析师补充等价划分测试用例设计技术,它并不是选择等价类的任意元素而是选择等价类边界的测试用例,这里给大家6个常用的原则:
(1)、如果输入条件规定了值的范围,则应去刚刚到达这个范围的边界的值,以及刚刚超过这个范围边界的值作为测试输入数据。
(2)、如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据。
(3)、根据规格说明书说明的每个输出条件,使用1原则。
(4)、根据规格说明书说明的每个输出条件,使用2原则。
(5)、如果程序的规格说明给出了输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作位测试用例。
(6)、如果程序中使用了一个内部数据结构,则应选择这个内部数据结构边界上的值作为测试用例。
今天就写这么多了,回去请大家阅读佩腾的《软件测试》中“闭着眼睛测试软件”这一章。