实验5

《软件测试》实验

实验五 测试技术                                                      

 

实验目的

 

(1)       根据实际情况,综合应用各种软件测试技术

(2)       熟练掌握MyEclipse+Junit的Java编程和单元测试

 

实验内容

 

一、  找出函数中存在的问题。以下题目均在Lab05项目中完成。

 

1、  请给MySQLConnBean.java中的类和每个方法都加上注释

  package org.easybooks.bookstore.jdbc;

 

import java.sql.*;

/**

 * 该类专门负责用户与数据库进行连接

 * @author 徐小青

 * 更新时间:2016-4-22

 */

 

public class MySQLConnBean {

    private Statement stmt=null;

    private Connection conn=null;

    private ResultSet rs=null;

   

/**

 * 该方法是用来加载mysql数据库驱动,识别数据库的用户名和密码,

 * @throws Exception

 */

    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);

    }

   

   

    /**

     * 该方法主要是获得一个MySQL的实例,后执行MySQL语句

     * @param sql

     * @return 返回结果集

     */

   

    public ResultSet execQuery(String 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个,不包含下面那个举例)。

说明:这里所说的缺陷不一定都是错误,而是明显需要改进的地方。

1.在open()方法中,当找不到数据库的名字和密码时会出现错误

         解决方案:在那方法中加try catch()捕捉异常

   2.密码未加密,存在安全隐患

            解决方案:采用非加密算法对密码进行加密(如:MD5加密),再存入数据库。                   登录时采用同样的算法进行解密。

       3.不登录,一样也可以进入welcome.jsp页,访问网站内容

       解决方案:对于只有登录用户才能访问的页,要判断session,或者用拦截器、过滤器

如:不可以无限输入密码,容易被暴力破解,存在安全隐患。

解决方案:密码输入3次错误,关闭浏览器。最好再加上验证码。

 

二、  请按要求对下面的Java代码进行测试。代码的功能是:用折半查找法在元素呈升序排列的数组中查找值为key的元素。 

 

(1)       要求采用基本路径法给出程序控制流图;

(2)       算出环路复杂性

(3)       给出所有的独立路径,以及对应的测试用例和预期结果

程序控制流图

 

(2)环路复杂性:

16-14+2=4

(3)独立路径:

1.1-2-3-4-13-14

2.1-2-3-4-5-6-7-12-4-13-14

3.1-2-3-4-5-6-8-9-12-4-13-14

4.1-2-3-4-5-6-8-10-11-12-4-13-14

 

设计测试用例

 

用例编号

     路径

   输入数据

  预期输出

1

1

Array[]={};key=1

-1

2

2

Array[3]={2,4,6};

Key=4

 

1

3

3

Array[3]={2,4,6,8}

Key=4

 

0

4

4

Array[4]={2,4,6,8}

Key=6

2

posted @ 2016-05-20 16:02  月读命  阅读(137)  评论(0编辑  收藏  举报