软件测试——NextDate函数正交测试法

401 阅读3分钟

本文已参与「新人创作礼」活动.一起开启掘金创作之路。

NextDate函数正交测试法

【题目描述】

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

(1)1≤month≤12

(2)1≤day≤31

(3)1912≤year≤2050

【题目分析】

此函数的主要特点是输入变量之间的逻辑关系比较复杂。复杂性的来源有两个:一个是输入域的复杂性,另一个是指闰年的规则。例如变量year和变量month取不同的值,对应的变量day 会有不同的取值范围,day值的范围可能是1~30或131,也可能是1~28或1~29。

 

解:

1. 以输入域划分等价类

关于每个月份的天数问题,可以详细划分为以下等价类:

M1 = {month: month有30天 }(4,6,9,11)

M2={month: month有31天,除去12月 }(1,3,5,7,8,10)

M3 = {month: month是2月}

M4 ={month: month是12月}

M5 = {month:month,如不合法,不在M1~M4中}

D1={day: 1day≤27}

D2={day: day=28}

D3={day: day=29}

D4={day: day =30]

D5={day: day=31}

D6={day:day不合法,如day<1或day>31}

Y1 ={year: year是闰年}

Y2={year: year不是闰年}

Y3={year:year不合法,如year<1912或year>2050}

 

2. 根据划分的等价类划出因果状态表

状态        因素monthdayyear
0M1D1Y1
1M2D2Y2
2M3D3Y3
3M4D4 
4M5D5 
5 D6 

 

(1)被测项目中一共有三个被测对象,每个被测对象的状态都不一样。

(2)选择正交表

1.表中的因素>=3

2.表中至少有三个因素的水平数>=3

3.行数取最少的一个

4.最后选中的正交表公式:L36(2103162)

通过分析,使用自动化正交表生成工具Allpairs生成正交测试用例如下:

image.png

注:~X表示可以取任意值

测试用例1

测试用例编号M-D-Y-NextDay-001
测试项目测试Nextday函数是否正常
测试标题Nextday函数
重要级别
预置条件处理输入参数外,其他情况正常
输入2月 28日 2008年
预期输入2008年2月29日

测试用例2

测试用例编号M-D-Y-NextDay-002
测试项目测试Nextday函数是否正常
测试标题Nextday函数
重要级别
预置条件处理输入参数外,其他情况正常
输入2月 28日 2022年
预期输入2022年3月1日

测试用例3

测试用例编号M-D-Y-NextDay-002
测试项目测试Nextday函数是否正常
测试标题Nextday函数
重要级别
预置条件处理输入参数外,其他情况正常
输入13月 1日 1900年
预期输入输入日期无效