实验四 白盒测试

实验目的

(1) 掌握静态分析代码的技巧

(2) 学习黑盒测试中的等价类划分

实验内容

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

1、 某站点通过用户输入的用户名和密码(在login.jsp登录页中输入)来判断出现什么样的界面,如果是管理员(即用户名为admin或administrator)跳转到管理员页面(welcome_admin.jsp),非管理用户跳转到普通用户界面(welcome.jsp)。游客访问站点是,无需输入用户名和密码,直接进入普通用户界面(welcome.jsp)

要求:找出UserOperation.java文件中的getUserRole ()方法存在的问题,说明问题产生的原因,并修改它

说明:不要求编写Junit单元测试用例,可以自己设想测试数据,通过静态分析,配合动态运行调试找出问题所在。

 我的观点: 在测试过程中我发现判断方式不够存在缺陷,UserOperation类中的 getUserRole方法

public String getUserRole(String userName){
        String userRole="guest";
        String tt=userName;
        if(userName.equals("admin") || userName.equals("administrator")){
            userRole="admin";
        }

        return userRole;
    }

不管是游客还是普通用户,只要用户名为admin或者adminnistrator不用输入密码,都可以直接进入管理员页面,并且不管用户名是否为空,都直接进入普通用户界面,那么游客和普通用户就没有什么差别了。

所以修改如下:

public String getUserRole(String username, String password){
    String userRole="guest";
//假设密码为123456
    If(null != password && !“”.equals(123456)){
             If(null != username && !“”.equals(username)){
                if(userName.equals("admin")||userName.equals("administrator"){
                      userRole="admin";
                }
                return userRole;
            }
             else{
                    return userRole;
              }
   }
  else{
                return userRole;
  }

2、 用户注册(register.jsp)时要输入年龄字段,用户输入的参数由UserOperation.java文件中的validateUserAge()方法,转换为数值型,判断年龄是否在18~26之间(包括18和26),如果年龄在此区间内,则返回true,跳转到login.jsp页,否则弹出提示框,提示“用户年龄输入不正确”。

要求:找出UserOperation.java文件中的validateUserAge()方法存在的问题,说明问题产生的原因,并修改它

问题:在register.jsp中要求输入年龄的时候,如果我输入一个字母或者输入一个非字符的时候会报错

我的观点:没有对年龄字符的判断,如果为字符串等不符合规定的,我们可以做一个强制转换,给用户看,让他们知道只能输入数字。

源代码为:

public boolean validateUserAge(String userAge) throws Exception{
		if(Integer.parseInt(userAge)<18 || Integer.parseInt(userAge)>26){
			return true;
		}

		else{ throw new Exception("您的输入不正确,请重新输入");
	}
	}
}

修改为:

public boolean validateUserAge(String userAge){
      if(Integer.parseInt(userAge)>=18&&Integer.parseInt(userAge)<=26){
            return true;
           }
      else{
             return false;
      }
  }

二、利用黑盒测试中的等价类划分完成以下题目

3、某程序规定:"输入三个非0正整数 a 、 b 、 c 分别作为三边的边长构成三角形(暂不考虑特殊三角形的情况)。请根据给出的说明,用等价类划分法进行划分,并给每个等价类规定唯一的编号。


有效等价类


编号


无效等价类


编号


整数


1


有非整数


7


非零整数


2


有一边或一边以上为零


8


两边为零


9


三遍为零


10


正整数


3


负整数


11


a+b>c


4


a+b<c


12


a+b=c


13


a+c>b


5


a+c<b


14


a+c=b


15


b+c>a


6


b+c<a


16


b+c=a


17

时间: 2024-10-22 22:29:31

实验四 白盒测试的相关文章

闽江学院软件测试实验四作业

1.某公司网站的后台管理有一个用户注册的功能需要测试,该测试为黑盒测试,请用表格的方式给出该功能的测试用例(参考课本P107页).用户注册功能描述如下: (1)       管理员必须先登录,方可进入网站后台管理,进入后台管理界面后可以进行用户注册(假设用户注册的URL地址为http://www.fengt.com/Admin/UserRegister.jsp) (2)       用户注册要求输入用户名.密码.密码确认.邮箱,这4项内容均不能为空 (3)       用户名要求6-10个字符,

软件测试 - 实验四

一.找出函数中存在的问题.以下题目均在Lab04项目中完成. 1. 某站点通过用户输入的用户名和密码(在login.jsp登录页中输入)来判断出现什么样的界面,如果是管理员(即用户名为admin或administrator)跳转到管理员页面(welcome_admin.jsp),非管理用户跳转到普通用户界面(welcome.jsp).游客访问站点是,无需输入用户名和密码,直接进入普通用户界面(welcome.jsp). 要求:找出UserOperation.java文件中的getUserRole

软件测试实验四----mujava变异测试

1.整个路径结构 2.具体内容 2.1mujava的安装 2.1.1更改CLASSPATH环境变量,使命令行可以找到mujava的路径,方便之后mujava的使用. 2.1.2在系统某一路径下按照格式创建文件夹 2.1.3下载mujava.config文件并放置在muJavaHome文件夹中,更改内容为当前路径 2.1.4创建命令文件,方便一会儿使用mujava 在muJavaHome中下创建两个Txt,另存为cmd后缀,方便运行mujava程序. txt分别内容为: GenMutants.cm

实验四+117+陈俊超

实验四 功能自动化测试(2学时) 一.实验目的 1) 学习QTP工具的使用 2)了解黑盒自动化测试 二.实验要求 (1)对被测程序进行黑盒测试用例设计 (2)对QTP的飞机订票系统的任一界面或控件实现自动化测试.(测试的具体自选) (3)写出该程序的缺陷. 三.实验内容 1.对QTP的样例小程序飞机订票系统,实现自动化测试.(学号被3整除,测3a;余1,测3b:余2,测4a) 2.要求: 1)写出飞机订票系统的被测需求. 自行选择需要测试的部分,根据自己的能力,可大,可小. 描述,被测程序,与被

MySQL数据库实验四:嵌套查询

实验四          嵌套查询 一.实验目的 掌握SELECT语句的嵌套使用,实现表的复杂查询,进一步理解SELECT语句的高级使用方法. 二.实验环境 三.实验示例 1.  查询与"刘晨"在同一个系学习的学生. SELECT Sno,Sname,Sdept FROM Student WHERE Sdept  IN (SELECT Sdept FROM Student WHERE Sname= ' 刘晨 '): 用自身连接完成 SELECT  S1.Sno,S1.Sname,S1.

软件测试实验六

请用所学的软件测试知识和技术方法,对bookstore项目中的购物车模块进行测试,并写出测试的缺陷报告. 说明: 1.bookstore项目即实验7发给大家的项目 2.要求至少发现2个缺陷,即要写2份缺陷报告 3.缺陷报告参考课本P264页 4.缺陷报告中的严重度和优先级按照课本P263页中规定的严重度和优先级 5.页面布局.美观.链接等不符合需求,也算缺陷,但本题请不要写这些方面的缺陷,否则不给分. 购物车模块缺陷报告 缺陷编号:01.01.01                        

操作系统 实验四主存空间的分配和回收

实验四主存空间的分配和回收 1.    目的和要求 1.1.           实验目的 用高级语言完成一个主存空间的分配和回收程序,以加深对动态分区分配方式及其算法的理解. 1.2.           实验要求 采用连续分配方式之动态分区分配存储管理,使用首次适应算法.循环首次适应算法.最佳适应算法和最坏适应算法4种算法完成设计. (1)**设计一个作业申请队列以及作业完成后的释放顺序,实现主存的分配和回收.采用分区说明表进行. (2)或在程序运行过程,由用户指定申请与释放. (3)设计一

20145311实验四 &quot;Java网络编程及安全&quot;

20145311实验四 "Java网络编程及安全" 程序设计过程 实验内容 ·掌握Socket程序的编写:·掌握密码技术的使用:·设计安全传输系统 ·利用加解密代码包,编译运行代码,一人加密,一人解密:·集成代码,一人加密后通过TCP发送: 实验步骤 在这之前进行了一个socket连接的例子:用百度做了个实验 下面是两人合作进行RSA的加密: 首先建立一个Socket对象,用来连接特定服务器的指定端口(我负责的是服务器端,郑凯杰负责的是客户端,所以也就是输入我这边的ip地址),输入的参

实验四报告

20145339顿珠达杰 实验四 "Andoid开发基础" 实验内容 使用 Android Studio 设计“Hello!20145339顿珠达杰” 在亦徐同学的帮助下   终于成功了!!!