zoukankan      html  css  js  c++  java
  • 实验4

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

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

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

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

                       

    解答:

    问题:判断方式不安全,当普通用户或游客输入的userName为admin或者administrator将直接进入管理员页面

    原因:只判断用户名,没有判断密码

    修改:

        public String getUserRole(String username, String password){

           String userRole="guest";

    If(null != password && !“”.equals(password)){

                   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()方法存在的问题,说明问题产生的原因,并修改它

    解答:

    问题没有判断用户输入的类型:是否未输入,输入的是否符合要求,是否输入包含其他无关字符串?判断错误。

    修改:

    1.Jsp页面修改:

    年龄:<input type="text" name="userAge" onkeyup="value=value.replace(/[^1234567890]+/g,'')"  maxlength=”3”>

    说明:加上以上限制即可限制用户只能输入最多3位数字

    2.修改validateUserAge()方法:

    public boolean validateUserAge(String userAge){

    If(null != userAge && !“”.equals(userAge)){

                

    if(Integer.parseInt(userAge)>=18 && Integer.parseInt(userAge)<=26){

                                    return true;

                               }

    else{

                  return false;

    }

                   }                

    else{

                    return false;

    }

    }

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

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

     解答:

    所需判断

    有效

    无效

    三位非0正整数abc

    不输入0

    输入0

    输入

    空白

    输3位

    缺几位或者多几位

    输入正整数

    输入其他字符串

    构成三角形

    输入的数不构成三角形

    实例

    所需判断

    有效

    无效

    三位非0正整数abc

    3    4   5

     0   4    0

    3    4

    A    b   5

    1    1    1

  • 相关阅读:
    hdu 6702 ^&^ 位运算
    hdu 6709 Fishing Master 贪心
    hdu 6704 K-th occurrence 二分 ST表 后缀数组 主席树
    hdu 1423 Greatest Common Increasing Subsequence 最长公共上升子序列 LCIS
    hdu 5909 Tree Cutting FWT
    luogu P1588 丢失的牛 宽搜
    luogu P1003 铺地毯
    luogu P1104 生日
    luogu P1094 纪念品分组
    luogu P1093 奖学金
  • 原文地址:https://www.cnblogs.com/a4yy/p/5511870.html
Copyright © 2011-2022 走看看