身份证号:六位数字地址码+八位数字出生日期码+三位数字 顺序码+一位数字校验码
地址码:表示编码对象常住户口所在县(市、镇、区)的行政区划代码
出生日期码:八位年月日格式。前4位表示一个正确的年份(如1900~2015年,不能超过当前年份);中间2位表示01~12月,最后2位表示01~31日;日期还要遵循大月小月、闰年平年的规则。
顺序码:000~999的纯数字。其中最后一位奇数分给男性,偶数分给女性。
数字校验码:0~9数字或X
测试用例:
地址码:
(1)有效等价类:参考具体行政区划得出6位数字,如330183
(2)无效等价类:
不是行政区得出的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.空
7.非8位数字
8.全部为空格
顺序码:
(1)有效等价类:
1.000~999的奇数
2.000~999的偶数
(2)无效等价类:非3位数字(包括空格、空)
数字校验码:
(1)有效等价类:
1.按照一定规则计算前17位得出(视需求而定)
2.0~9
3.X
4.x
(2)无效等价类:
1.非1位数字(包括空格、空)
2.非X和x的字母
其他(整体)无效等价类:
1.17位数字、19位数字
2.15位合法的身份证号
3.14位数字、16位数字
4.号码中含有特殊字符、中文、字母(除最后一位是X或x)、全角字符、空格
5.为空
6.全部为空格