标签:
前景概要:这篇文章主要针对上一篇题目做出一些扩展性的修改,从而导致等价类等价类的变化。这边文章实现了增加至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 |
2 | 123,123,null | 6,9 |
No.0:ok |
3 | 123,123,1234567 | 7,9 |
No.0:ok |
4 | 123,123,123@#¥ | 8,9 |
No.0:ok |
5 | 123,123@#¥,123 | 10 |
No.0:ok |
123,123@#¥,123@#¥ | 11 |
No.0:ok |
|
7 | 123@#¥, 123,123 | 12 |
No.0:只能输入英文字母或者数字 |
8 | 123@#¥, 123,1234567 | 13 |
No.0:只能输入英文字母或者数字 |
9 | 123@#¥, 1234567,123 | 14 |
No.0:只能输入英文字母或者数字 |
10 | 123@#¥, 1234567,null | 15 |
No.0:只能输入英文字母或者数字 |
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、欢迎大家对我写的博客批评指正。
标签:
原文地址:http://www.cnblogs.com/logicvay2010/p/4375898.html