软件测试实验报告二——电话号码问题

1.实验要求

实验(二)等价类划分方法测试案例-电话号码问题

某城市电话号码由三部分组成。它们的名称和内容分别是:

(1)地区码:空白或四位数字

(2)连接符:“-”

(3)号码:8 位数字

假定被测程序能接受一切符合上述规定的电话号码。如若输入的电话号码符合规定,则输入验证通过,否则拒绝所有不符合规定的电话号码,如下图所示。

根据该程序的规格说明,作等价类的划分,设计测试方案,并完成其实验报告。

(1)编写如图所示小程序

(2)设计对应的测试方案

(1)自编小程序截图(截图上留下姓名和学号)

小程序首页,以及输入电话号码后正确失败界面

2.编写代码

代码如下:

 import java.awt.EventQueue;
        import java.awt.event.ActionEvent;
        import java.awt.event.ActionListener;

        import javax.swing.JButton;
        import javax.swing.JFrame;
        import javax.swing.JLabel;
        import javax.swing.JOptionPane;
        import javax.swing.JPanel;
        import javax.swing.JTextField;
        import javax.swing.border.EmptyBorder;

public class CheckPhoneNum extends JFrame{
    private JPanel contentPane;
    private JTextField nameField;
    private JTextField phoneField;
    private JTextField ageField;

    public static void main(String[] args){
        EventQueue.invokeLater(new Runnable(){
            public void run(){
                try{
                    CheckPhoneNum frame = new CheckPhoneNum();
                    frame.setVisible(true);
                }catch(Exception e){
                    e.printStackTrace();
                }
            }
        });
    }


    public CheckPhoneNum(){
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100,100,260,190);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5,5,5,5));
        setContentPane(contentPane);
        contentPane.setLayout(null);

        JLabel label = new JLabel("姓名");
        label.setBounds(10,15,122,15);
        contentPane.add(label);

        nameField = new JTextField();
        nameField.setBounds(80,10,141,25);
        contentPane.add(nameField);


        JLabel label_1 = new JLabel("年龄");
        label_1.setBounds(10,50,122,15);
        contentPane.add(label_1);

        ageField = new JTextField();
        ageField.setBounds(80,45,141,25);
        contentPane.add(ageField);

        JLabel label_2 = new JLabel("电话号码");
        label_2.setBounds(10,87,122,15);
        contentPane.add(label_2);

        phoneField = new JTextField();
        phoneField.setBounds(80,82,141,25);
        contentPane.add(phoneField);

        JButton button = new JButton("验证");
        button.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                do_button_actionPerformed(e);
            }
        });
        button.setBounds(100,120,60,25);
        contentPane.add(button);
    }

    protected void do_button_actionPerformed(ActionEvent e){
        String text = phoneField.getText();
        String info = check(text);  //对输入的电话文本进行验证
        JOptionPane.showMessageDialog(null,info);
    }

    public String check(String text){
        if(text == null || text.isEmpty()){
            return "请输入电话号码";
        }
        String regex = "^(^\\d{4}-?[-]-?\\d{8})|(^\\d{8})";  //正则表达式
        if(text.matches(regex)){
            return text + "\n是一个合法的电话号码";
        }else{
            return text + "\n不是一个合法的电话号码";
        }
    }
}
3.实验过程

编写等价类划分及测试方案

有效等价类

编号

无效等价类

编号

地区码

空白

1

小于四位数

3

四位数字

2

多余四位数

4

分隔符

有区号时存在

5

有区号是不存在

6

无区号时不存在

7

无区号时存在

8

电话号码

8位数字

9

多于8位数字

10

少于8位数字

11

 

输入数据

预期结果

测试结果

案例

case1

1234-12345678

合格

case2

12345678

合格

case3

12345-12345678

不合格

case4

123-12345678

不合格

case5

-12345678

不合格

case6

123412345678

不合格

case7

1234-1234567

不合格

Case8

1234-123456789

不合格

Case9

不合格

Case10

123456789

不合格

Case11

1234567

不合格

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值