测试的时候会遇到一些特殊的填写项,这些填写项不是简单随意的字符组合,有一定的实际意义和实际规则,需要验证其正确性。比如手机号码,一定是“1”开头的纯数字,如果输入2开头的就得给出错误提示。
以下我归纳常用具有实际意义和规则的填写项的测试用例。若有疏漏或错误欢迎补充。
(这里特指中国内地的手机用户,忽略区号)
手机号码:我国使用的手机号码为11位(1999年7月22日从10位全面升级为11位),其
中各段有不同的编码方向:前3位——网络识别号;第4-7位——地区编码;
第8-11位——用户号码。号码也就是所谓的MDN号码,即本网移动用户作被
叫时,主叫用户所需拨的号码,它采取E.164编码方式;存储在HLR和VLR
中,在MAP接口上传送。
其中MDN号码的结构如下:CC + MAC + H0 H1 H2 H3 + ABCD
【CC】:国家码,中国使用86(+86)。
【MAC】:移动接入码,本网采用网号方案,为133。
【H0H1H2H3】:HLR识别码,由运营商统一分配。
【ABCD】:移动用户号,由各HLR自行分配。
MAC网络识别号:
电信
2G/3G号段(CDMA2000网络)133、153、180、181、189
4G号段 177
联通
2G号段(GSM网络)130、131、132、155、156
3G上网卡145
3G号段(WCDMA网络)185、186
4G号段 176、185
移动
2G号段(GSM网络)134x(0-8)、135、136、137、138、139、
150、151、152、158、159、182、183、184
3G号段(TD-SCDMA网络)157、187、188
3G上网卡 147
4G号段 178
补充Tips
14号段以前为上网卡专属号段,如中国联通的是145,中国移动的是147等
170号段为虚拟运营商专属号段,170号段的 11 位手机号前四位来区分基
础运营商,其中 “1700” 为中国电信的转售号码标识,“1705” 为中国移动,
“1709” 为中国联通。
卫星通信 1349(忽略不计)
(来源于百度百科,下同)
测试用例:
(1)有效等价类:13\14\15\17\18开头的11位纯数字
(2)无效等价类:
1. 位数不等于11
2. 全角数字
3. 号码包含非数字(中英文/大小写字符、特殊字符)
4. 号码中包含空格(前/中/后、中英文/全半角空格)
5. 不以13\14\15\17\18开头。如10、12、63开头
(这里特指中国固定电话用户,包括区号和电话号码,忽略分机号)
电话号码:电话号码是电话管理部门为电话机设定的号码。为7--8位数字组成。
区号是指世界各大城市所属行政区域常用电话区划号码,这些号码主要用于国
内、国际长途电话的接入。在中国大陆拨打国内长途电话时,要先拨长途冠
码0号。中国大陆的区号有2位、3位、4位之分,增加字冠0(注:0不是区号)
就是3~5位区号。其中3位区号一般为直辖市和大区中心使用,可以视为特殊
情况;5位区号一般是县级城市或者特别地区包括台湾0886、香港0852、澳门
0853;其余均为4位区号。
3位区号:
010:北京市
021:上海市
022:天津市
023:重庆市
024:辽宁省沈阳市、铁岭市、抚顺市、本溪市
025:江苏省南京市
026:未定,预留
027:湖北省武汉市
028:四川省成都市、资阳市、眉山市
029:陕西省西安市、咸阳市
020:广东省广州市
4位区号:
0【3-9】xx
5位区号:
0【3-9】xxx;特殊地区如香港0852等。(是否测试5位区号,按照实际需求调整)
测试用例:
测区号:
(1) 有效等价类:
1. 3位数字:010、02【0- 9】,随机抽取几个测试
2. 4/5位数字:0【3-9】xx (x),随机抽取几个测试
(2)无效等价类
1. 3位数字,但不是010和02【0- 9】。如012、123、035
2. 4/5位数字,但不是0【3-9】开头.如1234、0122、0276
3. 位数少于3位和多于5位
4. 全角数字
5. 号码包含非数字(中英文/大小写字符、特殊字符)
6. 号码包含空格(前/中/后、中英文/全半角空格)
测电话号码:
(1)有效等价类:
1. 7位数字
2. 8位数字
(2)无效等价类:
1.位数少于7位和多于8位
2. 全角数字
3. 号码包含非数字(中英文/大小写字符、特殊字符)
4. 号码包含空格(前/中/后、中英文/全半角空格)
邮箱:在网络中,电子邮箱可以自动接收网络任何电子邮箱所发的电子邮件,并能存储规
定大小的多种格式的电子文件。电子邮箱具有单独的网络域名,其电子邮局地址在
@后标注,—个完整的Internet邮件地址由以下两个部分组成,格式如下:
登录名@主机名.域名。其中,域名由几部分组成,每一部分称为一个子域
(Subdomain),各子域之间用圆点“.”隔开,每个子域都会告诉用户一些有关这台
邮件服务器的信息。
尝试了一些大型网站的邮箱输入验证,找到了一些规律。
邮箱地址就是由“@”符号、最后一个“.”分隔成三部分:
(1)“@”前面的部分
a.只能输入小写字母、数字、符号“-(减号)”、“.(点号)”和“_”(下划线),能否输入大写字母视需求而定。
b.一般只能以字母开头。能不能以数字和下划线开头,甚至减号和点号开头,需要看具体需求,不同的网站都有不同的验证处理方式
c.能不能以减号、点号和下划线结尾,需要视具体需求而定
d.除了首位字符和末尾字符,可以出现“-.-、---、___、...”之类的组合(即可以任意组合)。
(2)“@”和最后一个“.”之间部分
a.只能输入小写字母、数字、“-”(减号)、“.”(点号),可不可以输入下划线和大写字母视需求而定。
b.不能出现连续多个点的输入,如“..”
c.“@”号后面绝对不能直接跟点号,而减号和下划线视需求而定(比如淘宝网验证邮箱时就可以@后面跟-和_)
d.可不可以出现“-.-、--、__、-.、.-”之类的组合,视需求而定。
(3)最后一个“.”后面的部分只能输入小写字母,能否输入大写字母视需求而定,且很多网站有字符数要求,一般为2位以上,3位或4位以内。
(4)所有字符中间绝对不能输入空格,首尾的空格要不要自动去除视需求而定。
(5)有且只能有1个“@”号,至少有一个“.”号
测试用例:
“@”前面的部分:
(1)有效等价类:
1.字母开头、字母或数字结尾的字母数字以及减号、点号、下划线的任意组合。如qw-er.s1_abc
2.字符中间出现特殊符号的连续组合,如u.--..__.4
(2)无效等价类:
1.输入除了点号、减号、下划线之外的其他特殊字符
2.输入中文、全角字符数字
3.输入中有空格(前/中/后、全半角空格),前面的空格能不能自除
4.为空
(3)特殊情况
1.数字、下划线、减号和点号开头(都要试一遍)
2.下划线、减号和点号结尾(都要试一遍)
3.输入含有大写字母
4.字符超长
“@”和最后一个“.”之间部分
(1)有效等价类:字母或数字开头和结尾的字母数字以及减号、点号的任意组合。如qw-er.s1
(2)无效等价类:
1.输入中有连续多个点号
2.首位为点号(即@后跟点号)
3.输入中文、全角字符数字
4.输入中有空格(前/中/后、全半角空格)
5.为空
(3)特殊情况:
1.输入中有下划线或大写字母
2.下划线和减号开头/结尾
3.字符中间出现特殊符号的连续组合,如u.--..__.4
4.字符超长
最后一个“.”后面的部分
(1)有效等价类:2位或3位小写字母
(2)无效等价类:
1.输入中有特殊字符、中文、数字、全角字符
2.输入空格(前/中/后、全半角空格),末尾的空格能不能自除
3.为空
(3)特殊情况:
1. 1位、4位、5位及大于5位的字母
2. 2位或3位大写字母
其他:
1.没有“@”或“.”
2.有多个@,连续或不连续
3.整体邮箱字符超长
域名(Domain Name):是由一串用点分隔的名字组成的Internet上某一台计算机或计算
机组的名称,用于在数据传输时标识计算机的电子方位。域名是一个IP地址上有“面
具” 。一个域名的目的是便于记忆和沟通一组服务器的地址(网站,电子邮件,FTP
等)。在中华网库每一个域名的注册都是独一无二、不可重复的。因此在网络上域
名是一种相对有限的资源,它的价值将随着注册企业的增多而逐步为人们所重视。
域名是上网单位和个人在网络上的重要标识,起着识别作用 ,便于他人识别和
检索某一企业 、组织或个人的信息资源,从而更好地实现网络上的资源共享。
DNS (域名解析domain name resolution)规定,域名中的标号都只由英文字母、
数字和连字符“-”组成,但开头及结尾均不能含有“ - ”,每一个标号不超过63个字符,
也不区分大小写字母。由多个标号组成的完整域名总共不超过255?个字符。
级别最低的域名写在最左边,而级别最高的域名写在最右边。最右边的为顶级
域名,分为国际顶级域名(如表示工商企业的 .com,表示网络提供商的.net,表示
非盈利组织的.org等)和国家顶级域名(如中国是cn,美国是us,日本是jp等);二
级域名是指顶级域名之下的域名,在国际顶级域名下,它是指域名注册人的网上名
称,例如 ibm,yahoo,microsoft等,在国家顶级域名下,它是表示注册企业类别的
符号,例如com,edu,gov,net等;三级域名用字母( A~Z,a~z)、数字(0~
9)和连接符“-”组成, 各级域名之间用实点“.”连接,三级域名的长度不能超过20个
字符?。
测试用例:
域名只由英文字母、数字和连接符“-”(即减号)组成,开头及结尾均不能含有“ - ”、大小写不敏感、有字符限制。
(1)有效等价类:
1.不以减号“-”开头和结尾,输入小写字母、数字和“-”的任意组合。
(2)无效等价类:
1.以减号“-”开头或结尾
2.输入中有其他特殊字符
3.输入中有中文、全角字符
4.输入中有空格(前/中/后、全半角空格)
5.输入超长(参考需求,如三级域名20个字符)
(3)特殊情况:
1.域名输入大写字母,按照需求测试大写字母是否自动转化,还可能测试域名是否因大小写重复
(这里特指18位的身份证,比较粗略的测试)
身份证号:居民身份证号码是特征组合码,由十七位数字本体码和一位数字校验码组成。
排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字
顺序码和一位数字校验码。
地址码:表示编码对象常住户口所在县(市、镇、区)的行政区划代码。若想严格验证则按照“GB/T2260”规定执行(比如银行、12306的身份证号验证就非常严格)。
出生日期码:八位年月日格式,按“GB/T7408”规定执行。前4位表示一个正确的年份(如1900~2015年,不能超过当前年份);中间2位表示01~12月,最后2位表示01~31日;日期还要遵循大月小月、闰年平年的规则。
顺序码:000~999的纯数字。其中最后一位奇数分给男性,偶数分给女性。
数字校验码:0~9数字或X,按照一定规则计算得出
测试用例:
地址码:
(1)有效等价类:参考具体行政区划得出6位数字,如330183
(2)无效等价类:
1.以0或9开头的6位数字
2.。。。(根据具体需求设计数字的无效等价类)
3.非6位数字(包括空格)
出生日期码:
(1)有效等价类:
1.随机抽取几个正确的日期
2.平年、大月(1、3、5、7、8、10、12)测30号和31号
3.平年、小月(4、6、9、11)测30号
4.平年、2月测28号
5.闰年、2月测29号
6.较早年份,如1900年(视需求而定)
7.较近年份,如20151221(当天日期,视需求而定)
8.01月、12月、01号、31号的有效日期
(2)无效等价类:
1.平年、大月测32号
2.平年、小月测31号
3.平年、2月测29号、30、31号
4.闰年、2月测30号、31号
5.00月、13月及以上、00号、32号及以上
6.当前年份+1,如2016年
7.非8位数字(包括空格)
顺序码:
(1)有效等价类:
1.000~999的奇数
2.000~999的偶数
(2)无效等价类:非3位数字(包括空格)
数字校验码:
(1)有效等价类:
1.按照一定规则计算前17位得出(视需求而定)
2.0~9
3.X或x(大小写限制视需求而定)
(2)无效等价类:
1.非1位数字(包括空格)
2.非X和x的字母
其他(整体)无效等价类:
1.17位数字、19位数字
2.号码中含有特殊字符、中文、字母(除最后一位是X或x)、全角字符、空格
3.为空