zoukankan      html  css  js  c++  java
  • 关于软件测试(3):多个输入的等价类划分的扩展应用

      

      

      前景概要:这篇文章主要针对上一篇题目做出一些扩展性的修改,从而导致等价类等价类的变化。这边文章实现了增加至3个editbox的等价类划分方法,从而加强了我对于等价类划分的理解。

      1、题目内容:编写3个editBox,要求EditBox 允许1到6个英文字符或数字,按OK结束

        有效等价类: 长度:1到6 字符:a-z,A-Z,0-9。

        无效等价类 长度:0,7 字符:英文/数字以外字符,控制字符,标点符号。

      2、关于等价类的一些必要知识我就不再赘述,上篇文章有提过。

      3、划分等价类

    编号有效等价类编号无效等价类
    1 长度为1-6 6 null
    2 数字0-9 7 长度大于6
    3 小写字母a-z 8 英文/数字以外字符,控制字符,标点符号
    4 大写字母A-Z 9 N0.1正确,N0.1正确,N0.1错误
    5 正确输入个数为3 10 N0.1正确,N0.1错误,N0.1正确
        11 N0.1正确,N0.1错误,N0.1错误
        12 N0.1错误,N0.1正确,N0.1正确
        13 N0.1错误,N0.1正确,N0.1错误
        14 N0.1错误,N0.1错误,N0.1正确
        15 N0.1错误,N0.1错误,N0.1错误

      4、测试用例

    编号测试用例覆盖等价类期望输出
    1 3a4B5c,3a4B5c,3a4B5c 1,2,3,4.5

    No.0:ok
    No.1:ok
    No.2:ok

    2 123,123,null 6,9

    No.0:ok
    No.1:ok
    No.2:输入不能为空

    3 123,123,1234567 7,9

    No.0:ok
    No.1:ok
    No.2:输入字符长度过长

    4 123,123,123@#¥ 8,9

    No.0:ok
    No.1:ok
    No.2:只能输入英文字母或者数字

    5 123,123@#¥,123 10

    No.0:ok
    No.1:只能输入英文字母或者数字
    No.2:ok

      123,123@#¥,123@#¥ 11

    No.0:ok
    No.1:只能输入英文字母或者数字
    No.2:只能输入英文字母或者数字

     7 123@#¥, 123,123  12  

    No.0:只能输入英文字母或者数字
    No.1:ok
    No.2:ok

    8 123@#¥, 123,1234567   13  

    No.0:只能输入英文字母或者数字
    No.1:ok
    No.2:输入字符长度过长

    9 123@#¥, 1234567,123  14

    No.0:只能输入英文字母或者数字
    No.1:输入字符长度过长
    No.2:ok

     
    10 123@#¥, 1234567,null 15

    No.0:只能输入英文字母或者数字
    No.1:输入字符长度过长
    No.2:输入不能为空

      5、编写代码

        

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

    import javax.swing.*;

    public class test3 {
    public final static boolean RIGHT_TO_LEFT = false;
    static JButton jb = new JButton("OK");
    static JTextField tf = new JTextField("");
    static JTextField tf2 = new JTextField("");
    static JTextField tf3 = new JTextField("");
    static JTextArea ta = new JTextArea("");
    public static void addComponentsToPane(Container contentPane) {
    if (RIGHT_TO_LEFT) {
    contentPane.setComponentOrientation(
    ComponentOrientation.RIGHT_TO_LEFT);
    }
    // Any number of rows and 2 columns
    contentPane.setLayout(new GridLayout(6,1));

    contentPane.add(new JLabel("Enter your name"));
    contentPane.add(tf);
    contentPane.add(tf2);
    contentPane.add(tf3);
    contentPane.add(jb);
    contentPane.add(ta);
    //jb.setMnemonic(KeyEvent.VK_I); //Set ShortCut Keys
    jb.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent arg0) {
    // TODO Auto-generated method stub
    String[] test = new String[3];

    test[0] = tf.getText();
    test[1] = tf2.getText();
    test[2] = tf3.getText();
    ta.setText("");
    for (int i = 0; i < 3; i++) {

    if (test[i].matches("[A-Za-z0-9]{1,6}"))
    ta.setText(ta.getText()+"No."+i+":ok"+"\n");
    else if (test[i].length() <= 0)
    ta.setText(ta.getText()+"No."+i+":输入不能为空"+"\n");
    else if (test[i].length() > 6)
    ta.setText(ta.getText()+"No."+i+":输入字符长度过长"+"\n");
    else
    ta.setText(ta.getText()+"No."+i+":只能输入英文字母或者数字"+"\n");

    }

    }
    });
    }

    private static void createAndShowGUI() {
    JFrame.setDefaultLookAndFeelDecorated(true);

    JFrame frame = new JFrame("GridLayout Source Demo");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    //Set up the content pane and components in GridLayout
    addComponentsToPane(frame.getContentPane());

    frame.pack();
    frame.setVisible(true);
    }

    public static void main(String[] args) {
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
    public void run() {
    createAndShowGUI();
    }
    });
    }
    }

    以上java代码编译环境是window8 64位系统,编译器是eclipse。

      6、测试结果

          

           

      吻合期望的结果,证明测试成功。

      7、总结:通过这次的软件测试实际操作,更加深刻地理解等价类划分,以及更加了解软件测试的重要性。随着软件体系的逐步增大我们与之对应的软件测试也应该随之应变,达到消耗尽量少的资源已完成所有我们想要检测的部分。

      8、欢迎大家对我写的博客批评指正。

  • 相关阅读:
    一款非常好用的范围滑动插件
    设置滚动条样式
    Qml 定义 constant
    qml 中 使用 shader
    Qt ImageProvider 的使用
    qt 汉化 国际化
    qt rcc 使用
    CentOS7/RHEL7 pacemaker+corosync高可用集群搭建
    Ubunt平台Qt出现:-1: error: cannot find -lgl
    排序-堆排序
  • 原文地址:https://www.cnblogs.com/logicvay2010/p/4375898.html
Copyright © 2011-2022 走看看