三个输入框的测试报告
规格要求:
设计输入三个输入框,每个输入框中只能输入长度为1-6的字幕或数字。
实现功能
使用java实现功能。代码如下:

1 public class Input extends Application {
2
3 public static void main(String[] args) {
4 launch();
5 }
6
7 @Override
8 public void start(Stage stage) throws Exception {
9 // draw UI and set evnetListenners
10 VBox root = new VBox(10);
11 TextField[] inputField = new TextField[3];
12 for (int i = 0; i < 3; i++) {
13 inputField[i] = new TextField();
14 }
15 Button btn = new Button("OK!");
16 btn.setOnAction(new CheackInputsListenner(inputField));
17 root.getChildren().addAll(inputField[0], inputField[1], inputField[2],
18 btn);
19 root.setAlignment(Pos.CENTER);
20 Scene scene = new Scene(root, 200, 150);
21 stage.setTitle("输入测试");
22 stage.setScene(scene);
23 stage.show();
24 }
25 }
26
27 class CheackInputsListenner implements EventHandler<ActionEvent> {
28 private TextField[] textFields;
29
30 CheackInputsListenner(TextField[] tFields) {
31 textFields = tFields;
32 }
33
34 private boolean inputValid(String input) {
35 if (input == null || input.equals("") || input.length() > 6) {
36 return false;
37 }
38 for (int i = 0; i < input.length(); i++) {
39 if (!Character.isAlphabetic(input.charAt(i))
40 && !Character.isDigit(input.charAt(i))) {
41 return false;
42 }
43 }
44 return true;
45 }
46
47 @Override
48 public void handle(ActionEvent ae) {
49 for (int i = 0; i < textFields.length; i++) {
50 String input = new String(textFields[i].getText());
51 if (!inputValid(input)) {
52 JOptionPane.showMessageDialog(null, "输入不符合长度为1-6的数字和字母的规则\n"
53 + "第一个出错的是输入框" + (i + 1), "输入不符合规则",
54 JOptionPane.ERROR_MESSAGE);
55 return;
56 }
57 }
58 JOptionPane.showMessageDialog(null, "输入符合规则!", "输入符合规", 1);
59 }
60 }
设计测试
对inputValid()的单元测试
利用JUnit框架可以生成测试代码。

1 public class InputTest {
2
3 @Before
4 public void setUp() throws Exception {
5 }
6
7 @Test
8 public void testInputValid_1() {
9 assertEquals(false, Input.inputValid(null));
10 }
11
12 @Test
13 public void testInputValid_2() {
14 assertEquals(false, Input.inputValid(""));
15 }
16
17 @Test
18 public void testInputValid_3() {
19 assertEquals(true, Input.inputValid("1"));
20 }
21
22 @Test
23 public void testInputValid_4() {
24 assertEquals(true, Input.inputValid("asdf"));
25 }
26
27 @Test
28 public void testInputValid_5() {
29 assertEquals(true, Input.inputValid("2el"));
30 }
31
32 @Test
33 public void testInputValid_6() {
34 assertEquals(false, Input.inputValid("sdf "));
35 }
36
37 @Test
38 public void testInputValid_7() {
39 assertEquals(false, Input.inputValid(".sf"));
40 }
41
42 @Test
43 public void testInputValid_8() {
44 assertEquals(false, Input.inputValid("asfasdfasdf"));
45 }
46
47 @Test
48 public void testInputValid_9() {
49 assertEquals(false, Input.inputValid("3*"));
50 }
51
52 }
运行测试,测试全部通过。截图如下:

对GUI界面的黑盒测试
先划分边界,对单个输入框,可将要求分为两条1) 长度1-6. 2)字母或数字。会有如下的等价类划分。
|
长度小于1-6 |
1 |
长度小于1 |
4 |
|
长度大于6 |
5 |
||
|
输入字母 |
2 |
输入既不是数字也不是字母 |
6 |
|
输入数字 |
3 |
对应上面的等价类划分,可以设计单个输入框的测试用例。
|
测试用例编号 |
测试用例输入 |
所覆盖的等价类 |
|
1 |
a |
1,2 |
|
2 |
adedfs |
1,2 |
|
3 |
2 |
1,3 |
|
4 |
235212 |
1,3 |
|
5 |
2n34AD |
1,2,3 |
|
6 |
无输入 |
4 |
|
7 |
asdfghj |
5,2 |
|
8 |
1234567 |
5,3 |
|
9 |
3qojlwkej23i4oj |
5,2,3 |
|
10 |
sd./a |
1,6 |
对应到三个输入框上面,除了全都正确的输入以外,还有每个输入框哟一个错误的情况,所以有4种类情况
|
|
1 |
2 |
3 |
4 |
|
输入框1 |
F |
T |
T |
T |
|
输入框2 |
T |
F |
T |
T |
|
输入框3 |
T |
T |
F |
T |
|
预计输出 |
不符合规则 |
不符合规则 |
不符合规则 |
符合规则 |
可以设计出具体的测试用例如下
|
对应编号 |
A |
B |
C |
D |
|
测试用例组合 |
9,3,5 |
1,7,4 |
1,2,6 |
1,1,1 |
|
1,2,7 |
1,1,2 |
|||
|
1,2,8 |
1,1,3 |
|||
|
1,2,9 |
1,1,4 |
|||
|
1,2,10 |
1,1,10 |
|||
|
预计输出 |
不符合规则 |
不符合规则 |
不符合规则 |
符合规则 |
运行测试
测试结果如下
|
测试用例 |
期望输出 |
实际输出 |
是否符合期望 |
|
1,1,1 |
符合规则 |
符合规则 |
是 |
|
1,1,2 |
符合规则 |
符合规则 |
是 |
|
1,1,3 |
符合规则 |
符合规则 |
是 |
|
1,1,4 |
符合规则 |
符合规则 |
是 |
|
1,1,10 |
符合规则 |
符合规则 |
是 |
|
1,2,6 |
不符合规则 |
不符合规则 |
是 |
|
1,2,7 |
不符合规则 |
不符合规则 |
是 |
|
1,2,8 |
不符合规则 |
不符合规则 |
是 |
|
1,2,9 |
不符合规则 |
不符合规则 |
是 |
|
1,2,10 |
不符合规则 |
不符合规则 |
是 |
|
1,7,4 |
不符合规则 |
不符合规则 |
是 |
|
9,3,5 |
不符合规则 |
不符合规则 |
是 |
部分测试截图
|
(1,1,5) |
(1,2,6) |
|
|
|
|
(1,7,4) |
(9,3,5) |
|
|
|
来源:https://www.cnblogs.com/test-tech/p/4375811.html




