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

实验3 黑盒测试:决策表法及测试用例设计,第1张

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

C1日

D1

Y

Y

D2

Y

Y

D3

Y

Y

D4

Y

Y

D5

Y

Y

C2月

M1

Y

Y

Y

Y

Y

M2

Y

Y

Y

Y

Y

M3

M4

C3年

Y1

Y2

A1:没有该日期

A2:日期加一

A3:日期复位

A4:月份增1

A5:月份复位

A6:年増一

序号

11

12

13

14

15

16

17

18

19

20

21

22

C1日

D1

Y

Y

D2

Y

Y

Y

D3

Y

Y

Y

D4

Y

Y

D5

Y

Y

C2月

M1

M2

M3

Y

Y

Y

Y

Y

M4

Y

Y

Y

Y

Y

Y

Y

C3年

Y1

Y

Y

Y2

Y

Y

A1:没有该日期

A2:日期加一

A3:日期复位

A4:月份增1

A5:月份复位

A6:年増一

注:

M1={月份:30天/月}M2={月份:31天/月,12月除外}M3={月份:12月},M4{月份:2月}

D1{日期:1<=日<=27},D2{日期:日=28},D3{日期:日=29},D4{日期:日=30},D5{日期:日=31},

Y1={年:闰年}Y2={年:平年}

条件桩

C1月份在{M1,M2,M3,M4}中之一C2日期在{D1,D2,D3,D4}中之C3年在{Y1,Y2}中之一

动作桩

A1:没有该日期A2:日期增1A3:日期复位A4:月份增1A5:月份复位A6:年增1

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

测试用例ID

预期输出

1-3

4

12/28/29

2022

2022年4月13/29/30日

4

4

30

2022

2022年5月1日

5

4

31

2022

没有该日期(error)

6-9

1

15/28/29/30

2022

2022年1月16/29/30/31日

10

1

31

2022

2022年2月1日

11-14

12

15/28/29/30

2022

2022年12月16/29/30/31日

15

12

31

2022

2002年1月1日

16

2

15

2022

2022年2月16日

17

2

28

2024

2024年2月29日

18

2

28

2022

2022年3月1日

19

2

29

2022

2022年3月1日

20

2

29

2022

没有该日期(error)

21,22

2

30/31

2022

没有该日期(error)

  1. 测试代码如下

package com.shu.exer;

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>=1000&&year<=9999))
            {
                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;
                    }
            }
        }
}

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

①测试情况部分截图:

②软件缺陷报告

模块名称

对NextDate问题进行软件测试

版本号

V1.0

测试人

XXX

缺陷类型

代码实现

严重级别

5级

可重复性

缺陷状态

New

测试平台

Win11

测试软件

Interlij IDEA

简述

因用户输入产生的错误类别不明确,不知道因输入产生错误的原因

*** 作步骤

  1. 运行程序,在控制台依次输入year:2022、month:12、day:32
  2. 回车

实际结果

Error

预期结果

提示用户“2022年12月没有32日”,请重新输入

注释

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

2、假设一个中国的航空公司规定:

  1. 中国去欧美的航线所有座位都有食物供应,每个座位都可以播放电影。
  2. 中国去非欧美的国外航线都有食物供应,只有商务仓可以播放电影。
  3. 中国国内的航班的商务仓有食物供应,但是不可以播放电影
  4. 中国国内的航班的经济仓除非飞行时间大于2小时就有食物供应,但是不可以播放电影。

请用程序实现上述功能,并用决策表法设计测试用例,再执行测试,撰写实验报告。

实验步骤:同上

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

实验步骤:同上

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/793334.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存