首页 > 其他分享 >软件测试--详细判断电话号码

软件测试--详细判断电话号码

时间:2023-03-26 12:11:36浏览次数:58  
标签:return str -- equals System 电话号码 println 软件测试 out

目录

软件测试作业--电话号码

本文章全手工,业务自我感觉还行,还缺少许多我不知道的业务,但大体的手机号码和座机的大致路线都有,到手机地点的有一个例子,百度了许多文章才总结出来的。代码没用什么高级知识,勿喷,就是用了4个多小时完成的,从找资料到编写基础java代码,然后一一进行测试,分享出来,希望对大家有用。

一、作业要求

  1. 首先输入1-15位。
  2. 要求判断出电话号码的类型。
  3. 对于座机,要求输出座机号码地点。
  4. 对于手机,要求输出手机号码的种类。
  5. 输出增加手机的地点。(加分)
  6. 判断国外的电话号码。(加分)

二、需求分析

根据作业的要求,可以大致解析出下面5点需求,先去网上找资料,将需求逐一完善,对于软件测试就是需要考虑尽肯能多的测试用例。

1、电话号码类型

电话号码可分为手机号码和座机号码。

  • 对国内的座机分析,暂时以0或8开头的号码为座机号码,假定除去座机号码,其它皆为手机号码,在从手机号中细分即可。

  • 这里分析不是很全面,展开来分析,是一个很大很大的工程量,这里根据作业需求推动来进行。

2、座机号码地点

座机格式:区号+电话号码

中国大陆国际区号是86;香港特别行政区区号852;澳门特别行政区区号853;台湾省区号886。

这里我以江西省为例,其它的可以参考下 中国城市电话区号对照表。
新余市 0790 南昌市 0791 九江市 0792 上饶市 0793 临川市 0794
宜春市 0795 吉安市 0796 赣州市 0797 景德镇 0798 萍乡市 0799
鹰潭市 0701

->中国城市电话区号对照表

中国城市电话区号对照表 (buyiju.com)

<-

3、手机号码的种类

常用运营商

中国移动号段:134(0-8)、135、136、137、138、139、147、150、151、152、157、158、159、172、178、182、183、184、187、188、195、197、198

中国联通号段:130、131、132、145、155、156、166、175、176、185、186、196

中国电信号段:133、149、153 、180 、181 、189、173、177、190、191、193、199

中国广电号段:192

虚拟运营商号段

联通:167、170(4,7,8,9)、171

电信:162、170(0,1,2)

移动:165、170(3,5,6)

物联网号段

联通:1400、146

电信:1410

移动:1440、148

卫星电话号段

电信:1349、174(00-05)

工信部应急通信:174(06-12)

海事卫星通信:1749

其它号段

电信服务服务号码:10

国际对方付费电话:108

电信服务中心:10000

联通服务中心:100001

特种开头:11(如:110-报警、114-查号、119-火警)

民用特殊号码:12(如:120-急救电话、121-天气预报、122-交通事故告警)

4、手机地点

由于每一个地区都有自己的运营商,运营商下有独特号段,举一个地区都是很大的工程量。

这里以江西省宜春市的中国移动182号段的一部分为例,其它的可以参考下 方的手机号段网。
1829640 1829641 1829650 1829651 1829652 1829653 1829654 1829655 1829656 1829657 1829658 1829659 1829694 1829695

->江西宜春手机号段

江西宜春手机号段大全 - 手机号段网 (uutool.cn)

<-

5、国外号码

中国常用号码 ---> 11位

美国、德国印度、瑞士、荷兰、比利时、法国、澳大利亚等 ---> 10位

新西兰、泰国等 ---> 9位

新加坡 ---> 8位

加拿大 ---> 7位

6、测试用例

  1. 对格式验证,输入的是数字。
  2. 对号码字数验证,输入的是1-15位。
  3. 对其它各种位数的号码一一测试。
  4. 对正确的号码验证,临界值等。

三、代码编写

将上述需求依次用java代码在主类进行编写,测试,因为只是作业,不是业务,就有点对用户不友好性,没输到对应的格式就只好重新运行了,大体的手机号码和座机的大致路线都有,百度了许多文章才总结出来的。

package softwaretest;

import java.util.ArrayList;
import java.util.Scanner;
import java.util.regex.Pattern;

public class phoneTest {
    public static void main(String[] args) {
        /*
        * 1. 首先输入1-15位
        * */
        Scanner sc =  new Scanner(System.in);
        System.out.println("          判断电话号码            ");
        System.out.print("请重新输入"+"1-15"+"位电话号码:");
        String str = sc.nextLine();
        for (int i = 0; i < str.length(); i++) {
            if(str.charAt(i) < '0' || str.charAt(i) > '9'){
                System.out.print("格式错误,输入的不是数字");
                return;
            }else {
                continue;
            }
        }
        while (true){
            if(str.length() <= 1 || str.length() >= 15){//暗含判断是否为空
                System.out.print("输入的位数不符合,请重新输入"+"1-15"+"位电话号码:");
                str = sc.nextLine();
            } else {
                break;
            }
        }
        /*
        * 2.要求判断出电话号码的类型。
        * 电话号码可分为手机号码和座机号码
        * */
        //座机号码--以0或8开头--仅仅分析国内
        if(str.charAt(0) == '0'){ // 0开头是国内省份
            String s = str.substring(0,4);
            /*
            * 3.对于座机,要求输出座机号码地点。
            * */
                switch (s){
                    case "0790":
                        System.out.println("江西省新余市");
                        return;
                    case "0791":
                        System.out.println("江西省南昌市 ");
                        return;
                    case "0792":
                        System.out.println("江西省九江市 ");
                        return;
                    case "0793":
                        System.out.println("江西省上饶市 ");
                        return;
                    case "0794":
                        System.out.println("江西省临川市 ");
                        return;
                    case "0795":
                        System.out.println("江西省宜春市");
                        return;
                    case "0796":
                        System.out.println("江西省吉安市");
                        return;
                    case "0797":
                        System.out.println("江西省赣州市");
                        return;
                    case "0798":
                        System.out.println("江西省景德镇");
                        return;
                    case "0799":
                        System.out.println("江西省萍乡市 ");
                        return;
                    case "0701":
                        System.out.println("江西省鹰潭市");
                        return;
                    default:
                        System.out.println("其它省份还在开发中……");
                        return;
            }
        } else if (str.charAt(0) == '8') { // 8开头的是国际区号或行政区或台湾省
            if (str.charAt(1)  == '6') {
                System.out.println("中国国际区号");
                return;
            }
            String s = str.substring(0, 3);
            switch (s) {
                case "852":
                    System.out.println("香港特别行政区");
                    return;
                case "853":
                    System.out.println("澳门特别行政区");
                    return;
                case "886":
                    System.out.println("台湾省");
                    return;
                default:
                    System.out.println("没有该省份的号码");
                    return;
            }
        }

        /*
        * 4. 对于手机,要求输出手机号码的种类。
        *    标准的手机号
        * */
        if(str.length() == 11) {
            //手机号码--以1开头
            if (str.charAt(0) == '1') {
                String s = str.substring(0, 3);
//                中国移动特殊第4位数
                if ("134".equals(s)) {
                    for (int i = 0; i < 9; i++) {
                        if (str.charAt(3) == i + '0') {
                            System.out.println("中国移动");
                            return;
                        }
                    }
                }
//           移动运营商
                String a[] = {"135", "136", "137", "138", "139", "147", "150", "151", "152", "157", "158", "159", "172", "178", "182", "183", "184", "187", "188", "195", "197", "198"};
//           江西省宜春市的中国移动182号段
                String b[] = {"9640", "9641", "9650", "9651", "9652", "9653", "9654", "9655", "9656", "9657", "9658", "9659", "9694", "9695"};
                String s1 = str.substring(3, 7);
                for (int i = 0; i < a.length; i++) {
                    if (a[i].equals(s)) {
                        if (s.equals("182")) {
                            /*
                            * 5.手机地点仅仅以江西省宜春市的中国移动182号段为例
                            * */
                            for (int j = 0; j < b.length; j++) {
                                if (b[j].equals(s1)) {
                                    System.out.println("中国移动 江西省宜春市");
                                    return;
                                }
                                if(j == b.length - 1){
                                    System.out.println("中国移动");
                                    return;
                                }
                            }
                        } else {
                            System.out.println("中国移动");
                            return;
                        }
                    }
                }
//                中国联通
                String c[] = {"130", "131", "132", "145", "155", "156", "166", "175", "176", "185", "186", "196"};
                for (int i = 0; i < c.length; i++) {
                    if(c[i].equals(s)){
                        System.out.println("中国联通");
                        return;
                    }
                }

//                中国电信
                String d[] = {"133","149","153 ","180 ","181 ","189","173","177","190","191","193","199"};
                for (int i = 0; i < d.length; i++) {
                    if(d[i].equals(s)){
                        System.out.println("中国电信");
                        return;
                    }
                }

                String s2 = str.substring(0, 4);

//                虚拟运营商
//                中国联通虚拟运营商
                if(s.equals("167") || s.equals("171") || s2.equals("1704") || s2.equals("1707") || s2.equals("1708") || s2.equals("1709")){
                    System.out.println("中国联通虚拟运营商");
                    return;
                }
//                中国电信虚拟运营商
                if(s.equals("162") || s2.equals("1700") || s2.equals("1701") || s2.equals("1702")){
                    System.out.println("中国电信虚拟运营商");
                    return;
                }
//                中国移动虚拟运营商
                if(s.equals("165") || s2.equals("1703") || s2.equals("1705") || s2.equals("1706")){
                    System.out.println("中国移动虚拟运营商");
                    return;
                }

//                物联网号段
//                中国联通虚拟运营商
                if(s.equals("146") || s2.equals("1400")){
                    System.out.println("中国联通虚拟运营商");
                    return;
                }
//                中国移动虚拟运营商
                if(s.equals("148") || s2.equals("1440")){
                    System.out.println("中国移动虚拟运营商");
                    return;
                }
//                中国电信虚拟运营商
                if(s2.equals("1410")){
                    System.out.println("中国电信虚拟运营商");
                    return;
                }

                String s3 = str.substring(0,5);

//                电信卫星电话
                if(s3.equals("17400") || s3.equals("17401") || s3.equals("17402") || s3.equals("17403") || s3.equals("17404") || s3.equals("17405") || s2.equals("1349")){
                    System.out.println("电信卫星电话");
                    return;
                }

//                工信部应急卫星通信电话
                if(s3.equals("17406") || s3.equals("17407") || s3.equals("17408") || s3.equals("17409") || s3.equals("17410") || s3.equals("17411") || s3.equals("17412")){
                    System.out.println("工信部应急卫星通信电话");
                    return;
                }

//                海事卫星通信电话
                if(s2.equals("1749")){
                    System.out.println("海事卫星通信电话");
                    return;
                }

                System.out.println("其它手机号有待完善...");
                return;
            }else {
                System.out.print("根据您输入的,可以判断是判断手机号,但格式输入错误");
                return;
            }
        }

        /*
        * 6.判断国外的电话号码
        * */
        /*
         * 电话号码位数为10
         * */
        if(str.length() == 10){
            System.out.println("美国、德国印度、瑞士、荷兰、比利时、法国、澳大利亚等");
            return;
        }

        /*
         * 电话号码位数为9
         * */
        if(str.length() == 9){
            System.out.println("新西兰、泰国等 ");
            return;
        }

        /*
         * 电话号码位数为8
         * */
        if(str.length() == 8){
            System.out.println("新加坡");
            return;
        }
        if(str.length() == 8){
            System.out.println("加拿大");
            return;
        }

        /*
        * 电话号码位数为3
        * */
        if(str.length() == 3){
            String s = str.substring(0,3);
//                民用特殊号码
            if(s.equals("120")){
                System.out.println("急救电话");
                return;
            }
            if(s.equals("121")){
                System.out.println("天气预报");
                return;
            }
            if(s.equals("122")){
                System.out.println("交通事故告警");
                return;
            }

//        特种开头
            if(s.equals("110")){
                System.out.println("报警");
                return;
            }
            if(s.equals("114")){
                System.out.println("查号");
                return;
            }
            if(s.equals("119")){
                System.out.println("火警");
                return;
            }

//        国际对方付费电话
            if(s.equals("108")){
                System.out.println("国际对方付费电话");
                return;
            }
        }

        /*
         * 电话号码位数为2
         * */
        if(str.length() == 2){
            String s2 = str.substring(0,2);
//        电信服务服务号码
            if(s2.equals("10")){
                System.out.println("电信服务服务号码");
                return;
            }
        }

        /*
         * 电话号码位数为5
         * */
        if(str.length() == 5){
            String s3 = str.substring(0,5);
//        电信服务中心
            if(s3.equals("10000")){
                System.out.println("电信服务中心");
                return;
            }
        }

        /*
         * 电话号码位数为6
         * */
        if(str.length() == 6){
            String s4 = str.substring(0,6);
//        联通服务中心
            if(s4.equals("100001")){
                System.out.println("联通服务中心");
                return;
            }
        }

        System.out.println("其它号码还未完善...");
        return;
    }
}

记录每一个学习瞬间

标签:return,str,--,equals,System,电话号码,println,软件测试,out
From: https://www.cnblogs.com/MrDevil-k/p/17258410.html

相关文章

  • java----对象的的创建和使用
    对象的的创建和使用创建一个学生类publicclassStudent{/*创建一个学生类*///下面是成员变量Stringname;//intage;intweight;//下......
  • 声明、定义与初始化
    给出几种常见的形式:externinti;//声明,当其他文件存在i的定义的时候,本文件要使用i需要使用extern关键字,让编译器去其他文件找到i的定义,声明可以多次,但是定义只能一次ex......
  • 「 solution set」 AGC037
    A一看是橙色的,跳了。BRGBBalls一个显而易见的贪心是考虑加进来一个颜色,如果能正好和剩下的组成一组,那么就一定让他们组成一组。留着的话前面剩下的能造成的极差一定更......
  • 学习Linux命令的正确姿势
    大家好,我是良许。大家应该注意到了,最近我的公众号文章末尾都挂着自己录制的《Linux命令从小白到大神》课程。这个课程我从开始录制到制作完成,足足花了一个半月。如果加上......
  • 我在上海用友汽车所遭遇的职场迫害
    刘清乐(用友汽车部门经理)以前端leader的名义诈骗我入职,让我误以为自己是用友汽车的前端leader,结果将我分配到用友汽车>abu4>服务三部>惠商宝项目组。前端开发人员只有......
  • sqlmap工具的利用
    sqlmap工具的利用  利用sqlmap工具进行SQLI找到某个可以发起数据库请求页面,并确定该页面可以SQLI后,可以先用burpsuite抓个request包然后把包里的内容保存到文本......
  • Tensflow & Numpy to implement Linear Regresssion and Logistic Regression
    OptionalLab-NeuronsandLayers¶Inthislabwewillexploretheinnerworkingsofneurons/unitsandlayers.Inparticular,thelabwilldrawparallelstot......
  • 饮料换购
    饮料换购题目描述乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去(但不允许暂借或赊账)。请你计算一下,......
  • 我想用gin开发一个使用redis和数据库的系统。 我应该如何进行架构设计?
    在设计使用Redis的系统和使用Gin的数据库时,需要牢记几个架构注意事项。这是一个可能的架构设计:API层:API层处理传入的请求并提供响应。该层负责验证输入、验证用户......
  • css-内容超出区域
    overflow:hidden;//visible、hidden、scroll、auto.remarkArea{height:470px;overflow:hidden;}例如在这个音乐播放器页面.音乐列表和评论列表都会出......