首页 > 其他分享 >软件测试 黑盒测试之等价类划分测试 电话号码合法性检验

软件测试 黑盒测试之等价类划分测试 电话号码合法性检验

时间:2022-12-14 09:15:36浏览次数:40  
标签:10 黑盒 测试 前缀 System 电话号码 输入 软件测试

黑盒测试之等价类划分测试

实验要求:

分析电话号码的输入情况,划分等价类表(要求考虑无效输入);根据(1)所划分的等价类,给出具体的测试用例,实施测试。据此实验生成测试报告2。测试报告中至少包含等价类列表,测试用例及测试结论。

自选语言编写程序:输入电话号码,对电话号码的合法性进行检查,输出是否合法,不合法在屏幕上输出错误原因。

电话号码合法要求:

电话号码由三部分构成

地区码:空白或三位数字

前缀码:非"0"或”1”开头的三位数字

后缀码:四位数字

符合以上要求的为合法电话号码

确认等价类,列出等价类表:

输入条件

有效等价类

编号

无效等价类

编号

电话号码长度

7

1

小于7

10

10

2

大于7小于10

11

大于10

12

电话号码长度为7时首位字符类型

非0非1的数字

3

0

13

1

14

非数字的字符

15

电话号码长度为7时前缀码后两位字符类型

数字

4

非数字的字符

16

电话号码长度为7时后缀码字符类型

数字

5

非数字的字符

17

电话号码长度为10时第4位字符类型

非0非1的数字

6

0

18

1

19

非数字的字符

20

电话号码长度为10时前缀码后两位字符类型

数字

7

非数字的字符

21

电话号码长度为10时后缀码字符类型

数字

8

非数字的字符

22

电话号码长度为10时地区码字符类型

数字

9

非数字的字符

23

测试用例表:

测试用例

输入数据

预期结果

覆盖的等价类

地区码

前缀码

后缀码

1

空白

222

3333

输入合法

1,3,4,5

2

111

222

3333

输入合法

2,6,7,8,9

3

空白

22

3333

输入不合法,电话号码长度不合格

10

4

空白

222

333

输入不合法,电话号码长度不合格

11

5

111

2222

3333

输入不合法,电话号码长度不合格

12

6

空白

022

3333

输入不合法,前缀码有误

13

7

空白

122

3333

输入不合法,前缀码有误

14

8

空白

a12

3333

输入不合法,前缀码有误

15

9

空白

2aa

3333

输入不合法,前缀码有误

16

10

空白

222

aaaa

输入不合法,后缀码有误

17

11

111

022

3333

输入不合法,前缀码有误

18

12

111

122

3333

输入不合法,前缀码有误

19

13

111

a12

3333

输入不合法,前缀码有误

20

14

111

2aa

3333

输入不合法,前缀码有误

21

15

111

222

aaaa

输入不合法,后缀码有误

22

16

aaa

222

3333

输入不合法,地区码有误

23

部分用例执行后结果演示:

演示(测试编号1):

演示(测试编号2):

演示(测试编号3):

演示(测试编号4):

演示(测试编号5):

演示(测试编号6):

演示(测试编号7):

演示(测试编号8):

演示(测试编号9):

演示(测试编号10):

演示(测试编号11):

演示(测试编号12):

演示(测试编号13):

演示(测试编号14):

演示(测试编号15):

演示(测试编号16):

实验代码:

import java.util.Scanner;

public class test2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您的电话号码:");
        String phone = sc.next();
        System.out.println("您输入的电话号码为:" + phone);
        boolean boom = judge(phone);

        if (boom == true) {
            System.out.println("您输入的电话号码是合法的");
        }
        else {
            System.out.println("您输入的电话号码是非法的");
        }
    }

    public static boolean isNumber(String str, int length) {
        for (int i = 0; i < length; i++) {
            if (!Character.isDigit(str.charAt(i))) {
                return false;
            }
        }
        return true;
    }
    public static boolean judge(String phone){
        char fourchar =phone.charAt(3);
        char firstchar = phone.charAt(0);
        int length = phone.length();
        if (isNumber(phone,phone.length())){
            if (length == 10){
                if (fourchar=='0' || fourchar=='1'){
                    System.out.println("提示:前缀码应该是除了0和1开头的三位数字!");
                    return false;
                }
                else{
                    return true;
                }
            }
            else if (length == 7){
                if (firstchar=='0' || firstchar=='1'){
                    System.out.println("提示:前缀码应该是除了0和1开头的三位数字!");
                    return false;
                }
                else {
                    return true;
                }
            }
            else {
                System.out.println("提示:电话号码的长度应为 7或 10位!");
                return false;
            }
        }
        else{
            if (phone.length()==10){
                if (isNumber(phone,3)==false){
                    System.out.println("提示:地区码为非数字!");
                }
                else if (isNumber(phone,6)==false){
                    System.out.println("提示:前缀码为非数字!");
                }
                else {
                    System.out.println("提示:后缀码为非数字!");
                }
            }
            else {
                if (isNumber(phone,3)==false){
                    System.out.println("提示:前缀码为非数字!");
                }
                else{
                    System.out.println("提示:后缀码为非数字!");
                }
            }
            System.out.println("电话号码不应当出现除了数字以外的字符!");
            return false;
        }
    }
}

 

测试结论:

预期结果与程序执行结果一致,说明测试成功,程序无异常。写到测试用例才发现程序的条件有冗余,导致测试用例重复。

标签:10,黑盒,测试,前缀,System,电话号码,输入,软件测试
From: https://www.cnblogs.com/WScoconut/p/16981175.html

相关文章

  • pytest + yaml 框架 -14.钉钉机器人通知测试结果
    前言当用例执行完成后,希望能给报告反馈,常见的报告反馈有:邮箱/钉钉群/飞书/企业微信等。pip安装插件pipinstallpytest-yaml-yoyo钉钉机器人通知测试结果功能在v1.1......
  • 究竟是谁负了谁,来自底层测试的2022年终总结
    前言说实话坐在椅子前,都想好了,该怎么去写,甚至感觉有好多要写的,但是当我坐在椅子上时,却不知道该怎么开头了,不知道是不是紧张?还是不舍?难道还没有跟过去挥手告别的勇气吗?当......
  • HarmonyOS实现登录页面(四)相关api的测试+内网穿透(Postman, NATAPP)
    Postman对应结果NATAPP内网穿透NATAPP下载地址NATAPP新手教程不要添加多余空格NATAPP设置变量如何查询本地tomcat端口http的默认端口是80,也就copy是说,如......
  • 究竟是谁负了谁,来自底层测试的2022年终总结
    前言说实话坐在椅子前,都想好了,该怎么去写,甚至感觉有好多要写的,但是当我坐在椅子上时,却不知道该怎么开头了,不知道是不是紧张?还是不舍?难道还没有跟过去挥手告别的勇气吗?当......
  • java当中怎么测试异步接口【杭州多测师_王sir】【杭州多测师】
    测试是软件发布的重要环节,单元测试在实际开发中是一种常用的测试方法,java单元测试主要用junit,最新是junit5,本人开发一般用junit4。因为单元测试能够在软件模块组合之前尽快......
  • Spring Boot的一个测试用例
     packagetk.mybatis.springboot.mapper;importorg.junit.Assert;importorg.junit.Test;importorg.junit.runner.RunWith;importorg.slf4j.Logger;importorg.slf4j.Lo......
  • Yearning建立流程和数据源进行测试
    1.前提说明前面已经搭建好了平台,并且接入了LDAP、邮箱和钉钉,现在就是建立一下数据源和流程来进行测试,如果有什么疑问可以看上一篇文章安装Yearning审核平台2.建立流程2.......
  • 测试
    测试含有HTTP上下文的业务逻辑,比如Cookie、URL中的QueryString在平时的代码过程中,常常会和HTTP上下文HttpContext打交道,最常见的如request、response、cookie、querystrin......
  • 1、什么是软件测试
    1、什么是软件测试?检查软件产品是否符合设计的要求确认软件产品是否符合用户的实际需求提供软件产品的质量信息投入较低的成本保障极大的降低劣质产品验证......
  • 2、测试与开发模型
    1、需求分析阅读需求文档,产品文档,产品详细设计说明书分析需求的点参与需求评审快速熟悉项目2、制定测试计划和测试方案测试计划:测试整个项目的总体规划......