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


    实验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元

    预期结果

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

    注释

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

  • 相关阅读:
    批量操作数据、自定义分页器
    二叉树的重建问题
    通达OA v12流程中心
    【C进阶】字符串函数
    [Acwing-Springboot] 配置Mysql
    【Redis】redis基本数据类型详解(String、List、Hash、Set、ZSet)
    【暑期每日一题】洛谷 P5740【深基7.例9】最厉害的学生
    JS 运算符使用
    Java高并发编程卷二(二) 锁
    力扣(LeetCode)14. 最长公共前缀(C++)
  • 原文地址:https://blog.csdn.net/weixin_51497502/article/details/125547001