大家好,我是阿萨。日常工作生活中处处需要密码。现在随便个网站都需要输入密码,而且密码校验也挺严格的。那么针对密码输入框的校验规则测试用例该如何设计?
日常我们经常碰见如下密码校验提示信息,今天我们测试个类似场景。
一. 需求分析
一般情况下,密码都需要满足的要求有:
1. 长度大于8,小于32位。
2. 大小写字母都必须有
3. 包含数字
4. 包含特殊字符
5. 不能包含用户名,或者用户名的倒序。
以上5个条件任意一个不满足都不能认为密码是OK的。
必须满足以上5个条件才可以认为是强密码。
今天需求简化了一下。没有列举截图里的图片原因是:
1. 一般人其实不知道什么是弱密码。
2. 常用的具有特殊含义的字符串,其实很多人也不太清楚。
3. 三个及以上键位的,如果用惯了9宫格输入法,会忘记键盘键位。
因为都是无效等价类的校验,原理类似。所以简化成上面需求。
二. 设计测试用例方法分析
一提到设计测试用例,等价类划分法,边界值这些耳熟能详的方法都出来啦,还有比较高级一点的pairwise,俗称pair 因子法。
那我们看看等价类,以上5个条件都有有效等价类和无效等价类。分别列举符合5个条件的有效等价类和无效等价类。然后pair因子组合下。
长度使用边界值法:
7,8,32,33位长度的密码进行测试。
测试重点是所有无效等价类场景列举全面。
大小写的无效等价类,全大写或者全小写。
数字无效等价类和大小写无效等价类可以使用相同的内容。
特殊字符的无效等价类就是大小写和数字啦。
用户信息的无效等价类就是使用用户名和用户名的倒序。
接下来我们列举下所有测试用例。
三. 列举测试用例。
1. 所有条件都满足的密码。5个条件结果都为真。
2. 长度为7/33位的其他条件都满足的密码。长度无效等价类+4个真。
3. 长度8位,只包含小写和特殊字符以及数字的不包含用户名信息的密码。大小写无效等价类+4个真。
4. 长度为32位,大小写和特殊字符都有,无数字的不包含用户信息的密码。数字的无效等价类+4个真。
5.长度为16位,大小写,数字,特殊字符,包含用户名的密码。用户名信息无效等价类+4个真。
6. 全大写字母+全小写字母+数字+ 无用户名信息。长度无效等价类+特殊字符无效等价类+3个真。
7. 所有特殊字符+1个数字+1个大写+1个小写。 5个真。
8. 全大写字母
9. 全小写字母
10. 全数字
11.全特殊字符
12. 防SQL注入测试
以上列举测试用例仅代表个人意见。欢迎私信我我的遗漏场景。