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

实验二 软件白盒测试

实验软件白盒测试

某工资计算程序功能如下:若雇员月工作小时超过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

测试执行结果

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

相关文章:

  • 状压 DP 详解
  • 一种快速计算OTA PSRR的方法(Ⅰ)
  • 前端面经-VUE3篇--vue3基础知识(二)计算属性(computed)、监听属性(Watch)
  • 双指针(5)——有效三角形个数
  • 头皮理疗预约小程序开发实战指南
  • 大模型开发学习笔记
  • Java 自旋锁:实现机制与优化策略
  • 【Bootstrap V4系列】学习入门教程之 表格(Tables)和画像(Figure)
  • 动态思维——AI与思维模型【91】
  • java 进阶 1.0
  • 详解SLAM中的李群和李代数(上)
  • 【学习笔记】机器学习(Machine Learning) | 第五章(2)| 分类与逻辑回归
  • 2025-2026 XCPC
  • C语言 指针(3)
  • Arduino按键开关编程详解
  • TS 安装
  • 二叉搜索树的判断(双指针解决)
  • redis持久化-RDB
  • 提示词版本化管理:AI开发中被忽视的关键环节
  • 数字智慧方案6197丨智慧用电一体化服务运营解决方案(34页PPT)(文末有下载方式)
  • 严正交涉!我驻日使馆:如日方采取新的挑衅举动,中方必坚决反制
  • 新华时评:防范安全事故须臾不可放松
  • 外交部:中美双方并未就关税问题进行磋商或谈判
  • 深观察丨从“不建议将导师挂名为第一作者”说开去
  • 欢迎回家!神十九返回舱成功着陆
  • 软硬件企业集中发布未成年人模式使用手册