菁英科技(卓目鸟学苑)- 专注软件测试菁英教育
标题:
java-武浩杰-2021-3-15
[打印本页]
作者:
海底月是天上月
时间:
2021-3-15 19:49
标题:
java-武浩杰-2021-3-15
1.单元测试
1.白盒测试,JUnit是Java自带的的单元测试框架. Testing测试框架
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=0,c=0, c决定判定点的结果
路径覆盖(覆盖度高): 基于流程图的,把流程图画出来,覆盖每一条路径
覆盖度越高,测试设计越复杂,用例越多,执行起来耗时
最终的用例,多种测试设计方法组合在一起使用
操作sqlite数据库,实现对数据库的增删改查功能
JDBC Mysql,sqlite有对应的jar,maven的官网上下载
*/
public class SqliteDb {
//连接数据库
private Connection connect() {
//jdbc:subprotocol:subname
// dbc: 数据库类型:数据库相对于工程的路径
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.getMessage());
}
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;
}
// 创建表
private static void initTable(){
SqliteDb db = new SqliteDb();
Connection conn = db.connect();
db.executeUpdate(conn,"create table if not exists equ(id varchar(8) primary key,"+
"name varchar(32),location varchar(32),baoFei varchar(32),buyTime varchar(32),"
+"baoFeiTime varchar(16),record varchar(128))");
db.disconnect(conn);
}
ate(conn,"create table if not exists equ(id varchar(8) primary key,"+
"name varchar(32),location varchar(32),baoFei varchar(32),"+
"buyTime varchar(32),baoFeiTime varchar(16),record varchar(128))");
db.executeUpdate(conn,"insert into equ values('10002','14寸笔记本电脑','1018房间','否','2021-1-1','无','无')");
db.executeUpdate(conn,"insert into equ values('10001','14寸笔记本电脑','1018房间','是','2021-1-1','2021-2-1','2015-1-1换主板;2016-2-2增加内存')");
db.executeUpdate(conn,"delete from equ where id='10002'");
List<Equ> equs = db.executeQuery(conn,"select * from equ;");
System.out.println(equs);
db.disconnect(conn);
SqliteDb.initTable();
Equ equ = new Equ("10005","电视","1019房间");
SqliteDb.addEqu(equ);
Equ equ1 = new Equ("10006","路由器","1019房间"
,"否","2019-4-5","无","");
SqliteDb.addEqu(equ1);
SqliteDb.deleteEqu("10001");
SqliteDb.queryAll();
欢迎光临 菁英科技(卓目鸟学苑)- 专注软件测试菁英教育 (http://www.zmnxy.com/)
Powered by Discuz! X3.4