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

一、实验目的

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

2、掌握逻辑覆盖法。

二、实验任务

以下三个任务、至少完成两个

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

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

实验步骤:

1) 画出程序流程图

2) 根据逻辑覆盖法的六种覆盖标准设计测试用例,得到6张测试用例表

1.语句覆盖:

测试用例ID

h(小时)

m(元)

预期输出

语句覆盖

T2

1

33

33.0元

①②③

T3

41

33

1369.5元

①④⑤⑥

T4

99

33

6666.0元

①④⑦⑧⑨

2. 判定覆盖:

测试用例ID

h(小时)

m(元)

判定1

判定2

判定3

h<=40

&&h>=0

h > 40 &&

h <= 50

h > 50

T1

-1

33

F

F

F

T2

1

33

T

F

F

T3

41

33

F

T

F

T4

99

33

F

F

T

3. 条件覆盖:

测试用例ID

h(小时)

m(元)

条件h<=40

&&h>=0

条件

h > 40 &&

h<= 50

条件

h > 50

T1

-1

33

F

F

F

T2

1

33

T

F

F

T3

41

33

F

T

F

T4

99

33

F

F

T

4. 条件/判定覆盖:

测试用例ID

h(小时)

m(元)

条件h<=40

&&h>=0

条件

h > 40 &&

h <= 50

条件

h > 50

T1

-1

33

F

F

F

T2

1

33

T

F

F

T3

41

33

F

T

F

T4

99

33

F

F

T

5. 条件组合覆盖:

测试用例ID

h(小时)

m(元)

判定1

判定2

判定3

条件

h <= 40

&&h>=0

条件

h > 40 &&

h <= 50

条件

h > 50

T1

-1

33

F

F

F

T2

1

33

T

F

F

T3

41

33

F

T

F

T4

99

33

F

F

T

6. 修正条件/判定覆盖:

测试用例ID

h(小时)

m(元)

判定1

判定2

判定3

条件

h<=40

&&h>=0

条件

h > 40 &&

h <= 50

条件

h > 50

T1

-1

33

F

F

F

T2

1

33

T

F

F

T3

41

33

F

T

F

T4

99

33

F

F

T

3)执行测试,填写软件缺陷报告。(软件缺陷报告格式同实验2)

测试结果:

测试用例T1:

软件缺陷报告:

测试模块:

工资计算程序

开 发 者:

张三

测 试 员:

张三

测试日期:

2024.5.8

软件缺陷列表

缺陷ID

缺陷详细信息

BUG1

BUG2

BUG3

BUG4

测试代码:

public class Salary {

    public static void main(String[] args) {

        int h;

        int m;

        double s;

        System.out.print("请输入雇员的月工作时间(小时):");

        @SuppressWarnings("resource")

Scanner console = new Scanner(System.in);

        h = console.nextInt();

        System.out.print("请输入雇员的时薪(元):");

        m = console.nextInt();

        if(h<=40 && h>=0) {

            s = h*m;

            System.out.println("雇员本月的工资为:"+s+"元");

        }

        else {

            if (h > 40 && h <= 50) {

                s = 40 * m + (h - 40) * m * 1.5;

                System.out.println("雇员本月的工资为:" + s + "元");

            } else if(h > 50){

                s = 40 * m + 10 * m * 1.5 + (h - 50) * m * 3;

                System.out.println("雇员本月的工资为:" + s + "元");

            }else {

                 System.out.println("输入的月工时有误,请重新输入!");

                   }

        }

      }

}

2、编写一个求解一元二次方程的程序,运用逻辑覆盖法的六种覆盖标准设计测试用例,并执行测试,撰写实验报告。

实验步骤:同上

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

实验步骤:

1) 画出程序流程图

2) 根据逻辑覆盖法的六种覆盖标准设计测试用例,得到6张测试用例表

1. 语句覆盖:

测试用例ID

a

b

c

预期输出

语句覆盖

T1

1

2

3

不构成三角西

①②⑤

T2

4

5

6

普通三角形

①②④⑦

T3

1

199

199

等腰三角形

①②④⑥⑨

T4

100

100

100

等边三角形

①②④⑥⑧

2. 判定覆盖:

测试用

例ID

a

b

c

判定1

判定2

判定3

判定4

a,b,c>0&&

a,b,c<200

a+b>c

a==b

||b==c

a!=c

T1

1

2

3

T

F

F

T

T2

4

5

6

T

T

F

T

T3

1

199

199

T

T

T

F

T4

100

100

100

T

T

T

T

3. 条件覆盖:

测试用例ID

a

b

c

条件a,b,c>0&&

a,b,c<200

条件

a+b>c

条件

a==b

||b==c

条件

a!=c

T1

1

2

3

T

F

F

T

T2

4

5

6

T

T

F

T

T3

1

199

199

T

T

T

F

T4

100

100

100

T

T

T

T

4. 条件/判定覆盖:

测试用例ID

a

b

c

条件a,b,c>0&&

a,b,c<200

条件

a+b>c

条件

a==b

||b==c

条件

a!=c

T1

1

2

3

T

F

F

T

T2

4

5

6

T

T

F

T

T3

1

199

199

T

T

T

F

T4

100

100

100

T

T

T

T

5. 条件组合覆盖:

测试用

例ID

a

b

c

判定1

判定2

判定3

判定4

条件a,b,c>0&&

a,b,c<200

条件

a+b>c

条件

a==b

||b==c

条件a!=c

T1

1

2

3

T

F

F

T

T2

4

5

6

T

T

F

T

T3

1

199

199

T

T

T

F

T4

100

100

100

T

T

T

T

6. 修正条件/判定覆盖:

测试用

例ID

a

b

c

判定1

判定2

判定3

判定4

条件a,b,c>0&&

a,b,c<200

条件

a+b>c

条件

a==b

||b==c

条件a!=c

T1

1

2

3

T

F

F

T

T2

4

5

6

T

T

F

T

T3

1

199

199

T

T

T

F

T4

100

100

100

T

T

T

T

3)执行测试,填写软件缺陷报告。(软件缺陷报告格式同实验2)

测试结果:

测试用例T1:

软件缺陷报告:

测试模块:

三角形

开 发 者:

张三

测 试 员:

张三

测试日期:

2024.5.8

软件缺陷列表

缺陷ID

缺陷详细信息

BUG1

BUG2

BUG3

BUG4

测试代码:

#include <stdio.h>

void triangle( int a, int b, int c ); // 函数声明 --- 作用域

int main(void)

{

int x,y,z;

printf("please input (length):\n");

printf("a:");

scanf("%d",&x);

printf("b:");

scanf("%d",&y);

printf("c:");

scanf("%d",&z);

triangle( x,y,z );//判断三角形类型

}

void triangle( int a, int b, int c )

{

int temp;

if( a > b )

{//如果a比较b大,就相互转换

temp = a;

a = b;

b = temp;

}

if( a > c )

{//如果a比较c大,就相互调换

temp = a;

a = c;

c = temp;

}

if( b > c )

{//如果b比较c大,就相互调换

temp = b;

b = c;

c = temp;

}

if( a<0||b<0||c<0||a>200||b>200||c>200  )

{

printf("不构成三角形\n");

return ;

}

else

{

 if( a+b <= c )

{

printf("不构成三角形!!\n");

return ;

}

else

{

if( a == b || b == c)

{

if( a != c )

printf("等腰三角\n");

else

printf("等边三角\n");

}

else

{

printf("普通三角形\n");

}

   }

  }

}

  • 16
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值