zoukankan      html  css  js  c++  java
  • 关于软件测试(2):等价类划分以及设计测试用例的简单软件测试

      

      

      前景概要:在软件人员或者是公司开发软件的时候,并不是简单的把代码写好就可以了,后期的维护和及时的软件测试才能很好的让软件健康完整的发展下去。虽说一个简单的程序你测试起来很方便,但是作为程序员-----一个严谨的职业,现实要求我们系统的,完整的对一个软件进行测试,这样可以节省大量的人力和物力。那这就是我们这周课上的大概内容了。

      而对于林林总总的软件我们又将软件测试方法分为了等价类划分法、边界值法、因果图法。对于等价类划分法我写了个简单的程序作为软件测试的实验。

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

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

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

      2、关于等价类的一些必要知识:

        有效等价类:检验程序是否实现了规格说明预先规定的功能和性能。   

        无效等价类:检查软件功能和性能的实现是否有不符合规格说明要求的地方。

        常用的等价类划分原则   

        (1)按区间划分   

        (2)按数值划分   

        (3)按数值集合划分   

        (4)按限制条件或规则划分   

        (5)细分等价类

        等价类测试用例设计   

        (1)在确立了等价类之后,可列出所有划分出的等价类表。   

        (2)为每一个等价类规定一个唯一的编号。   

        (3)设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,直到测试用例覆盖了所有的有效等价类。   

        (4)设计一个新的测试用例,使其覆盖且只覆盖一个尚未覆盖的无效等价类。重复这一步,直到测试用例覆盖了所有的无效等价类。

      3、划分等价类

    编号有效等价类编号无效等价类
    1 长度为1-6 5 null长度为0
    6 长度大于6
    2 数字0-9 7 英文/数字以外字符,控制字符,标点符号
    3 小写字母a-z
    4 大写字母A-Z

      4、测试用例

    编号测试用例覆盖等价类期望输出
    1 3a4B5c 1,2,3,4 OK
    2 不输入 5 输入不能为空
    3 1234567 6 输入字符长度过长
    4 123@#¥ 7 只能输入英文字母或者数字

      5、编写代码

        

     1 import java.awt.*;
     2 import java.awt.event.ActionEvent;
     3 import java.awt.event.ActionListener;
     4 
     5 import javax.swing.*;
     6 
     7 public class test3 {
     8     public final static boolean RIGHT_TO_LEFT = false;
     9     static JButton jb = new JButton("OK");
    10     static JTextField tf = new JTextField("");
    11     static JTextArea ta = new JTextArea("");
    12     public static void addComponentsToPane(Container contentPane) {
    13         if (RIGHT_TO_LEFT) {
    14             contentPane.setComponentOrientation(
    15                 ComponentOrientation.RIGHT_TO_LEFT);
    16         }
    17 //        Any number of rows and 2 columns
    18         contentPane.setLayout(new GridLayout(0,2));
    19         
    20         contentPane.add(new JLabel("Enter your name"));
    21         contentPane.add(jb);
    22         contentPane.add(tf);
    23         contentPane.add(ta);
    24         //jb.setMnemonic(KeyEvent.VK_I); //Set ShortCut Keys
    25         jb.addActionListener(new ActionListener() {
    26 
    27             public void actionPerformed(ActionEvent arg0) {
    28                 // TODO Auto-generated method stub
    29                 String test = tf.getText();
    30                 if(test.matches("[A-Za-z0-9]{1,6}"))
    31                     ta.setText("ok");
    32                 else if(tf.getText().length()<=0)
    33                     ta.setText("输入不能为空");
    34                 else if(tf.getText().length()>6)
    35                     ta.setText("输入字符长度过长");
    36                 else
    37                     ta.setText("只能输入英文字母或者数字");;
    38                 
    39             }
    40         });
    41     }
    42 
    43     private static void createAndShowGUI() {
    44         JFrame.setDefaultLookAndFeelDecorated(true);
    45 
    46         JFrame frame = new JFrame("GridLayout Source Demo");
    47         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    48 
    49         //Set up the content pane and components in GridLayout
    50         addComponentsToPane(frame.getContentPane());
    51 
    52         frame.pack();
    53         frame.setVisible(true);
    54     }
    55 
    56     public static void main(String[] args) {
    57         javax.swing.SwingUtilities.invokeLater(new Runnable() {
    58             public void run() {
    59                 createAndShowGUI();
    60             }
    61         });
    62     }
    63 }

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

      6、测试结果

      

      

      

      

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

      7、补充说明:此代码运用到的核心知识便是正则表达式的匹配,它很好的解决了字符串的匹配问题,节省了大量的代码量。具体内容可以参照网站

        http://www.w3cschool.cc/regexp/regexp-tutorial.html

      8、欢迎大家对我写的博客批评指正,我会再接再厉。

  • 相关阅读:
    页式管理
    Chord算法(原理)
    php实现反转链表(链表题一定记得画图)(指向链表节点的指针本质就是一个记录地址的变量)($p->next表示的是取p节点的next域里面的数值,next只是p的一个属性)
    js进阶ajax的XMLHttpRequest对象的status和statustext属性(如果ajax和php联合使用的话:open连接服务器的第二个参数文件路径改成请求php的url即可)
    js进阶ajax基本用法(创建对象,连接服务器,发送请求,获取服务器传过来的数据)
    js进阶课程ajax简介(ajax是浏览器来实现的)
    php面试题四
    heredoc(实现模板与代码的分离)
    如何查看计算机所连接的打印机
    php面试题三
  • 原文地址:https://www.cnblogs.com/logicvay2010/p/4357831.html
Copyright © 2011-2022 走看看