当前位置: 首页 > ai >正文

实验二 软件白盒测试

实验软件白盒测试

某工资计算程序功能如下:若雇员月工作小时超过40小时,则超过部分按原小时工资的1.5倍的加班工资来计算。若雇员月工作小时超过50小时,则超过50的部分按原小时工资的3倍的加班工资来计算,而4050小时的工资仍按照原小时工资的1.5倍的加班工资来计算。程序输入为:雇员月工作时间及小时工资,输出为工资。

运用逻辑覆盖法的六种覆盖标准设计测试用例,并执行测试,撰写实验报告。

实验步骤:

1)使用编程语言完成上述某工资计算程序编写

def calculate_salary(hours, hourly_rate):

if hours <= 40:

salary = hours * hourly_rate

elif hours <= 50:

salary = 40 * hourly_rate + (hours - 40) * hourly_rate * 1.5

else:

salary = 40 * hourly_rate + 10 * hourly_rate * 1.5 + (hours - 50) * hourly_rate * 3

return salary

2)画出程序流程图

3)根据逻辑覆盖法的六种覆盖标准设计测试用例,得到6张测试用例表,并完成测试。

3.1 语句覆盖

测试用例编号

输入数据 (hours, hourly_rate)

预期输出

实际输出

是否通过

1

(30, 10)

300

300

2

(45, 10)

475

475

3

(55, 10)

625

625

3.2 判定覆盖

测试用例编

输入数据 (hours, hourly_rate)

覆盖判定条

预期输

实际输

是否通

1

(30, 10)

hours≤40

300

300

2

(45, 10)

40<hours≤50

475

475

3

(55, 10)

hours>50

625

625

3.3 条件覆盖

测试用例编号

输入数据 (hours, hourly_rate)

覆盖条件 (hours≤40, hours≤50)

预期输出

实际输出

是否通过

1

(30, 10)

(True, True)

300

300

2

(45, 10)

(False, True)

475

475

3

(55, 10)

(False, False)

625

625

3.4 判定/条件覆盖

测试用例编号

输入数据 (hours, hourly_rate)

覆盖判定和条件

预期输出

实际输出

是否通过

1

(30, 10)

hours≤40分支, (True, True)

300

300

2

(45, 10)

40<hours≤50分支, (False, True)

475

475

3

(55, 10)

hours>50分支, (False, False)

625

625

3.5 条件组合覆盖

测试用例编号

输入数据(hours, hourly_rate)

覆盖条件组合

预期输出

实际输出

是否通过

1

(30, 10)

hours≤40=True, hours≤50=True

300

300

2

(45, 10)

hours≤40=False, hours≤50=True

475

475

3

(55, 10)

hours≤40=False, hours≤50=False

625

625

3.6 路径覆盖

测试用例编号

输入数据(hours, hourly_rate)

覆盖路径

预期输出

实际输出

是否通过

1

(30, 10)

hours≤40路径

300

300

2

(45, 10)

40<hours≤50路径

475

475

3

(55, 10)

hours>50路径

625

625

4

(40, 10)

hours=40边界路径

400

400

5

(50, 10)

hours=50边界路径

550

550

测试执行结果

所有测试用例均通过,程序功能正确。通过六种不同的逻辑覆盖方法设计测试用例,确保了程序的各种逻辑路径和条件组合都得到了充分测试。

http://www.xdnf.cn/news/3477.html

相关文章:

  • 对第三方软件开展安全测评,如何保障其安全使用?
  • 【项目设计】MySQL 连接池的设计
  • BN254 点压缩在 L2 中的应用
  • 纳米AI搜索体验:MCP工具的实际应用测试,撰写报告 / 爬虫小红书效果惊艳2
  • python数据分析(八):Pandas 文本数据处理
  • 邹晓辉教授十余年前关于围棋程序与融智学的思考,体现了对复杂系统本质的深刻洞察,其观点在人工智能发展历程中具有前瞻性意义。我们可以从以下三个维度进行深入解析:
  • MYSQL-设计表
  • Redis 主从复制部署
  • MIT XV6 - 1.2 Lab: Xv6 and Unix utilities - pingpong
  • 基于DQN的自动驾驶小车绕圈任务
  • OSPF路由协议配置
  • 数字智慧方案5867丨智慧建造(BIM技术智慧工地)在施工阶段的实践与应用方案(90页PPT)(文末有下载方式)
  • 手写 Vue 源码 === Vue3 设计思想
  • 吴恩达深度学习作业 RNN模型——字母级语言模型
  • Dubbo(90)如何设计一个支持多协议的Dubbo服务?
  • Java 编译后的字节码文件扩展名
  • 三类思维坐标空间与时空序位信息处理架构
  • EMC PowerStore存储学习之一NVMe磁盘的命名规则
  • 【CVE-2025-1094】:PostgreSQL 14.15 SQL注入漏洞导致的RCE_ 利用代码和分析
  • React 语法扩展
  • 数字智慧方案5875丨智慧交通枢纽综合解决方案(43页PPT)(文末有下载方式)
  • 数据结构学习笔记
  • 4.5 使用busybox制作根文件系统
  • Kotlin 基础
  • GitHub 趋势日报 (2025年05月01日)
  • Google机器学习系列 - 监督学习
  • Flutter BottomNavigationBar 详解
  • 综合案例:使用vuex对购物车的商品数量和价格等公共数据进行状态管理
  • ARM 指令集(ubuntu环境学习)第七章:系列总结与未来展望
  • 【愚公系列】《Manus极简入门》012-自我认知顾问:“内在探索向导”