实验5、白盒测试:覆盖测试及测试用例设计

一、实验目的

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

2、掌握逻辑覆盖法。

二、实验任务

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

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

实验步骤:

程序代码如下:

import java.util.*;
public class Salary {
    public static void main(String[] args) {
        int hour;
        int money;
        double sum;

        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. 画出程序流程图

  1. 根据逻辑覆盖法的六种覆盖标准设计测试用例,得到6张测试用例表
  1. 语句覆盖:程序需要执行通过的语句有①③⑤⑥,由于②④⑦位置没有语句,因此不需要覆盖。从节约测试成本的角度出发,此处实际上只需要一个测试用例即可。

测试用例ID

hour(小时)

money(元)

预期输出

覆盖语句

   T1

55

20

1400.0元

①③⑤⑥

  1. 判定覆盖:易知程序流程图中有三个判定

测试用例ID

hour(小时)

money(元)

第1个判定hour<=40&&hour>=0

第2个判定

hour > 40 && hour <= 50

第三个判定hour > 50

   T2

23

20

T

F

F

T3

45

20

F

T

F

T4

55

20

F

F

T

  1. 条件覆盖

测试用例ID

hour(小时)

money(元)

条件hour<=40 && hour>=0

条件hour > 40 && hour <= 50

条件hour > 50

   T5

23

20

T

F

F

T6

45

20

F

T

F

T7

55

20

F

F

T

T8

-1

20

F

F

F

  1. 条件/判定覆盖

测试用例ID

hour(小时)

money(元)

条件hour<=40 && hour>=0

条件hour > 40 && hour <= 50

条件hour > 50

   T9

23

20

T

F

F

T10

45

20

F

T

F

T11

55

20

F

F

T

T12

-1

20

F

F

F

  1. 条件组合覆盖

测试用例ID

hour(小时)

money(元)

第1个判定

第2个判定

第三个判定

条件hour<=40 && hour>=0

条件hour > 40 && hour <= 50

条件hour > 50

   T13

23

20

T

F

F

T14

45

20

F

T

F

T15

55

20

F

F

T

T16

-1

20

F

F

F

  1. 修正条件/判定覆盖

测试用例ID

hour(小时)

money(元)

第1个判定

第2个判定

第三个判定

条件hour<=40 && hour>=0

条件hour > 40 && hour <= 50

条件hour > 50

   T17

23

20

T

F

F

T18

45

20

F

T

F

T19

55

20

F

F

T

T20

-1

20

F

F

F

 

  1. 执行测试,填写软件缺陷报告

模块名称

某工资计算程序功能进行软件测试

版本号

V1.0

测试人

XXX

缺陷类型

代码实现

严重级别

5级

可重复性

缺陷状态

New

测试平台

Win11

测试软件

Interlij IDEA

简述

  1. 没有对money属性值进行范围限制
  2. 如果输入负值则计算出的工资为负值

操作步骤

1.运行程序,在控制台依次输入:52,-1

2.回车

实际结果

-61.0元

预期结果

输入的时薪有误,请重新输入!

注释

无注释,建议适当增加注释,提高程序代码的可读性

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐