《软件测试》实验四

 白盒测试                                                       

 实验目的

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

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

实验内容

 

一、 找出函数中存在的问题。以下题目均在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()方法存在的问题,说明问题产生的原因,并修改它

 

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

答:

问题:用户没有判断类型,不知道是否有输入值

解决:

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

 

转载于:https://www.cnblogs.com/xianggege/p/5517579.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490685.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++对字符串每个字母按照字典顺序排序

#include<iostream> #include<string> #include<algorithm> using namespace std;int main() {string ss"hello";sort(ss.begin(),ss.end());cout<<ss<<endl; //ehlloreturn 0; }

快搜浏览器_让微软丢大脸的edge浏览器终于出新版了!

九月份&#xff0c;基于 Chromium 内核的全新微软 Edge 浏览器开启 Beta 版本的测试&#xff0c;我看到使用全新内核的edge浏览器&#xff0c;以及官方加入的 IE 模式、隐私工具等一些更好用的新功能后&#xff0c;我暂时放下用了很长时间的老版本的edge浏览器&#xff0c;投入…

逻辑回归实现多分类任务(python+TensorFlow+mnist)

逻辑回归实现多分类任务&#xff08;pythonTensorFlowmnist&#xff09; 逻辑回归是统计学中的一种经典方法&#xff0c;虽然叫回归&#xff0c;但在机器学习领域&#xff0c;逻辑回归通常情况下当成一个分类任务&#xff0c;softmax就是由其演变而来&#xff0c;逻辑回归一般用…

物理哲学和生物哲学的对抗

来源&#xff1a;科学技术哲学相对论革命在上一讲中&#xff0c;我们提到第二次科学革命始于18世纪后期的化学革命&#xff0c;它的两大标志是&#xff1a;1. 近代西方科学的古典科学传统和培根科学传统融合&#xff0c;西方科学现代化&#xff1b;2. 科学和技术结合&#xff0…

pytorch将label转为one hot形式

label_one_hot torch.nn.functional.one_hot(labels, self.num_classes).float().to(self.device) https://pytorch.org/docs/stable/nn.functional.html#torch.nn.functional.one_hot

输入相关函数

1、cin>> &#xff08;1&#xff09;用法一&#xff1a;输入一个数字 #include using namespace std; main () { int a,b; cin>>a>>b; cout<<ab<<endl; } 输入&#xff1a; 2[回车]3[回车] 输出&#xff1a; 5 &#xff08;2&#xf…

cpu开核_新锐龙让AMD重返巅峰,但逆袭的50年里这些CPU也不应忘记

AMD从成立至今无疑有着许多神奇的经历&#xff0c;比如其创始人一开始只能艰难地筹集到5000美元创业&#xff0c;到如今AMD成为一家年营业额达到65亿美元的公司&#xff0c;这位创始人创始人杰里.桑德斯也赋予了AMD永不放弃&#xff0c;永不投降的精神。曾有过无比辉煌的历史&a…

二隐层的神经网络实现MNIST数据集分类

二隐层的神经网络实现MNIST数据集分类 传统的人工神经网络包含三部分&#xff0c;输入层、隐藏层和输出层。对于一个神经网络模型的确定需要考虑以下几个方面&#xff1a; 隐藏层的层数以及各层的神经元数量各层激活函数的选择输入层输入数据的shape输出层神经元的数量以上神经…

Android之SurfaceView

SurfaceView也是继承了View&#xff0c;但是我们并不需要去实现它的draw方法来绘制自己&#xff0c;为什么呢&#xff1f; 因为它和View有一个很大的区别&#xff0c;View在UI线程去更新自己&#xff1b;而SurfaceView则在一个子线程中去更新自己&#xff1b;这也显示出了它的…

MATLAB画图设置线条透明度

plot1 plot(x,y); plot1.Color(4) 0.5; 调节Color(4)这个参数可以设置不同的透明度

日韩决裂,半导体谁最受伤?

来源&#xff1a; 半导体行业观察日本政府于7月1日公布&#xff0c;要加强对韩国的出口管理&#xff0c;7月4日发起了“氟化聚酰亚胺&#xff08;Polymide&#xff09;”、“EUV Resist&#xff08;光阻剂&#xff09;”、“氟化氢”三种半导体材料的出口限制。根据此次出口限制…

验证码随机生成

验证码随机生成 这里主要使用到的库是captcha库&#xff0c;下载的命令如下&#xff1a; pip install captcha 验证码随机生成代码&#xff0c;(python 版本&#xff1a;3.6 captcha 版本&#xff1a;0.3) from captcha.image import ImageCaptcha import numpy as np …

oracle的基本数据类型(转载)

数据类型是在设计表结构中需要定义的&#xff0c;选择适当的数据类型可以节省存储空间&#xff0c;提高运算效率。 Oracle数据类型主要包括 1.字符型 适合保存字符串类型的数据&#xff0c;如姓名、地址、简介等等。 如&#xff1a;char(2000),nchar(2000),varchar(4000),nvarc…

台式电脑麦克风_还有人买台式PC吗?这份新品推荐攻略值得收藏

【科技犬】新品一&#xff0c;联想发布新款天逸510S台式机联想现已推出天逸 510S 小型主机&#xff0c;搭载了英特尔最新的十代酷睿处理器 i5-10400&#xff0c;8GB 内存 512GB SSD 售价 3499 元。联想新款天逸 510S 将于 7 月 23 日开卖&#xff0c;适合企业办公用户使用。天…

MATLAB将两条曲线画在同一个图上

在MATLAB中将两条曲线画在同一个图上&#xff0c;如果直接采用下面的代码&#xff0c;那么画的第二个图会将第一个图覆盖 plot(x,p1,LineWidth,2); plot(x,p2,LineWidth,2); 正确的做法是在两条语句中间添加hold on; plot(x,p1,LineWidth,2); hold on; plot(x,p2,LineWidth,…

天基物联,毫瓦服务,商业航天撬动万亿市场

来源&#xff1a; 卫星与网络2019年8月17日12时11分&#xff0c;酒泉卫星发射中心&#xff0c;北京国电高科科技有限公司&#xff08;以下简称“国电高科”&#xff09;研制的天启沧州号&#xff08;又名“忻中一号”&#xff09;卫星由首次发射的捷龙一号商业火箭成功送入太空…

GitHub如何上传超过100MB的文件

GitHub如何上传超过100MB的文件 平时在GitHub上上传项目文件时&#xff0c;遇到比较大的文件&#xff0c;就会出现无法上传的情况&#xff1a; this exceeds GitHubs file size limit of 100.00 MB 解决方法如下&#xff1a; 在所要上传文件的目录下打开Git 首先&#xff0c;…

python的matplotlib生成colorbar

当有些画图的库不能生成colorbar时&#xff0c;需要手动生成colorbar&#xff1a;plt.colorbar(h)&#xff0c;h为图的句柄 举个例子&#xff0c;mne.viz.plot_topomap函数不支持显示colorbar&#xff0c;因此需要通过matplotlib库来先设置colorbar再显示 im, cn mne.viz.pl…

学好基础,展翅飞翔

1 学习的东东 学习java基础&#xff0c;java虚拟机知识&#xff0c;计算机操作系统&#xff0c;计算机网络&#xff0c;数据结构和算法&#xff0c;Android基础。 然后Android项目实践。 锻炼好身体&#xff0c;注意养身&#xff0c;毕竟是革命的本钱。 锻炼好情商&#xff0c;…

电脑出货量_Q3季度全球笔记本电脑出货量增长34%,惠普出货量首次超过联想

相关推荐将联想拯救者电竞手机Pro关机&#xff0c;取出卡托&#xff0c;卡托上并没有硅胶圈。手机后盖与内支撑通过胶固定&#xff0c;热风枪加热....我快闭嘴 发表于11-17 16:40 •48次 阅读 联想来酷B2411/H产品出发点其实很简单&#xff0c;这款产品并不是为那些追求新奇&am…