zoukankan      html  css  js  c++  java
  • 软件测试作业--等价类划分

    等价类划分法定义:将用户所有可能输入的数据,划分为若干中情况,把每一种情况找一些具有

    代表性的数据作为测试用例,而这种选择测试类的方法,就叫做等价类划分,它是属于黑盒测试的;

    ****用等价类划分法解决下列问题****

    NextDate 函数包含三个变量:month 、 day 和 year ,函数的输出为输入日期后一天的日期。 例如,输入为 2020年3月7日,则函数的输出为 2020年3月8日 。要求输入变量 month 、 day 和 year 均为整数值,并且满足下列条件:  

     ①1≤month≤12 

     ②1≤day≤31 

     ③1920≤year≤2050 

    作答格式:等价类表+测试用例表

    *********科普*********

    三五七八十腊 三十一天永不差,四六九冬三十整,惟有二月二十八,闰年还要把一日加

    --闰年的判断--(中国的年有平年、闰年之分,基本是4年一闰,其余都是平年,第一次接触‘闰’这个概念是学习鲁迅先生的短片小说“少年闰土”,但是他叫闰土,是因为他是闰月出生,五行缺土,闰月是个很复杂的概念;啊~,现在有点儿明白鲁迅先生的小说为何受欢迎了,童年真的不能回忆呀)

    普通闰年:能被4整除

    世纪闰年:能被400整除

    闰年2月29天,平年2月28天

    ***********************

    题目分析:输入变量:yearmonthday

    问题关键:

    年:分闰年和平年

    月:1、3、5、7、8、10、12-------永远31天||||||||||但8月31~下一天~9月1--------12月31天~下一天~下一年的1月1

      4、6、9、11---------永远30天

      2月--闰年29天,平年28天

    日:分类--1~27、28、29、30、31

     1 public static ArrayList NextDate(int nowYear, int nowMonth, int nowDay)
     2     {
     3         ArrayList arr = new ArrayList();
     4         if (nowYear <= 3000 && nowYear >= 1000 && nowMonth <= 12 && nowMonth >= 1 && nowDay >= 1 && nowDay <= getDays(nowYear, nowMonth))
     5         {
     6             int nextYear;
     7             int nextMonth;
     8             int nextDay;
     9             if (nowDay == getDays(nowYear, nowMonth))
    10             {
    11                 if (nowMonth == 12)
    12                 {
    13                     nextYear = nowYear + 1;
    14                     nextMonth = 1;
    15                     nextDay = 1;
    16                 }
    17                 else
    18                 {
    19                     nextYear = nowYear;
    20                     nextMonth = nowMonth + 1;
    21                     nextDay = 1;
    22                 }
    23             }
    24             else
    25             {
    26                 nextYear = nowYear;
    27                 nextMonth = nowMonth;
    28                 nextDay = nowDay + 1;
    29             }
    30             arr.Add(nextYear);
    31             arr.Add(nextMonth);
    32             arr.Add(nextDay);
    33         }
    34         else
    35         {
    36             arr.Add("错误年份");
    37             arr.Add("错误月份");
    38             arr.Add("错误天数");
    39         }
    40         return arr;
    41     }
    42     protected static bool isRun(int year)
    43     {
    44         if (year % 4 == 0 && year % 400 != 0)
    45         {
    46             return true;
    47         }
    48         return false;
    49     }
    50     protected static int getDays(int year, int month)
    51     {
    52         int days = 0;
    53         switch (month)
    54         {
    55             case 1:
    56             case 3:
    57             case 5:
    58             case 7:
    59             case 8:
    60             case 10:
    61             case 12: days = 31; break;
    62             case 2: days = isRun(year) ? 29 : 28; break;
    63             case 4:
    64             case 6:
    65             case 9:
    66             case 11: days = 30; break;
    67         }
    68         return days;
    69     }
    NextDate小程序

    ************* NextDate 函数的等价类*************

    输入条件

    有效等价类

    唯一标识

    无效等价类

    唯一标识

    year

    1920-2050间的闰年

    1

    year<1920

    12

    1920-2050间的平年

    2

    year>2050

    13

    month

    month=4,6,9,11

    3

    month<1

    14

    month=1,3,5,7,8,10

    4

    month>12

    15

    month=12

    5

     

     

    month=2

    6

     

     

    day

    1<=day<=27

    7

    day<1

    16

    day=28

    8

    day>31

    17

    day=29

    9

     

     

    day=30

    10

     

     

    day=31

    11

     

     

    ******************等价类测试用例*****************

    覆盖测试用例编号

    输入

    期望输出

    month

    day

    year

    3-10-2

    6

    30

    2007

    2007/7/1

    4-11-2

    8

    31

    2007

    2007/9/1

    6-7-2

    2

    27

    2007

    2007/2/28

    6-8-2

    2

    28

    2007

    2007/3/1

    6-9-1

    2

    29

    2004

    2004/3/1

    5-11-2

    12

    31

    2007

    2008/1/1

    3-11-2

    9

    31

    2007

    不可能的输入日期

         6-9-2

    2

    29

    2007

    不可能的输入日期

    6-10-2

    2

    30

    2007

    不可能的输入日期

    15-7-2

    15

    9

    2007

    变量month无效

    3-17-2

    9

    35

    2007

    变量day无效

    3-7-13

    9

    9

    2060

    变量year无效

  • 相关阅读:
    UOJ#310. 【UNR #2】黎明前的巧克力(FWT)
    cf24D. Broken robot(高斯消元)
    loj#2483. 「CEOI2017」Building Bridges(dp cdq 凸包)
    给博客园加一个会动的小人-spig.js
    loj#6033. 「雅礼集训 2017 Day2」棋盘游戏(二分图博弈)
    loj#6032. 「雅礼集训 2017 Day2」水箱(并查集 贪心 扫描线)
    洛谷P4103 [HEOI2014]大工程(虚树 树形dp)
    Oracle DB SQL 性能分析器
    ORA-000845 与 /dev/shm(tempfs)
    ID3DXMesh接口 创建自己的立方体网格
  • 原文地址:https://www.cnblogs.com/daisy99lijing/p/12359261.html
Copyright © 2011-2022 走看看