实验5、白盒测试:覆盖测试及测试用例设计
实验5、白盒测试:覆盖测试及测试用例设计1、某工资计算程序功能如下:若雇员月工作小时超过40小时,则超过部分按原小时工资的1.5倍的加班工资来计算。若雇员月工作小时超过50小时,则超过50的部分按原小时工资的3倍的加班工资来计算,而40到50小时的工资仍按照原小时工资的1.5倍的加班工资来计算。程序输入为:雇员月工作时间及小时工资,输出为工资。2、运用逻辑覆盖法的六种覆盖标准设计测试用例,并执行测
实验5、白盒测试:覆盖测试及测试用例设计
一、实验目的
1、掌握白盒测试的概念。
2、掌握逻辑覆盖法。
二、实验任务
1、某工资计算程序功能如下:若雇员月工作小时超过40小时,则超过部分按原小时工资的1.5倍的加班工资来计算。若雇员月工作小时超过50小时,则超过50的部分按原小时工资的3倍的加班工资来计算,而40到50小时的工资仍按照原小时工资的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("输入的月工时有误,请重新输入!");
}
}
}
}
- 画出程序流程图
- 根据逻辑覆盖法的六种覆盖标准设计测试用例,得到6张测试用例表
- 语句覆盖:程序需要执行通过的语句有①③⑤⑥,由于②④⑦位置没有语句,因此不需要覆盖。从节约测试成本的角度出发,此处实际上只需要一个测试用例即可。
测试用例ID | hour(小时) | money(元) | 预期输出 | 覆盖语句 |
T1 | 55 | 20 | 1400.0元 | ①③⑤⑥ |
- 判定覆盖:易知程序流程图中有三个判定
测试用例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 |
- 条件覆盖
测试用例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 |
- 条件/判定覆盖
测试用例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 |
- 条件组合覆盖
测试用例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 |
- 修正条件/判定覆盖
测试用例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
|
- 执行测试,填写软件缺陷报告
模块名称 | 对某工资计算程序功能进行软件测试 | ||
版本号 | V1.0 | 测试人 | XXX |
缺陷类型 | 代码实现 | 严重级别 | 5级 |
可重复性 | 是 | 缺陷状态 | New |
测试平台 | Win11 | 测试软件 | Interlij IDEA |
简述 |
| ||
操作步骤 | 1.运行程序,在控制台依次输入:52,-1 2.回车 | ||
实际结果 | -61.0元 | ||
预期结果 | 输入的时薪有误,请重新输入! | ||
注释 | 无注释,建议适当增加注释,提高程序代码的可读性 |
更多推荐
所有评论(0)