逃的过初一逃不过十五之三个输入框文本内容检测的实现及测试

上周偷懒来着,就没有完成EditBox的实现,来进行测试...终于,这周逃不过了,老师布置的任务是完成三个文本框的输入并同时检测文本内容...

题目要求如下:

允许1到6个英文字符或数字,按OK结束
有效等价类: 长度:1到6;字符:a-z,A-Z,0-9 
无效等价类:长度:0,7;字符:英文、数字以外字符,控制字符,标点符号等
略有不同的地方是这回要求三个文本框同时输入内容,点击OK之后同时对三个文本框的内容进行检测,并输出检测结果。
好~偷懒考虑,我就选择了比较好用的JAVA进行实现,主要原因是界面和字符串处理比较易于完成~
好了,代码如下:
package testing;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;

public class testing {
    
    static boolean result;

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        //界面
        JFrame frame = new JFrame();
        frame.setTitle("Testing");
        frame.setSize(250,200);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
        
        JPanel jp_top = new JPanel();
        jp_top.setLayout(null);
        jp_top.setBounds(0, 0, 300,300);
        
        final JTextArea []text = new JTextArea[3];
        for(int i=0;i<3;i++){
            text[i] = new JTextArea();
            text[i].setBounds(20, 20+40*i, 100, 20);
            jp_top.add(text[i]);
        }
        
        JButton button = new JButton("OK!");
        button.setBounds(140, 100, 80, 20);
        jp_top.add(button);
        
        //check        
        result = true;
        button.addMouseListener(new MouseAdapter(){
            public void mouseClicked(MouseEvent e){
                String []str = new String[3];
                for(int i=0;i<3;i++){
                    str[i] = new String();
                    str[i] = text[i].getText();
                }
                for(int i=0;i<3;i++){
                    if(str[i].length()>0 && str[i].length()<7){
                        for(int p=str[i].length()-1;p>=0;p--){
                            if(!Character.isDigit((str[i].charAt(p)))&&!Character.isLetter(str[i].charAt(p))) {
                                result = false;
                                break;                            
                            }
                        }
                    }
                    else {
                        result = false;
                    }
                }
                System.out.println(result);
            }
        });        
        
        frame.add(jp_top);
        frame.repaint();
    }
}

展示一下代码的效果:

嗯...终于算是完成了编码过程,下面进行测试!

回顾一下上周完成的测试用例(采用等价类划分的方法):

No. 输入 预期输出
1 123456 OK
2 abcdef OK
3 ABCDEF OK
4 Aa1Bb2 OK
5 abc OK
6 abcdefg ERROR(字符串长度超过6)
7 空(什么都不输入) ERROR(无输入)
8 abc//b ERROR(包含无效字符)
9 ab,c ERROR(包含无效字符)

由于有多个测试用例,又有三个可供输入的文本框,所以我准备对测试用例进行分组以提高测试的效率。

按照预期输出对测试用例进行了如下的分组(考虑到输出结果要包含各种情况)

(1,2,3),(3,4,5),(1,2,6),(1,2,7),(1,2,8),(1,2,9)

得到测试结果如下:

用例组合 测试结果
(1,2,3) True
(3,4,5) True
(1,2,6) False
(1,2,7) False
(1,2,8) False
(1,2,9) False

总体来说,结果还是很令人满意的...^_^

附上测试过程中的几张截图:

第一次把代码什么的放出来,真是捉急,大家发现有什么错误的话欢迎一块讨论!THX~

 

 

 

 

 

posted @ 2015-03-28 21:32  一班&蔡育锋  阅读(337)  评论(4编辑  收藏  举报