栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

实验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:日期增1,A3:日期复位,A4:月份增1,A5:月份复位,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、对三角问题运用决策表法设计测试用例,并执行测试,撰写实验报告。

实验步骤:同上

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/856615.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号