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