zoukankan      html  css  js  c++  java
  • 三个输入框的测试报告

     

    三个输入框的测试报告

    规格要求:

    设计输入三个输入框,每个输入框中只能输入长度为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)

  • 相关阅读:
    Selenium系列教程(2)
    如何清除浏览器缓存?
    菜鸟学自动化测试(一)----selenium IDE
    Python风格规范
    NSURLSession使用说明及后台工作流程分析
    iOS如何生成.a文件
    Apple移动设备处理器指令集 armv6、armv7、armv7s及arm64
    使用Xcode和Instruments调试解决iOS内存泄露
    Instruments使用实战
    正则表达式在iOS中的运用
  • 原文地址:https://www.cnblogs.com/test-tech/p/4375811.html
Copyright © 2011-2022 走看看