通用测试:03.字段校验
上一篇 /
下一篇 2013-02-20 11:41:05
/ 个人分类:通用测试
要点:
验证字段的各种正常情况,主要从以下角度考虑
1、字段的最长最短输入
2、字段的格式
邮箱字段正常检查:
1、输入的email为最小值,如a@b.c
2、输入正常格式的emial,如test@126.com
3、输入长度为最大值-1的正常格式email
4、输入长度为最大值的正常格式email
邮箱字段异常检查:
1、email中@前面含有~!#$%^&*()_+|{}:"<>?;'[]=\,./~!◎#¥%……※&×()-+§『』:""''|{}\《》?,。、;@'【】-=÷
字符
2、email中含有javascript;
3、email中含有E-mail:字符;如:E-mail:sqf@sss.com
4、email中含有多个@符号,如234@@sss.adc
5、email中输入无@的格式,如:ab.com
6、email中含有中文,如:中文122@aaa.com
7、email中@前无内容的格式,如@b.com
8、email中没有域名,如:fsadfas@.com
9、email中没有域名后缀,如:fsadfas@sss.
10、email中输入空格,空格@空格.空格
11、Email域中@后无内容的格式,如a@
Email@前后均没有内容的格式,如@
输入没有域名的格式,如a@b,a@b.
输入email中有多个@的,如a@@b.com,a (b)c.d
输入@后面有多个分隔符的,如a@b.c.d,a@b.c.d.e
输入@前面有分隔符的情况,如a.b@c.d,a.b.c@d.e,a.b@c,a.b.c@d
12、输入多个emailx@x.x,x@x.x
13、email为半角空格
14、email为全角空格
15、大于最大值(最大值为50个字符)
16、输入已经存在的邮箱,已存在email为的小写,输入的为大写
17、空格+已存在的email
18、已存在的email+空格
19、输入已存在的email,大小写一致
20、为【输入时没有被注册,而提交时已被注册】
出错后的处理:
1、1--15电子邮箱的异常输入,应有提示文案;焦点失去时,检查相子邮件格式不正确,请输入正确的电子邮件地址。
2、16-20电子邮箱的异常输入,焦点失去时,检查相应的提示文案
您填写的邮箱,已经被"***用户"所用:
请检查输入是否正确,或使用其他邮箱;
如果您就是***用户:您想使用这个邮箱并启用新会员登录名,请点此进入
3、异常数据删除,焦点变化,文案恢复到原始状态
02.字符校验
如:姓名、公司名、公司地址等
正常情况包括如下:
1、输入1个字符
2、若输入框有长度限制为N个字符,测试N-1个字符,N个字符
3、输入半角/全角,大写/小写英文字符
4、输入半角/全角数字
5、输入简体中文字符(默认全角)
6、输入繁体中文字符(默认全角)
7、输入全角特殊字符:~!@#¥%……&×()+|{}:""《》?-=【】\;'',。、
8、输入半角特殊字符:~!@#$%^&*()_+|{}:"<>?-=[];',./
`
9、输入html字符保持: 空格的转义字符;<script></script>;<br>;<tr>;<td>;</tr>;</td>;</html>;</body>;</table>
10、输入JavaScript函数:<b>Hello</b>,alert("hello")
11、输入日文字符
异常情况包括如下:
1、不输入,空内容
2、若输入框有长度限制为N个字符,N+1个字符,N+N+...(超长)这几个边界值
还需要测试下通过复制大于长度的值粘贴进去看是否能输入
3、输入半角/全角空格
4、在需要密码验证,或者需要二次输入确认的地方,通过复制粘贴第一次的输入内容应该是不能通过的
5、高危词,违禁词,敏感词
6、输入正常内容的前,后,中间加入多个空格,看保存时是否会过滤掉或过滤为一个,是否会引起保存问题,是否算入长度计算
7、在需要密码验证,或者需要二次输入确认的地方,通过复制粘贴第一次的输入内容应该是不能通过的
正常情况检查:
1、对照区域来源的ViewCache文件,查看国家、省、市、区的级联关系正确。
2、各下拉框的默认值检查。
3、在国家中分中国、外国、其他三类完成区域的选择,抽查的级联关系正确。
4、省级分港澳台、直辖市、普通省三类完成区域选择,抽查的级联关系正确。
5、修改已选择的区域检查。
异常情况检查:
--填写不完全
1、分别不选择国家/省/市/区,点击提交
--选择"其他国家地区",省级地区字段校验
1、省级地区不输入内容,其他输入正确;
2、省级地区若输入框有长度限制为N个字符,N+1个字符,N+N+...(超长)这几个边界值
还需要测试下通过复制大于长度的值粘贴进去看是否能输入
3、省级地区输入半角/全角空格
4、省级地区输入高危词,违禁词,敏感词
5、省级地区输入正常内容的前,后,中间加入多个空格,看保存时是否会过滤掉或过滤为一个,是否会引起保存问题,是否算入长度计算
--选择"其他国家地区",城市地区字段校验
1、选择"其他国家地区",城市不输入内容,其他输入正确;
2、城市若输入框有长度限制为N个字符,N+1个字符,N+N+...(超长)这几个边界值
还需要测试下通过复制大于长度的值粘贴进去看是否能输入
3、城市输入半角/全角空格
4、城市输入高危词,违禁词,敏感词
5、城市输入正常内容的前,后,中间加入多个空格,看保存时是否会过滤掉或过滤为一个,是否会引起保存问题,是否算入长度计算
---组合校验
1、选择"其他国家地区",省级地区和城市都输入异常
测试要点:
数据字典:大于等于x,小于等于y,数字,必填,小数部分仅保存小数点后的2位,数字
交易相关:
注意页面展示保存小数点位数,后台db存储小数点位数,
是否采用四舍五入
是否允许空输入,空输入代表0还是代表正无限
正常情况包括如下:
1、输入最小值,如:x
2、输入最小值+0.01,如x+0.01
3、输入最大值,如:y
4、输入最大值-0.01,如:y-0.01
5、输入两位小数,但是小数位是00,如1.00
6、输入两位小数,但是整数位是0,如:0.01
7、输入两位小数,小数位和整数位都是0,如:0.00
8、输入两位小数,整数位和小数位都不为0,如1.01
异常情况包括如下:
1、不输入为空,其他输入正确
2、空格输入(全角空格,半角空格)
3、输入中文内容
4、输入英文内容
5、输入特殊字符
6、输入全角数字,如100
7、输入负数,如-1(如果只允许输入正数时,需要输入负数进行异常校验)
8、输入小于最小值,如:x-1
9、输入大于最大值,如:y+1
10、输入三位小数,如100.123
特殊符号列表~!#$%^&*()_+|{}:"<>?;'[]=\,./~!◎#¥%……※&×()-+§『』:""''|{}\《》?,。、;@'【】-=÷
字符
异常情况:
1、不输入,空内容
2、空格输入(全角空格,半角空格)
3、输入空格+数字,空格出现在开头,中间,结尾均需要测试
4、输入中文内容
5、输入英文内容
6、输入特殊字符校验(见特殊字符集)
7、输入1个数字
8、输入超过16位数字
9、输入超长全数字测试
以上异常情况,均有出错提示
正常情况:
1、输入16位数字
| |
一、通用测试思路 正常: 1. 默认值检查(依需求而定) 2.
选择起止时间为相同值 3. 开始时间大于结束时间 4.
开始时间空,结束时间不空 5. 开始时间不空,结束时间空 6.
开始时间和结束时间都为空 7. (若需求允许选择不存在数据的时间段)选择无数据的时间段
分支: 1.
修改时间控件默认值:根据时间控件获取时间来源不同,进行测试; 如根据客户端时间,服务器时间。 2.刷新页面(或切换tab)之后查询日期条件是否清除;
二、查询型时间控件测试思路 首先,一睹控件真面目:
然后,明确业务需求: 1. 能够产生数据的时间段范围; 比如1900年开通的诚信通,这个是不可能的。 2.
确定默认时间范围 比如:系统默认查询当前客户端时间的前三个月的数据, 如图,客户端时间为2011-4-13,系统默认带入查询近三个月的记录。 3. 可以选择的时间范围 4.
是否有确定、清除等按钮 最后,确定测试用例。 | |
|
血案纪实录: 2011-4-1 物流服务无法提供查询物流运单功能,页面出现js错误。 Casestduty详情见知识库:http://www.b2b-qa.com/phpwind/read.php?tid=4541 针对这种案例,我们可以用什么手段发现问题? 通常,时间控件的功能通常比较简单,而且大部分实现均在前端js中。因此可以通过查看前端js代码,确认主要的逻辑正确性。 1)
与开发确认时间控件的实现逻辑是在前端js中。 2)
用firefox下的firebug工具,在html中定位到时间控件获取数据的id,通常在隐藏域。
3) 在脚本中,搜索id,找到对应时间控件的js实现,如下:
具体实现的是物流页面时间控件初始化。可以看到起始日期的获取逻辑:
a.获取当前日期; b.对于月份<3和>=3分别处理:
当前日期为2011-3-30,Getmonth()获取的是2,走第一条分支,startTime 就为2010-12-30
当前日期为2011-4-1,Getmonth()获取的是3,走第二条分支,startTime 就为2011-1-1
月份的特殊情况考虑到了,就自然会想到天的情况。例如:5月有31号,倒退3个月就是2月,无30号,这时会不会出问题?这个问题留给大家思考吧~ c.转换成’YYYY-MM-DD’的格式。 注意:Getmonth()取的时间为0~11,实际月份是1-12月,当我们在1,2,3月的时候,实际上存的时间是0,1,2我们要往前推3月前的就是10,11,12 。 此时,让我们回顾一下之前出错的js,是不是很容易就看出问题了? |
|
备注:本文以日历控件举例,给出通用测试思路和案例分析,供大家参考。在具体项目中需求不同,可能会有细微差别。 |
收藏
举报
TAG: