我的账户
啄木鸟学院

专注软件测试菁英教育

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

java-樊江飞-2021-3-15

[复制链接]
皮皮虾学员认证 发表于 2021-3-15 19:45:14 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
在单元测试:
    1、白盒测试,JUnit是java自带的单元测试框架。Testng测试框架。
        python中测试框架unittest、pytest,方便组织用例
        提供测试前置、后置
        @Test 修饰的方法是测试用例。
        @BeforeEach(在每个方法前执行的)、@BeforeAll(在所有方法前执行一次)测试前置
        @AfterEach、@AfterAll 测试后置
    2、白盒测试,针对最小的可执行单位进行测试。java中指方法。
       白盒测试设计技术:
       语句覆盖(覆盖度低):每个语句至少执行一次。
       判断覆盖/分支覆盖:(a<=0||b<=0||c<=0)是一个判定点。这个判定点的true/false至少覆盖一次。
            用例1:a=0,b=1,c=1 判定点的结果为true:
            用例2:a=1,b=1,c=1 判定点的结果为false。(两个用例达到判定效果)
       条件覆盖:(a<=0||b<=0||c<=0)是一个判定点。a<=0是一个条件。
                判定点是由一个条件或多个条件组合成的。
                每个条件的true/false至少覆盖一次。
                用例1:a=0,b=1,c=1  a true b false c false  判定点的结果:true
                用例2:a=1,b=0,c=0  a false b true c true   判定点的结果:true
                用例3:a=1,b=1,c=1  a false b false c false 判定点的结果:false。
       判断-条件覆盖:每个条件的true、false至少覆盖一次:每个判定点的true、false至少覆盖一次。
       组合条件覆盖:判定点中各个条件可能的组合至少出现一次。
                用例1:a=0,b=1,c=1 a决定判定点的结果
                用例2:a=1,b=1,c=1
                用例3:a=1,b=0,c=1 b决定判定点的结果
                用例4:a=1,b=1,c=0 c决定判定点的结果
       路径覆盖(覆盖度最高):基于流程图,把流程图画出来,覆盖每一条路径。
                覆盖度越高,测试设计越复杂,用例越多,执行起来耗时。
                最终的用例,多种测试设计方法组合在一起使用。

package equ.model;
/*
设备信息的类,属性与数据库中字段一致
增加get/set
*/
public class Equ {
    private String id;
    private String name;
    private String location;
    private String baoFei;
    private String buyTime;
    private String baoFeiTime;
    private String record;

    //只设置前三个,后面给默认值,简化设备录入
    public Equ(String id, String name, String location) {
        this.id = id;
        this.name = name;
        this.location = location;
        this.baoFei = "否";
        this.buyTime = "2021-3-15";
        this.baoFeiTime = "2099-1-1";
        this.record = "无";
    }
    public Equ(String id, String name, String location, String baoFei, String buyTime, String baoFeiTime, String record) {
        this.id = id;
        this.name = name;
        this.location = location;
        this.baoFei = baoFei;
        this.buyTime = buyTime;
        this.baoFeiTime = baoFeiTime;
        this.record = record;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location;
    }

    public String getBaoFei() {
        return baoFei;
    }

    public void setBaoFei(String baoFei) {
        this.baoFei = baoFei;
    }

    public String getBuyTime() {
        return buyTime;
    }

    public void setBuyTime(String buyTime) {
        this.buyTime = buyTime;
    }

    public String getBaoFeiTime() {
        return baoFeiTime;
    }

    public void setBaoFeiTime(String baoFeiTime) {
        this.baoFeiTime = baoFeiTime;
    }

    public String getRecord() {
        return record;
    }

    public void setRecord(String record) {
        this.record = record;
    }

    @Override
    public String toString() {
        return "Equ{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", location='" + location + '\'' +
                ", baoFei='" + baoFei + '\'' +
                ", buyTime='" + buyTime + '\'' +
                ", baoFeiTime='" + baoFeiTime + '\'' +
                ", record='" + record + '\'' +
                '}';
    }
}
public class SqliteDb {
    // 连接数据库
    private Connection connect() {
        // jdbc:subprotocol:subname
        // jdbc:数据库类型:数据库相对于工程的路径
        String url = "jdbc:sqlite:src/equ/db/equ.db";
        try {
            // 加载类
            Class.forName("org.sqlite.JDBC");
            // 连接数据库
            Connection conn = DriverManager.getConnection(url);
            System.out.println("连接数据库成功");
            return conn;
        } catch (Exception e) {
            System.out.println("连接数据库异常,异常信息为:" + e.getLocalizedMessage());
        }
        return null;
    }

    // 断开数据库
    private void disconnect(Connection conn) {
        try {
            conn.close();
        } catch (SQLException e) {
            System.out.println("断开数据库异常,异常信息为:" + e.getMessage());
        }
    }

    // 执行sql语句,执行插入、删除、更新类的操作,返回true/false
    private boolean executeUpdate(Connection conn,String sql) {
        // Statement是执行sql语句的接口
        Statement statement = null;
        try {
            statement = conn.createStatement();
            int count = statement.executeUpdate(sql);
            System.out.println("执行sql语句成功,影响" + count + "条数据");
            statement.close();
            return count >= 1;
        } catch (SQLException e) {
            System.out.println("执行sql语句异常,异常信息为:" + e.getMessage());
        }
        return false;
    }

    // 执行sql语句,执行查询类的操作,返回查询的结果
    private List<Equ> executeQuery(Connection conn, String sql) {
        List<Equ> equs = new ArrayList<>();
        Statement statement = null;
        try {
            statement = conn.createStatement();
            ResultSet rs = statement.executeQuery(sql);
            if (rs != null) { // 查询结果不为空
                while (rs.next()) {
                    // 根据列明获取每一列的值
                    String id = rs.getString("id");
                    String name = rs.getString("name");
                    String location = rs.getString("location");
                    String baofei = rs.getString("baofei");
                    String buyTime = rs.getString("buyTime");
                    String baoFeiTime = rs.getString("baoFeiTime");
                    String record = rs.getString("record");
                    // 根据获取的信息构造Equ对象
                    Equ equ = new Equ(id, name, location, baofei, buyTime, baoFeiTime, record);
                    equs.add(equ);
                }
                System.out.println("执行sql语句,查询到" + equs.size() + "条数据");
            }
        } catch (SQLException e) {
            System.out.println("执行sql语句异常,异常信息为:" + e.getMessage());
        }
        return equs;
    }
回复

使用道具 举报

关注0

粉丝0

帖子25

发布主题
大家都在学
课堂讨论
一周热帖排行最近7x24小时热帖
关注我们
专注软件测试菁英教育

客服电话:17792550360

客服时间:9:00-21:00

卓目鸟学苑 - 专注软件测试菁英教育!( 陕ICP备2025058934号-2 )

版权所有 © 西安菁英教育科技有限公司 2023-2026