【软件测试】实现Editing Boxing并测试

  • 问题描述

    • 输入区间仅允许输入1到6个英文字符或数字,按submit结束
    • 若输入不符合要求输出错误信息

  • 等价划分类
有效等价类 无效等价类
E1:长度: 1到6  T1: 长度: 0,7
E2:字符: a-z,A-Z,0-9 T2: 英文、数字以外字符,控制字符,标点符号

    对于一个Editing Boxing来说:

  长度:字符  
C (正确输入) E1:E2 输入正确
W1(一类错误输入) E1:T2 输入输入字符不完全为英文和数字组成
W2(二类错误输入) T1:E2 输入长度超过6或输入为空
W3(三类错误输入)   输入为空
  • 设计测试用例
编号 测试用例 预期输出
text1 text2 text3 text1 text1 text3
1(CCC) "abc2" "abc2" "abc2" 输入正确 输入正确 输入正确
2 (W3W3W3) "" "" "" 输入为空 输入为空 输入为空
3 (W2W2W2) "abc22dd" "abc22dd" "abc22dd" 输入长度超过6 输入长度超过6 输入长度超过6
4 (W1W1W1) "abc\\" "abc\\" "abc\\" 输入字符不完全为英文和数字组成 输入字符不完全为英文和数字组成 输入字符不完全为英文和数字组成
5(CCW3) "abc2" "abc2" "" 输入正确 输入正确 输入为空
6(CW2C) "abc2" "abc22dd" "abc2" 输入正确 输入长度超过6 输入正确
7(W1CC) "abc\\" "abc2" "abc2" 输入字符不完全为英文和数字组成 输入正确 输入正确
8(CW3W1) "abc2" "" "abc\\" 输入正确 输入为空 输入字符不完全为英文和数字组成
9(W3CW2) "" "abc2" "abc22dd" 输入为空 输入正确 输入长度超过6
10(W2W1C) "abc22dd" "abc\\" "abc2" 输入长度超过6 输入字符不完全为英文和数字组成 输入正确
11(W3W1W2) "" "abc\\" "abc22dd" 输入为空 输入字符不完全为英文和数字组成 输入长度超过6
  • 代码
import javax.swing.JOptionPane;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class editboxing extends Application {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        editboxing.launch( args );
    }

    TextField textfield1 = new TextField();
    TextField textfield2 = new TextField();
    TextField textfield3 = new TextField();

    @Override
    public void start(Stage primaryStage) throws Exception {
        // TODO Auto-generated method stub
        primaryStage.setTitle("Editing Boxing");

        VBox root = new VBox( 30 );
        Scene scene = new Scene( root, 400, 200 );
        primaryStage.setScene( scene );

        HBox hbox1 = new HBox( 20 );
        textfield1.setPrefColumnCount( 25 );
        hbox1.setAlignment( Pos.CENTER_LEFT );
        hbox1.getChildren().addAll( new Label( "text1:" ), textfield1 );

        HBox hbox2 = new HBox( 20 );
        textfield2.setPrefColumnCount( 25 );
        hbox2.setAlignment( Pos.CENTER_LEFT );
        hbox2.getChildren().addAll( new Label( "text2:" ), textfield2 );

        HBox hbox3 = new HBox( 20 );
        textfield3.setPrefColumnCount( 25 );
        hbox3.setAlignment( Pos.CENTER_LEFT );
        hbox3.getChildren().addAll( new Label( "text3:" ), textfield3 );

        HBox hbox4 = new HBox( 20 );
        Button btn = new Button();
        btn.setText( "submit" );
        btn.setOnAction( new Listener() );
        btn.setAlignment( Pos.CENTER );
        hbox4.getChildren().addAll( btn );
        hbox4.setAlignment( Pos.CENTER );
        root.getChildren().addAll( hbox1, hbox2, hbox3, hbox4 );
        primaryStage.show();
    }

    public class Listener implements EventHandler<ActionEvent> {

        @Override
        public void handle(ActionEvent arg0) {
            // TODO Auto-generated method stub
            String text1 = textfield1.getText();
            String text2 = textfield2.getText();
            String text3 = textfield3.getText();

            String inf1 = testing( text1, "text1" );
            String inf2 = testing( text2, "text2" );
            String inf3 = testing( text3, "text3" );

            String inf = inf1 + "\n" + inf2 + "\n" + inf3;
            JOptionPane.showMessageDialog( null, inf, "information",
                    JOptionPane.INFORMATION_MESSAGE );
        }

        public String testing( String arg, String arg1 ) {
            String ans = "";
            if( arg == null || arg.equals( "" ) ){
                ans = arg1 + " 输入为空!";
            }
            else if( arg.length() > 6){
                ans = arg1 + " 输入字符长度大于6";
            }
            else{
                boolean pcount = true;
                for(int i = 0; i < arg.length(); i++ ) {
                    if( !( isChar( arg.charAt(i) ) || isNum( arg.charAt(i) ) ) ) {
                        pcount = false;
                        break;
                    }
                }

                if( pcount ) {
                    ans = arg1 + " 输入正确";
                }
                else {
                    ans = arg1 + " 输入字符不完全为英文字符和数字组成";
                }
            }

            return ans;
        }

        public boolean isChar( char arg1 ) {
            if( ( arg1 >= ‘a‘ && arg1 <= ‘z‘ ) || ( arg1 >= ‘A‘ && arg1 <= ‘Z‘ ) ) {
                return true;
            }
            else {
                return false;
            }
        }

        public boolean isNum( char arg1 ) {
            if( arg1 >= ‘0‘ && arg1 <= ‘9‘ ) {
                return true;
            }
            else {
                return false;
            }
        }
    }
}
  • 测试

    1.

    2.

    3.

    4.

    5.

    6.

    7.

    8.

    9.

    10.

    11.

时间: 2024-12-16 09:17:33

【软件测试】实现Editing Boxing并测试的相关文章

在国外,资深的软件测试人员大多是手动测试,他们厉害之处在于测试用例的设计,但在国内,很多测试人员都把自动化测试当成很厉害的资本,为什么?

导语:”在国外,资深的软件测试人员大多是手动测试,他们厉害之处在于测试用例的设计,但在国内,很多测试人员都把自动化测试当成很厉害的资本,为什么?” 偶然在知乎上看到一篇关注度很高的话题,标题如上. 作为一名从业8年有余的软件测试工程师,并且一直在外企做测试的我, 忍不住想发表一些自己的看法和见解. 我觉得在国内,很多公司或者个人把自动化测试当成一个了不起的资本,根本是源于国内大家对代码的无上崇拜,这也造就了国内现在IT互联网行业内一个鄙视链: 开发---> 测试开发--->自动化测试---&g

软件测试、ios中的测试概念以及步骤

软件测试: 软件测试的目标是应该服务于软件项目的目标,可以通过建议反馈使用更加高效的方法和工具,提升软件开发效率以及软件开发质量.同时还可以通过过一些手段,更早.更快.更多地发现缺陷,从容降低了这些缺陷带来的风险. 软件测试是为了消除更加多的bug,虽然没有能够消除彻底. 但是软件的质量不是通过软件测试,而是软件开发工程师决定的. 软件测试的好处: 1.测试可以对软件预防,然后反应给软件开发工程师,所以及时快速的找到错误. 2.对软件缺陷的检测. 软件测试的类型: 单元测试(Unit Tests

软件测试第七周——互联网测试

学写了软件测试之后,忽然想到了现在比较火的互联网行业.便去了解了一下互联网测试和学习到软件测试的区别. 先说一下互联网测试的变化: 1. 最大的不同就是互联网的产品很多都是自己来部署和运营,用户只要用一个瘦客户端就能使用. 这里的瘦客户端是一个浏览器,一个App,或者一个需要安装的client,但是核心的数据和业务逻辑主要在互联网公司的机房里面,在IDC,在云端.这里和以前的C/S, B/S架构的企业系统的主要区别在于为多大范围的人来服务以及谁来运营和运维这样的系统.所以自然的,就多了很多的这方

软件测试学习笔记week 3 --- 测试框架初体验

测试框架初体验 在这周的软件测试课上,第一次了解了软件测试框架的概念.软件测试框架包含的范围非常广,从自动化测试框架到单元测试框架以及性能测试框架.在上个寒假中,在学习Coursera的在线课程时发现普林斯顿的单元测试做得非常强大,从程序正确性到Time consuming甚至Memory consuming,几乎能发现程序中的每一处错误或者缺陷.因此,在上完了这周的课程后,我查阅了一些资料,做了这篇随笔记录了解到的单元测试的知识. 一.什么是测试框架 要认识测试框架,首先要对所谓框架有概念.框

软件测试概述、结构化测试

一.软件测试的目的 是在最小的成本和最短的时间内,通过设计良好的测试规程和测试用例,系统地发现不同类别的错误. 二.软件测试的基本原则 设计好的测试用例.不可能进行穷举测试.尽早开展测试.重点测试.定期进行检验与修正测试用例,并增加新的测试用例.测试依赖于系统环境.测试用例应该包含合理和不合理的输入条件. 测试过程模型 V模型特点:1.对应瀑布模型的变种(自下到上)线性关系 2.有局限性,在于不能体现"尽早地和不断地进行软件测试"的原则 3.仅仅把测试过程作为在需求分析.概要设计.详细

软件测试中的α、β、λ测试

一.α.β.λ常用来表示软件测试过程中的三个阶段: α是第一阶段,一般只供内部测试使用: alpha测试 (由用户.测试人员.开发人员共同参与的内部测试) β是第二个阶段,已经消除了软件中大部分的不完善之处,但仍有可能还存在缺陷和漏洞,一般只提供给特定的用户群来测试使用: beta测试 (内测后的公测,交给最终用户测试 公司外部展开的测试,可以由非专业的测试人员执行的测试) λ是第三个阶段,此时产品已经相当成熟,只需在个别地方再做进一步的优化处理即可上市发行. 二. 1.大型通用软件,在正式发布

【软件测试】高情商的测试人员,这么安排开发

测试和开发可以说是前世的一对宿孽,今世的一对儿冤家.开发的工作就是按照PM的设计将产品最终造出来,而测试则是在开发已完成的工作里找错误,寻不是.显然,测试这样的工作会让开发很不爽,其实不但是开发,每个人都不喜欢自己的劳动成果别别人挑毛病.如果测试在工作中不讲究方式方法让已经比较紧张的测试开发关系雪上加霜.所以测试总是很容易就和开发们吵起来,吵得是鸡飞狗跳,就差上手了.这样的场景每天在不同的公司重复上演 即使现在的测试大都是90后的小姑娘,肤白貌美,性格耿直,工作认真负责. 开发们也都是技术牛逼,

《软件测试》实验五:测试技术

一.找出函数中存在的问题. 1. 请给MySQLConnBean.java中的类和每个方法都加上注释 package org.easybooks.bookstore.jdbc; import java.sql.*; public class MySQLConnBean { private Statement stmt=null; private Connection conn=null; private ResultSet rs=null; //通过驱动.MySQL的用户名密码打开数据库连接 p

软件测试学习笔记:主路径测试

(a) (b)当将MAXPRIMES设置2到5直接时.t2=(n=5)会出现越界错误而t1=(n=3)不会 (c)当n=0或1时,程序不会经过while循环. (d) 节点覆盖 TR= {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16} 边覆盖 TR= {(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,5),(6,8),(8,9),(5,9),  (9,10),(9,11),(10,11),(11,12),(2,12),(12,13),