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

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

一、实验目的

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("输入的月工时有误,请重新输入!");
                }
            }
        }
    }
}

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

相关推荐

  1. 软件测试

    2024-05-14 09:22:06       38 阅读
  2. 设计测试

    2024-05-14 09:22:06       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-14 09:22:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-14 09:22:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-14 09:22:06       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-14 09:22:06       20 阅读

热门阅读

  1. ASP.NET Core中实现文件上传下载实时进度条功能

    2024-05-14 09:22:06       12 阅读
  2. 手机照片保存地址

    2024-05-14 09:22:06       11 阅读
  3. Elasticsearch做到像mysql这样的表连接Parent-Child实现

    2024-05-14 09:22:06       10 阅读
  4. 使用 Docker 轻松部署 Spring Boot 应用

    2024-05-14 09:22:06       11 阅读
  5. 云端安全新纪元:云WAF的崛起

    2024-05-14 09:22:06       7 阅读
  6. 当它还是幼生期的时候,及早离开它!

    2024-05-14 09:22:06       9 阅读
  7. Kotlin反射:深入探索与多场景应用

    2024-05-14 09:22:06       11 阅读
  8. 在面试中,我常问的c++问题

    2024-05-14 09:22:06       7 阅读
  9. 速盾:scdn是什么

    2024-05-14 09:22:06       8 阅读
  10. [大师C语言(第五篇)]C语言随机数背后的秘密

    2024-05-14 09:22:06       11 阅读
  11. 机器学习在数据分析中的应用:探索未来趋势

    2024-05-14 09:22:06       10 阅读
  12. Debezium + kafka connect SASL实现sqlserver CDC

    2024-05-14 09:22:06       12 阅读