身份证:
-
校验身份证号规则的有效性(包括地址码、生日期码、顺序码和校验码)
-
校验15位身份证号和18位身份证号都是可用的
-
校验末位是X的情况
-
校验不足15位、16-17位和大于18位的情况
-
如果是必输项,校验不输入的时候会不会有正确的提示
-
如果不是必输项,则要校验不输入的时候流程能否正常进行
-
校验输入非数字的情况,是否会有正确提示信息(包括大小写字母、汉字、特殊字符和标点符号)
-
校验输入全角的数字的时候,系统是否会识别(这个得根据需求确定是否可以使用全角的数字)
邮箱输入框
1:不输入任何字符
2:输入中文空格
3:输入英文空格
4:字符串中没有@和点 例如:huiyanni163com
5:字符串中有@没有点 例如:huiyanni@163com
6:字符串中没有@有点
7:字符串中特殊字符 例如:[email protected]
8:@和点都存在
9:第一个字符串味@ 例如:@163.com
10:@和点之间没有字符串 例如:[email protected]
11:字符串之后以为是点 例如:huiyanni@163com.
12:字符串中多于两个@符号 例如:huiyanni@[email protected]
13:字符串中长度超过50位
14:字符串中有汉字
15:输入@前面有分隔符的情况 例如:[email protected]
16:输入@后面有多个分隔符
手机号码输入框
1:输入英文空格
2:输入中文空格
3:输入特殊字符
4:输入超长11位字符
5:输入英文字符
6:输入中文字符
验证码
1:不输入任何字符
2:空格输入
3:输入空格+正确效验码,空格出现在开头、中间、结尾均需要测试
4:输入4位其他非数字内容
5:输入特殊字符
6:输入前3位或后3位验证码正确数字
7:输入4位正确校验码+其他数字
邮政编码输入框
1:输入英文空格,其他必填项填写合理
2:为必填项时,不输入任何字符
3:输入中文空格
4:输入特殊字符
5:输入超长6位字符
6:输入中、英文内容
7:输入空格+数字,空格出现在开头、中间、结尾均需测试
8:输入1个数字
9:输入16位数字
10:输入超长17位数字
<一>文本输入框的合法性检测
1.输入正确的文字、数字、符号,例如中国ABC123等字符,可以提交成功;
2.输入特殊字符检测,特殊字符(例如%、&、?、英文状态下的单引号等)不引起系统出错,则通过检测;
3.空格的检测:
a.空格在行首的检测(例如 中国),自动过滤行首的空格;
b.空格在中间的检测(例如中国 abc),空格保留;
c.空格在行尾的检测(例如中国 ),自动过滤行尾的空格。
<二>数字输入框的合法性检测
正整数的检测:
1.输入正确的正整数,例如:123等数字,可以提交成功;
2.输入带小数的数值,例如:12.22等数字,系统出现相应的错误提示信息;
3.输入负数或者零,例如:-12、0等数字,系统出现相应的错误提示信息;
4.输入字符和特殊符号,例如:abc@#,系统出现相应的错误提示信息。
带小数的输入框检测:
1.对小数后的位数进行检测,例如:规定为2为小数,检测3位或3为以上小数是否控制。
? 数字边界值的输入框检测:(例如边界值的大小为 N=100)
1.在输入框内输入规定的长度N,输入>0或<100,例如:0,0.5,1,1.01,1.11,10 ,99,99.9,可以提交成功;
2.在输入框内输入超出规定长度N, 输入<0或>100,例如:-1,101,101.1,系统出现相应的错误提示信息。
? 文本边界值的输入框检测:(例如边界值的大小为 N=100)
1.输入的字符或汉字,到规定的长度n,例如:输入100个字符或输入50个字符,可以提交成功;
2.输入99个字符或49个汉字,可以提交成功;
3.输入101个字符或51个汉字,系统出现相应的错误提示信息。
日期的检测
1.输入开始日期小于结束时间,可以提交成功;
2.如何开始日期大于结束日期,系统出现相应的错误提示信息;
3.输入开始日期等于结束日期,可以提交成功(具体根据系统要求定义);
4.结束日期大于等于当前日期,可以提交成功;
5.闰年的2月份。
<四>必填项的检测
1.必填项中没有输入任何数据,系统应该出现相应的提示信息;
2.必填项内容加注红色'*'。
<五>界面元素的检测
1.界面元素(具体内容)和需求规定一致;(需客户提供明确的界面元素表)
2.界面布局是否合理、是否美观、是否存在错别字;
3.如果界面数据多,是否存在翻页或左右滚动条;
4.界面列表数据是否对某关键字排序。
关于上传:
1.上传文件是否有格式限制,是否可以上传exe文件;
2.上传文件是否有大小限制,上传太大的文件是否导致异常错误,上传0K的文件是否会导致异常错误,上传并不存在的文件是否会导致异常错误;
3.通过修改扩展名的方式是否可以绕过格式限制,是否可以通过压包方式绕过格式限制;
4.是否有上传空间的限制,是否可以超过空间所限制的大小,如将超过空间的大文件拆分上传是否会出现异常错误。
5.上传文件大小大于本地剩余空间大小,是否会出现异常错误。
6.关于上传是否成功的判断。上传过程中,中断。程序是否判断上传是否成功。
7.对于文件名中带有中文字符,特殊字符等的文件上传。
上传漏洞拿shell:
8.直接上传asp.asa.jsp.cer.php.aspx.htr.cdx….之类的马,拿到shell.
9.就是在上传时在后缀后面加空格或者加几点,也许也会有惊奇的发现。例:*.asp ,*.asp..。
10.利用双重扩展名上传例如:*.jpg.asa格式(也可以配上第二点一起利用)。
11.gif文件头欺骗
12.同名重复上传也很OK。:
下载:
- 避免输入:\..\web.
- 修改命名后缀。
用户注册
只从用户名和密码角度写了几个要考虑的测试点,如果需求中明确规定了安全问题,Email,出生日期,地址,性别等等一系列的格式和字符要求,那就都要写用例测了~
以等价类划分和边界值法来分析
1.填写符合要求的数据注册: 用户名字和密码都为最大长度(边界值分析,取上点)
2.填写符合要求的数据注册 :用户名字和密码都为最小长度(边界值分析,取上点)
3.填写符合要求的数据注册:用户名字和密码都是非最大和最小长度的数据(边界值分析,取内点)
4.必填项分别为空注册
5.用户名长度大于要求注册1位(边界值分析,取离点)
6.用户名长度小于要求注册1位(边界值分析,取离点)
7.密码长度大于要求注册1位(边界值分析,取离点)
8.密码长度小于要求注册1位(边界值分析,取离点)
9.用户名是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了,如含有空格,#等,看需求是否允许吧~)
10.密码是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了)
11.两次输入密码不一致(如果注册时候要输入两次密码,那么这个是必须的)
12.重新注册存在的用户
13.改变存在的用户的用户名和密码的大小写,来注册。(有的需求是区分大小写,有的不区分)
14.看是否支持tap和enter键等;密码是否可以复制粘贴;密码是否以* 之类的加秘符号显示
备注:边界值的上点、内点和离点大家应该都知道吧,呵呵,这里我就不细说了~~
二、 修改密码
当然具体情况具体分析哈~不能一概而论~
实际测试中可能只用到其中几条而已,比如银行卡密码的修改,就不用考虑英文和非法字符,更不用考虑那些TAP之类的快捷键。而有的需要根据需求具体分析了,比如连续出错多少次出现的提示,和一些软件修改密码要求一定时间内有一定的修改次数限制等等。
1.不输入旧密码,直接改密码
2.输入错误旧密码
3.不输入确认新密码
4.不输入新密码
5.新密码和确认新密码不一致
6.新密码中有空格
7.新密码为空
8.新密码为符合要求的最多字符
9.新密码为符合要求的最少字符
10.新密码为符合要求的非最多和最少字符
11.新密码为最多字符-1
12.新密码为最少字符+1
13.新密码为最多字符+1
14.新密码为最少字符-1
15.新密码为非允许字符(如有的密码要求必须是英文和数字组成,那么要试汉字和符号等)
16.看是否支持tap和enter键等;密码是否可以复制粘贴;密码是否以* 之类的加秘符号
17.看密码是否区分大小写,新密码中英文小写,确认密码中英文大写
18.新密码与旧密码一样能否修改成功
另外一些其他的想法如下:
1 要测试所有规约中约定可以输入的特殊字符,字母,和数字,要求都可以正常输入、显示正常和添加成功
2 关注规约中的各种限制,比如长度,大否支持大小写。
3 考虑各种特殊情况,比如添加同名用户,系统是否正确校验给出提示信息,管理员帐户是否可以删除,因为有些系统管理员拥有最大权限,一旦删除管理员帐户,就不能在前台添加,这给最终用户会带来很多麻烦。比较特殊的是,当用户名中包括了特殊字符,那么对这类用户名的添加同名,修改,删除,系统是否能够正确实现,我就遇到了一个系统,添加同名用户时,如果以前的用户名没有特殊字符,系统可以给出提示信息,如果以前的用户名包含特殊字符,就不校验在插入数据库的时候报错。后来查到原因了,原来是在java中拼SQL语句的时候,因为有"_",所以就调用了一个方法在“_”,前面加了一个转义字符,后来发现不该调用这个方法。所以去掉就好了。所以对待输入框中的特殊字符要多关注。
4 数值上的长度 之类的,包括出错信息是否合理
5 特殊字符:比如。 / ' " \