软件测试 实验
实验五 测试技术
实验目的
(1) 根据实际情况,综合应用各种软件测试技术
(2) 熟练掌握MyEclipse+Junit的Java编程和单元测试
实验内容
一、 找出函数中存在的问题。以下题目均在Lab05项目中完成。
1、 请给MySQLConnBean.java中的类和每个方法都加上注释
package org.easybooks.bookstore.jdbc;
/*
* 功能:通过JDBC连接MySQL
* 作者:某人
* 时间:2016年5月20日
*
*/
import java.sql.*;
public class MySQLConnBean {
private Statement stmt=null; //定义执行sql语句变量
private Connection conn=null; //定义执行数据库连接变量
private ResultSet rs=null; //定义结果变量
public void openConn() throws Exception { //根据用户名和密码连接数据库
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/test";
String user="root";
String password="123456";
conn=DriverManager.getConnection(url, user, password);
}
public ResultSet execQuery(String sql){ //获得传入的sql语句并执行
rs=null;
try{
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(sql);
}catch (SQLException e) {
System.err.println("Data.executeQuery:"+e.getMessage());
}
return rs;
}
public void closeStmt(){ //关闭数据库连接
try{
stmt.close();
}catch(SQLException e){
System.err.println("Data.executeQuery:"+e.getMessage());
}
}
public void closeConn(){ //关闭数据库连接
try{
conn.close();
}catch(SQLException e){
System.err.println("Data.executeQuery:"+e.getMessage());
}
}
}
2、 找出项目中存在的缺陷,并给出解决的方案(至少3个,不包含下面那个举例)。
说明:这里所说的缺陷不一定都是错误,而是明显需要改进的地方。
如:不可以无限输入密码,容易被暴力破解,存在安全隐患。
解决方案:密码输入3次错误,关闭浏览器。最好再加上验证码。
1.对账号没有规范,符号紊乱。
解决方案:规范账号输入的字符要求。
2.jsp文件应该放入 WEB-inf中,直接访问
3.没有账号类型辨别,便于区分不同账号的权限.
二、 请按要求对下面的Java代码进行测试。代码的功能是:用折半查找法在元素呈升序排列的数组中查找值为key的元素。
(1) 要求采用基本路径法给出程序控制流图;
(2)
(3) 算出环路复杂性
(4) 环形复杂度=闭合区数=4
(5) 给出所有的独立路径,以及对应的测试用例和预期结果
1.1 2 3 4 5 6 7 12 13 14
满足测试用例key==ary[]=7,8,9key=8预期结果跳到7,12
2.1 2 3 4 13 14
满足测试用例low>high ary[]=4,3,2,1 low=4 high=1预期结果跳到4,13
3.1 2 3 4 5 6 8 9 12 13 14
满足测试用例 key<ary[mid]7,8,9key=7预期结果跳到9
4.1 2 3 4 5 6 8 10 11 12 13 14
测试用例key>ary[mid]7,8,9key==9预期结果跳到10,11