白盒测试:覆盖测试及测试用例设计
一、实验目的
1、掌握白盒测试的概念。
2、掌握逻辑覆盖法。
二、实验任务
某工资计算程序功能如下:若雇员月工作小时超过40小时,则超过部分按原小时工资的1.5倍的加班工资来计算。若雇员月工作小时超过50小时,则超过50的部分按原小时工资的3倍的加班工资来计算,而40到50小时的工资仍按照原小时工资的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("输入的月工时有误,请重新输入!");
                }
            }
        }
    }
} 
记录学习、记录生活,最后,我终将会成为我想成为的人✌✌✌



















