• 三个输入框的测试报告


     

    三个输入框的测试报告

    规格要求:

    设计输入三个输入框,每个输入框中只能输入长度为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的数字和字母的规则
    "
    53                         + "第一个出错的是输入框" + (i + 1), "输入不符合规则",
    54                         JOptionPane.ERROR_MESSAGE);
    55                 return;
    56             }
    57         }
    58         JOptionPane.showMessageDialog(null, "输入符合规则!", "输入符合规", 1);
    59     }
    60 }
    View JavaFX Code

    设计测试

      对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 }
    View InputTest.java

      运行测试,测试全部通过。截图如下:

      对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)

  • 相关阅读:
    bash 教程 shell 基础语法
    使用 Flutter 开发 Windows 桌面应用 [MD]
    小tips:使用babelupgrade从babel6升级babel7
    JS的可选链操作符(?.)与双问号(??),你用到了吗?
    JS处理html的编码(encode)与解码(decode)
    pdf A3 到 A4
    grub4dos 制作U盘启动盘
    amixer的用法
    一个tomcat设置多个端口
    PostgreSQL 配置内存参数
  • 原文地址:https://www.cnblogs.com/test-tech/p/4375811.html
Copyright © 2020-2023  润新知