实验3、黑盒测试:决策表法及测试用例设计

一、实验目的

1、掌握决策表的概念。

2、掌握决策表测试用例设计法。

二、实验任务

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

1、对NextDate问题运用决策表法设计测试用例,并执行测试,撰写实验报告。

NextDate (int month, int day, int year)函数规定输入三个整数:month、day和year,函数的输出为输入日期后一天的日期。例如,输入为2006年3月7日,则函数的输出为2006年3月8日year满足1920≤year≤2050

实验步骤:

  1. 构造决策表

序号

1

2

3

4

5

6

7

8

9

10

11

12

13

14

1920≤year≤2050

Y

Y

Y

Y

Y

Y

Y

Y

N

Y

Y

Y

Y

Y

是闰年2月

Y

Y

N

N

N

N

N

N

Y

N

N

N

N

0<month<13

Y

Y

Y

Y

Y

Y

Y

Y

N

N

Y

Y

Y

是大月(除12月

Y

Y

Y

是小月

Y

Y

Y

是12月

Y

Y

Y

0<day<32

Y

Y

Y

Y

N

N

0<day<31

Y

Y

N

0<day<30

Y

Y

0<day<29

day=28

day=29

Y

N

day=30

Y

N

day=31

Y

N

Y

N

Error

day+1

month+1,day=1

year+1,month=1, day=1

  1. 根据决策表设计测试用例,得到测试用例表(测试用例表格式同实验1)。

测试用例ID

预期输出

1

1881

11

11

error

2

2055

1

1

error

3

1999

1

1

1999年1月2日

4

2001

13

1

error

5

2024

12

33

error

6

2008

12

31

2009年1月1日

7

2030

5

20

2030年5月21日

8

2022

8

31

2022年9月1日

9

2020

2

30

error

10

2020

2

12

2020年2月13

11

2024

4

31

error

 

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

测试模块:

NextDate

开 发 者:

测 试 员:

测试日期:

2024.4.10

软件缺陷列表

缺陷ID

缺陷详细信息

BUG1

BUG2

BUG3

BUG4

测试过程:

这里只对两组测试用例进行了测试,如果有需要的可以根据以下提供的代码对其他的测试用例进行测试。

测试代码:

import java.util.Scanner;

public class NextDate {

        public static void main(String[] args) {

            // TODO Auto-generated method stub

            int year;

            int month;

            int day;

            Scanner in = new Scanner(System.in);

            System.out.println("year:");

            year = in.nextInt();

            while(!(year>=1920&&year<=2050))

            {

                System.out.println("error");

                return;

            }

            System.out.println("month:");

            month = in.nextInt();

            while(month>12||month<1)

            {

                System.out.println("error");

                return;

            }

            System.out.println("day:");

            day = in.nextInt();

            if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)

            {

                while(day>31||day<1)

                {

                    System.out.println("error");

                    return;

                }

            }

            if(month==4||month==6||month==9||month==11)

            {

                while(day>30||day<1)

                {

                    System.out.println("error");

                    return;

                }

            }

            if((year%4==0&&year%100!=0)||(year%400==0))

            {

                if(month==2)

                {

                    if(day>29)

                    {

                        System.out.println("error");

                        return;

                    }

                    else

                    {

                        if(day==29)

                        {

                            day=1;

                        }

                        else

                        {

                            day++;

                        }

                    }

                }

            }

            else

            {

                if(month==2)

                {

                    if(day>28)

                    {

                        System.out.println("error");

                        return;

                    }

                    else

                    {

                        if(day==28)

                        {

                            day=1;

                        }

                        else

                        {

                            day++;

                        }

                    }

                }

            }

            switch (month) {

                case 1:

                case 3:

                case 5:

                case 7:

                case 8:

                case 10:

                    if(day==31)

                    {

                        month++;

                        day=1;

                        System.out.println(year+"年 "+month+"月 "+day+"日");

                        break;

                    }

                    else

                    {

                        day++;

                        System.out.println(year+"年 "+month+"月 "+day+"日");

                        break;

                    }

                case 2:

                    if(day==1)

                    {

                        month++;

                        System.out.println(year+"年 "+month+"月 "+day+"日");

                        break;

                    }

                    else

                    {

                        System.out.println(year+"年 "+month+"月 "+day+"日");

                        break;

                    }

                case 4:

                case 6:

                case 9:

                case 11:

                    if(day==30)

                    {

                        month++;

                        day=1;

                        System.out.println(year+"年 "+month+"月 "+day+"日");

                        break;

                    }

                    else

                    {

                        day++;

                        System.out.println(year+"年 "+month+"月 "+day+"日");

                        break;

                    }

                case 12:

                    if(day==31)

                    {

                        year++;

                        month=1;

                        day=1;

                        System.out.println(year+"年 "+month+"月 "+day+"日");

                        break;

                    }

                    else

                    {

                        day++;

                        System.out.println(year+"年 "+month+"月 "+day+"日");

                        break;

                    }

            }

        }

}

3、对三角问题运用决策表法设计测试用例,并执行测试,撰写实验报告。

实验步骤:

  1. 构造决策表

序号

1

2

3

4

5

a,b,c>0

Y

Y

Y

Y

N

a+b>c

Y

Y

Y

N

a=b=c

Y

a=c

Y

不是三角形

普通三角形

等边三角形

等腰三角形

  1. 根据决策表设计测试用例,得到测试用例表(测试用例表格式同实验1)。

测试 用例ID

a

b

c

预期输出

1

-1

3

2

输入有误

2

15

215

15

输入有误

3

22

22

22

等边三角形

4

31

40

19

普通三角形

5

99

121

200

普通三角形

6

57

57

42

等腰三角形

7

2

2

3

等腰三角形

测试过程:

这里只对一组测试用例进行了测试,如果有需要的可以根据以下提供的代码对其他的测试用例进行测试。

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

测试模块:

三角形

开 发 者:

测 试 员:

测试日期:

2024.4.10

软件缺陷列表

缺陷ID

缺陷详细信息

BUG1

当输入57,57,42时应显示等腰三角形,但显示了普通三角形

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 )

{

if( a != c )

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

else

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

}

else

{

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

}

   }

  }

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值