白盒测试:覆盖测试及测试用例设计

白盒测试:覆盖测试及测试用例设计

一、实验目的

1、掌握白盒测试的概念。

2、掌握逻辑覆盖法。

二、实验任务

       某工资计算程序功能如下:若雇员月工作小时超过40小时,则超过部分按原小时工资的1.5倍的加班工资来计算。若雇员月工作小时超过50小时,则超过50的部分按原小时工资的3倍的加班工资来计算,而4050小时的工资仍按照原小时工资的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("输入的月工时有误,请重新输入!");
                }
            }
        }
    }
}

记录学习、记录生活,最后,我终将会成为我想成为的人✌✌✌

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据库系统理论——关系数据库

文章目录 一、关系&#xff08;数据结构&#xff09;1、概述2、名词解释3、关系模式、关系数据库、关系数据库模式4、基本关系的性质 二、关系操作&#xff08;数据操作&#xff09;三、关系的完整性1、实体完整性2 、参照完整性3、用户自定义的完整性 四、关系代数五、习题 前…

Twitch赠送暗区突围测试资格 超简单暗区突围测试资格领取教程

作为直播界的领航者&#xff0c;Twitch平台不仅是全球游戏文化直播的中心舞台&#xff0c;更是频繁联袂各路游戏大作&#xff0c;为粉丝们奉上别具匠心的互动盛宴&#xff0c;让观赛的同时解锁诱人的游戏内惊喜。正值《暗区突围》PC版测试的热潮涌动&#xff0c;Twitch乘势加强…

详细分析McCabe环路复杂度(附例题)

目录 前言1. 基本知识2. 例题 前言 该知识点常出在408或者软考中&#xff0c;对此此文重点讲讲理论知识以及例题 对于例题平时看到也会更新 1. 基本知识 McCabe环路复杂度是一种用于衡量软件代码复杂性的指标&#xff0c;主要是通过计算代码中的控制流图中的环路数量来衡量…

华为数据之道第一部分导读

目录 导读 第一部分 序 第1章 数据驱动的企业数字化转型 非数字原生企业的数字化转型挑战 业态特征&#xff1a;产业链条长、多业态并存 运营环境&#xff1a;数据交互和共享风险高 IT建设过程&#xff1a;数据复杂、历史包袱重 数据质量&#xff1a;数据可信和一致化…

逆向中webpack需要补充的模块很多怎么办

如下面这种典型的形式 进入i找到加载器 找到加载器所在函数r,在 return e[a].call(c.exports, c, c.exports, r),打上断点。 在控制台打印e,会发现它总共有的模块&#xff0c;这些模块需要我们在别的webpack中复制&#xff0c;有时很多&#xff0c;很麻烦。 我们可以注入代码在…

es6语法总结

【1】语法 &#xff08;1&#xff09;声明变量(let-var-const) 变量提升&#xff1a; 是JavaScript引擎在代码执行前将变量的声明部分提升到作用域顶部的行为。尽管变量的声明被提升了&#xff0c;变量的赋值&#xff08;即初始化&#xff09;仍然保留在原来的位置。因此&…

紫外激光打标机适合在哪些材料表面进行标记

紫外激光打标机适合在多种材料表面进行标记&#xff0c;特别是那些对热敏感或者需要高精度、高清晰度标记的材料。以下是一些常见的适用材料&#xff1a; 1. 塑料&#xff1a;紫外激光打标机在塑料材料上表现尤为出色&#xff0c;因为紫外激光的短波长和高能量密度使得它能够在…

基于树莓派的六足机器人方案设计+源代码+工程内容说明

文章目录 源代码下载地址项目介绍项目内容说明简单预览 项目备注源代码下载地址 源代码下载地址 点击这里下载源码 项目介绍 项目内容说明 hardware为项目相关硬件设计 机械结构为六足机器人的3d建模工程&#xff0c;包括本体和云台遥控器在ESP32最小开发板上集成了MPU605…

ChatGPT DALL-E绘图,制作各种表情包,实现穿衣风格的自由切换

DALL-E绘图功能探索&#xff1a; 1、保持人物形象一致&#xff0c;适配更多的表情、动作 2、改变穿衣风格 3、小女孩的不同年龄段展示 4、不同社交平台的个性头像创作 如果不会写代码&#xff0c;可以问GPT。使用地址&#xff1a;我的GPT4 视频&#xff0c;B站会发&#…

茅台申购,多平台签到与通知 | 使用极空间NAS部署一个神级脚本『DailyCheckIn』

茅台申购&#xff0c;多平台签到与通知 | 使用极空间NAS部署一个神级脚本『DailyCheckIn』 哈喽小伙伴们好&#xff0c;我是Stark-C~&#xff0c;今天为大家分享一个极空间上非常实用且好玩的项目。 小伙伴们都知道&#xff0c;目前很多平台为了促进用户的活跃度和黏性&#…

ENVI拓展工具资源去哪里找

ENVI拓展工具资源去哪里找&#xff1f; 文章目录 ENVI拓展工具资源去哪里找&#xff1f;前言网站&#xff08;链接见文末&#xff09;ENVI应用商店&#xff08;App Store&#xff09;ENVI官方提供第三方制作自己制作 总结参考 前言 ENVI 拓展工具是指 ENVI 软件的扩展功能或插…

WordPress插件:链接自动识别转为超链接

WordPress插件&#xff1a;链接自动识别转为超链接 <?phpfunction open_links_in_new_tab() {add_filter(the_content, make_clickable);function autoblank($text) {$return str_replace(<a, <a target"_blank", $text);return $return;}add_filter(th…

海外市场成 ISV 新掘金地?生成式 AI 如何加速业务创新实践?Zilliz 有话说

期望了解 Zilliz 最新动态&#xff1f;想要与 Zilliz 线下探讨 AI 时代向量数据库的全球化布局思考及典型实践&#xff1f; 机会来啦&#xff01;5 月 10 日&#xff0c;Zilliz 将闪现亚马逊云科技的两场活动现场&#xff08;苏州、西安&#xff09;&#xff0c;与大家共话行业…

【Kubernetes集群一主二从安装教程】

文章目录 环境准备主机间做信任安装ansible工具 升级内核版本使用elrepo源升级内核查看最新版内核安装最新的内核版本设置系统默认内核设置默认内核为我们刚才升级的内核版本 初始化关闭防火墙关闭selinux关闭swap修改主机名修改hosts文件将桥接的IPv4流量传递到iptables的链配…

52岁前宝丽金小花懒理旧爱郭晋安离婚,大晒美腿甜蜜放闪

TVB三届视帝郭晋安与欧倩怡早前在社交平台共同宣布离婚&#xff0c;并透露二人已分居两年&#xff0c;18年夫妻情画上句号&#xff0c;惊爆全城。郭晋安曾受访指&#xff0c;遇上欧倩怡前只有两段深刻的感情&#xff0c;一段是初恋&#xff0c;另一段则是刘小慧。 旧爱刘小慧懒…

贪吃蛇游戏(C语言实现)

目录 游戏效果展示文件代码的展示test.cSnake.cSnake.h 下一个坐标不是食物 游戏效果展示 QQ录屏20240507163633 文件 代码的展示 test.c #define _CRT_SECURE_NO_WARNINGS#include<locale.h> //设置本地化 #include"Snake.h"//游戏的测试逻辑 void test() {…

【服务治理中间件】consul介绍和基本原理

目录 一、CAP定理 二、服务注册中心产品比较 三、Consul概述 3.1 什么是Consul 3.2 Consul架构 3.3 Consul的使用场景 3.4 Consul健康检查 四、部署consul集群 4.1 服务器部署规划 4.2 下载解压 4.3 启动consul 五、服务注册到consul 一、CAP定理 CAP定理&#xff…

STM32使用ADC单/多通道检测数据

文章目录 1. STM32单片机ADC功能详解 2. AD单通道 2.1 初始化 2.2 ADC.c 2.3 ADC.h 2.4 main.c 3. AD多通道 3.1 ADC.c 3.2 ADC.h 3.3 main.c 3.4 完整工程文件 1. STM32单片机ADC功能详解 STM32单片机ADC功能详解 2. AD单通道 这个代码实现通过ADC功能采集三脚电…

掌握Android Fragment开发之魂:Fragment的深度解析(上)

Fragment是Android开发中用于构建动态和灵活界面的基石。它不仅提升了应用的模块化程度&#xff0c;还增强了用户界面的动态性和交互性&#xff0c;允许开发者将应用界面划分为多个独立、可重用的部分&#xff0c;每个部分都可以独立于其他部分进行操作。本文将从以下几个方面深…

ttkbootstrap界面美化系列之PanedWindow(七)

在界面设计中经常用PanedWindow控件来对整个界面进行切割布局&#xff0c;让整个界面看上去有层次感&#xff0c;不至于说杂乱无章。在我之前的文章中有对tkinter的该控件做了详细的介绍&#xff0c;链接如下基于Tkinter的PanedWindow组件进行窗口布局-CSDN博客 本文主要是介绍…