零基础学软件测试系列的博客已经写了一周了,谢谢大家的支持,你们的支持是我继续写下去的动力。欢迎大家对其中的错误和不足之处批评指正,我会欣然接受。这一周中不知道大家学的怎么样了,如果有什么需要我帮助的都可以留言。好了言归正传了,开始我们今天的内容了。
还是先看一下昨天的作业的,他的条件是“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)、如果程序中使用了一个内部数据结构,则应选择这个内部数据结构边界上的值作为测试用例。
今天就写这么多了,回去请大家阅读佩腾的《软件测试》中“闭着眼睛测试软件”这一章。