白盒测试:覆盖测试及测试用例设计
白盒测试:覆盖测试及测试用例设计
一、实验目的
1、掌握白盒测试的概念。
2、掌握逻辑覆盖法。
二、实验任务
某工资计算程序功能如下:若雇员月工作小时超过40小时,则超过部分按原小时工资的1.5倍的加班工资来计算。若雇员月工作小时超过50小时,则超过50的部分按原小时工资的3倍的加班工资来计算,而40到50小时的工资仍按照原小时工资的1.5倍的加班工资来计算。程序输入为:雇员月工作时间及小时工资,输出为工资。
运用逻辑覆盖法的六种覆盖标准设计测试用例,并执行测试,撰写实验报告。
实验步骤:
1、画出程序流程图
判定1:hour<=40 && hour>=0
判定2:hour>40 && hour<=50
判定3:hour>50
2、根据逻辑覆盖法的六种覆盖标准设计测试用例,得到6张测试用例表
(1)、语句覆盖:程序需要执行通过的语句有1、3、5、6,由于2、4、7位置没有语句,因此不需要覆盖。
只需一条测试用例即可:
测试用例编号 | hour(小时) | money(元) | 预期输出 | 覆盖语句 |
T1 | 60 | 100 | 8500.00元 | 1、3、5、6 |
(2)、判定覆盖:易知程序流程图中有三个判定
编号 | hour | money | 判定1 | 判定2 | 判定3 | 预期输出 |
T2 | 30 | 50 | 是 | 否 | 否 | 1500.0元 |
T3 | 45 | 60 | 否 | 是 | 否 | 2850.0元 |
T4 | 60 | 70 | 否 | 否 | 是 | 5950.0元 |
(3)、条件覆盖
编号 | hour | money | 判定1 | 判定2 | 判定3 | 预期输出 |
T6 | 30 | 50 | 是 | 否 | 否 | 1500.0元 |
T7 | 45 | 60 | 否 | 是 | 否 | 2850.0元 |
T8 | 60 | 70 | 否 | 否 | 是 | 5950.0元 |
T9 | -10 | 80 | 否 | 否 | 否 | 输入有误 |
(4)、条件/判定覆盖
编号 | hour | money | 判定1 | 判定2 | 判定3 | 预期输出 |
T6 | 30 | 50 | 是 | 否 | 否 | 1500.0元 |
T7 | 45 | 60 | 否 | 是 | 否 | 2850.0元 |
T8 | 60 | 70 | 否 | 否 | 是 | 5950.0元 |
T9 | -10 | 80 | 否 | 否 | 否 | 输入有误 |
(5)、条件组合覆盖
编号 | hour | money | 判定1 | 判定2 | 判定3 | 预期输出 |
T6 | 30 | 50 | 是 | 否 | 否 | 1500.0元 |
T7 | 45 | 60 | 否 | 是 | 否 | 2850.0元 |
T8 | 60 | 70 | 否 | 否 | 是 | 5950.0元 |
T9 | -10 | 80 | 否 | 否 | 否 | 输入有误 |
(6)、修正条件判定覆盖
编号 | hour | money | 判定1 | 判定2 | 判定3 | 预期输出 |
T6 | 30 | 50 | 是 | 否 | 否 | 1500.0元 |
T7 | 45 | 60 | 否 | 是 | 否 | 2850.0元 |
T8 | 60 | 70 | 否 | 否 | 是 | 5950.0元 |
T9 | -10 | 80 | 否 | 否 | 否 | 输入有误 |
3、执行测试,填写软件缺陷报告。
语句覆盖
判定覆盖、条件覆盖和条件/判定覆盖的测试结果
条件组合覆盖、修正条件判定覆盖测试结果
测试缺陷报告:
测试模块: | 工资计算程序 | 开 发 者: | XXX |
测 试 员: | XXX | 测试日期: | 2024.5.8 |
软件缺陷列表 | |||
缺陷ID | 缺陷详细信息 | ||
BUG1 | 无 | ||
BUG2 | 无 | ||
BUG3 | 无 | ||
BUG4 | 无 |
三、代码:
import java.util.*;
public class Main {public static void main(String[] args) {int hour;int money;double sum;while (true) {System.out.print("请输入雇员的月工作时间(小时):");Scanner console = new Scanner(System.in);hour = console.nextInt();System.out.print("请输入雇员的时薪(元):");money = console.nextInt();if (hour <= 40 && hour >= 0) {sum = hour * money;System.out.println("雇员本月的工资为:" + sum + "元");} else {if (hour > 40 && hour <= 50) {sum = 40 * money + (hour - 40) * money * 1.5;System.out.println("雇员本月的工资为:" + sum + "元");} else if (hour > 50) {sum = 40 * money + 10 * money * 1.5 + (hour - 50) * money * 3;System.out.println("雇员本月的工资为:" + sum + "元");} else {System.out.println("输入的月工时有误,请重新输入!");}}}}
}
记录学习、记录生活,最后,我终将会成为我想成为的人✌✌✌
相关文章:

白盒测试:覆盖测试及测试用例设计
白盒测试:覆盖测试及测试用例设计 一、实验目的 1、掌握白盒测试的概念。 2、掌握逻辑覆盖法。 二、实验任务 某工资计算程序功能如下:若雇员月工作小时超过40小时,则超过部分按原小时工资的1.5倍的加班工资来计算。若雇员月工作小时超过…...
Java高级开发2024高频面试提问题目
1、请先简单自我介绍一下自己?(一般不超过5min) 2、你最熟悉的项目是哪一个,讲一下用了哪些技术栈?(尽量讲出系统架构图使用到的技术组件和为什么选型这个组件?) 3、你项目中使用什…...
Kamailio openssl 3.0.x 需要注意的事项
我们留意到 Debian Bookworm 安装的 openssl 版本是 3.0.x 这里有几个地方要注意: modparam("tls", "init_mode", 1)核心参数 tls_threads_mode 配置为 1 或者 配置为 2,默认为 0版本建议用 5.8.1,貌似 5.7.x 也行 参…...

SpringAMQP Work Queue 工作队列
消息模型: 代码模拟: 相较于之前的基础队列,该队列新增了消费者 不再是一个,所以我们通过代码模拟出两个consumer消费者。在原来的消费者类里写两个方法 其中消费者1效率高 消费者2效率低 RabbitListener(queues "simple.queue")public voi…...

一分钟带你了解什么是等保测评
等保测评,即网络安全等级保护测评,是依据国家信息安全等级保护制度规定,对信息系统进行安全技术测评和安全管理测评,以确定系统的安全保护水平是否达到预定的安全等级要求。以下是等保测评的相关知识点总结: 测评概述&…...

宝塔面板怎么解决nginx跨域问题
1.找到宝塔的nginx配置文件 宝塔有一点不同,nginx配置文件不在nginx的安装目录中,应当去/www/server/panel/vhost/nginx找到 2.添加你要跨域的地址 location /api {proxy_pass http://localhost:8080;proxy_set_header Host $host;proxy_set_header X-…...
Python 自动化脚本系列:第1集
昨天写了一篇介绍如何使用Python实现自动化任务的,文章末尾介绍了一个简单的自动化脚本,因此今天编号从2开始。顺便附上昨天的文章链接: Python 自动化脚本系列:介绍 欢迎关注博主,持续输出更多Python相关内容&#…...

基于PHP开发的图片高清无损在线压缩源码系统 带完整源代码以及搭建教程
系统概述 高清无损在线压缩源码系统基于PHP语言开发,结合GD库和ImageMagick等图像处理工具,实现了对JPEG、PNG、GIF等多种图片格式的高清无损压缩。系统采用B/S架构,用户只需通过浏览器访问系统界面,即可实现图片的上传、压缩、预…...

Linux提权--SUDO(CVE-2021-3156)Polkit(CVE-2021-4034)
免责声明:本文仅做技术学习与交流... 目录 SUDO(CVE-2021-3156) 影响版本 -判断: -利用: Polkit(CVE-2021-4034) -判断: -利用: 添加用户 SUDO(CVE-2021-3156) another: SUDO权限配置不当. 影响版本 由系统的内核和发…...

nodejs里面的 http 模块介绍和使用
Node.js的HTTP模块是一个核心模块,它提供了很多功能来创建HTTP服务器和发送HTTP请求。 http.Server是一个基于事件的http服务器,内部是由c实现的,接口是由JavaScript封装。 http.request是一个http客户端工具。 用户向服务器发送数据。 创…...

MVC框架简易实现【精细】
目录 mvc 的架构 MVC 框架 传统web开发的弊端 1.创建一个maven项目 2.添加maven依赖 3.创建TomCatService类 3.1 创建TomcatService类 3.2 TomcatService类讲解 3.3 安装项目到本地仓库,给其他项目使用 4.测试启动Tomcat 4.1 创建一个新的maven项目 4.2 引用…...

Java入门基础学习笔记18——赋值运算符
赋值运算符: 就是“”,就是给变量赋值的,从右边往左边看。 int a 10; // 把数据赋值给左边的变量a存储。 扩展赋值运算符: 注意:扩展的赋值运算符隐含了强制类型转换。 package cn.ensource.operator;public class…...
csv 可视化 python代码
excel查看csv后,csv就被锁定了,不能修改,用pyqt写一个csv查看工具,拖拽查看,非常方便 目录 第2版,提升加载速度 选中单元格统计个数,求和,平均值...
HashMap 和 Hashtable区别的底层原理
一、容器键值对: 1.HashMap 的 key 和 value 都允许为 null , HashMap 在 key 为 null 的时候,值必须为null。 2.Hashtable 的 key 和 value 都不允许为 null 。 Hashtable 遇到key或value为 null时 ,将抛出 NullPointerException…...
代码随想录35期Day32-Java
Day32题目 LeetCode122.买股票的最佳时机 核心思想:很简单,只要第二天比第一天贵,就第一天买入,第二天卖出 class Solution {public int maxProfit(int[] prices) {// 只要后一天比这一天价钱高就买,然后第二天卖出…...

ROS 2边学边练(45)-- 构建一个能动的机器人模型
前言 在上篇中我们搭建了一个机器人模型(其由各个关节(joint)和连杆(link)组成),此篇我们会通过设置关节类型来实现机器人的活动。 在ROS中,关节一般有无限旋转(continuous),有限旋转…...
【第66例】IPD体系进阶:华为IPD发展历程
目录 简介 样例 作者简介 简介 想要引入 IPD,首先就要思考一些问题: 跟我的企业适配吗? 流程会不会太重了? 一定要引入吗,有没有其他方式? 从目前大的环境来说。 中国制造业正在由“中国制造”向“中国创造”转变。 这也是企业价值转移的趋势。 宏碁集团创始人施振…...

websevere服务器从零搭建到上线(四)|muduo网络库的基本原理和使用
文章目录 muduo源码编译安装muduo框架讲解muduo库编写服务器代码示例代码解析用户连接的创建和断开回调函数用户读写事件回调 使用vscode编译程序配置c_cpp_properties.json配置tasks.json配置launch.json编译 总结 muduo源码编译安装 muduo依赖Boost库,所以我们应…...
C语言笔记10
1.用指针打印一维数组 //1.用指针打印一维数组 #include <stdio.h> int main() {//int arr[] { 1,2,3,4,5 };int arr[5] { 0 };int* p &arr[0];int sz sizeof(arr) / sizeof(arr[0]);for (int i 0; i < sz; i){scanf("%d", &arr[i]);}//int* …...
BMS-HiL主要功能
BMS HIL 系统中 PC 机中安装实验管理软件用于测试过程管理和测试序列编辑,通过以太网与 PXI 机箱中的处理器进行连接,处理器中运行实时系统(Real Time)并安装 Veristand 终端引擎,通过与 PC 中的数据传输,对…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...

初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...

毫米波雷达基础理论(3D+4D)
3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文: 一文入门汽车毫米波雷达基本原理 :https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...

消息队列系统设计与实践全解析
文章目录 🚀 消息队列系统设计与实践全解析🔍 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡💡 权衡决策框架 1.3 运维复杂度评估🔧 运维成本降低策略 🏗️ 二、典型架构设计2.1 分布式事务最终一致…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...

嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)
目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 编辑编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...