nextdate函数白盒测试问题 软件测试_nextdate的一个软件测试问题

满意答案

qq183285586

2013.03.14

采纳率:50%    等级:12

已帮助:11519人

NextDate函数的决策表测试用例设计

问题分析:NextDate函数的三个变量之间在输入定义域中存在一定的逻辑依赖关系,由于等价类划分和边界值分析测试都假设了变量是独立的,如果采用上述两种方法设计测试用例,那么这些依赖关系在机械的选取输入值时可能会丢失。而采用决策表法则可以通过使用“不可能动作”的概念表示条件的不可能组合,来强调这种依赖关系。

说明:当决策表规模(指规则的数目,n个条件的决策表有2n个规则)较大时,可以通过扩展条目决策表(条件使用等价类)、代数简化表、将大表“分解”为小表等方法。

为了获得下一个日期,NextDate函数执行如下操作:

如果输入日期不是当月最后一天,则把day变量的值加1;

如果输入日期是1~11月份中某月的最后一天,则把day变量的值复位为1,month变量的值加1;

如果输入日期是12月的最后一天,则day变量和month变量的值都复位为1,year变量的值加1。

关于最后一天的判断:

如果是有31天的月份(1,3,5,7,8,10,12),day变量值为31;

如果是有30天的月份(4,6,9,11), day变量值为30;

如果是有29天的月份(闰年的2月),day变量值为29;

如果是有28天的月份(非闰年的2月),day变量值为28。

根据所执行的操作,可列出NextDate函数的动作桩:

a1: 不可能;a2: day加1;a3: day复位;a4: month加1;a5: month复位;a6: year加1

考虑到决策表的规模,条件使用month、day、year变量的等价类,在以下等价类集合上建立决策表:

对于month变量的取值

M1: {mouth: mouth有30天};M2: {mouth:mouth有31天,12月除外};

M3: {mouth:mouth有12月}; M4: {mouth:mouth是2月};

对于day变量的取值

D1:{day:1≤day≤27};D2: {day:day=28};

D3: {day:day=29}; D4: {day:day=30}; D5: {day:day=31};

对于year变量的取值

Y1:{year:year是闰年};Y2: {year:year不是闰年}

month变量的有效等价类:

M1: {month=4,6,9,11} M2: {month=1,3,5,7,8,10}

M3: {month=12} M4: {month=2}

day变量的有效等价类:

D1: {1≤day≤27} D2:{day=28} D3:day=29} D4:{day=30} D5: {day=31}

year变量的有效等价类:

Y1: {year是闰年} Y2: {year不是闰年}

考虑各种有效的输入情况,程序中可能采取的操作有以下六种:

a1: day+2 a2: day=2 a3: day=1

a4: month+1 a5: month=1 a6: year+1

20分享举报

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值