通用测试:03.字段校验

上一篇 / 下一篇  2013-02-20 11:41:05 / 个人分类:通用测试

要点:
验证字段的各种正常情况,主要从以下角度考虑
1、字段的最长最短输入
2、字段的格式

01.邮箱校验

邮箱字段正常检查:

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字符保持:&nbsp空格的转义字符;<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、在需要密码验证,或者需要二次输入确认的地方,通过复制粘贴第一次的输入内容应该是不能通过的

03.区域(国家、省、市)

正常情况检查:

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、选择"其他国家地区",省级地区和城市都输入异常 

04_数值校验

测试要点:
数据字典:大于等于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

特殊符号列表~!#$%^&*()_+|{}:"<>?;'[]=\,./~!◎#¥%……※&×()-+§『』:""''|{}\《》?,。、;@'【】-=÷ 字符

04.手机校验

异常情况:
1、不输入,空内容
2、空格输入(全角空格,半角空格)
3、输入空格+数字,空格出现在开头,中间,结尾均需要测试
4、输入中文内容
5、输入英文内容
6、输入特殊字符校验(见特殊字符集)
7、输入1个数字
8、输入超过16位数字
9、输入超长全数字测试

以上异常情况,均有出错提示

正常情况:

1、输入16位数字

05.时间控件

   
一、通用测试思路 
正常: 
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:

conju的个人空间 引用 删除 conju   /   2013-02-22 15:23:42
3
 

评分:0

我来说两句

日历

« 2024-05-06  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 28711
  • 日志数: 46
  • 书签数: 2
  • 建立时间: 2012-07-31
  • 更新时间: 2013-06-06

RSS订阅

Open Toolbar