等价类、决策表测试

问题:输入年月日year、month、day,其中年份的有效取值范围为[1818,2018],请输出输入日期的前一天,例如输入2018年9月18日,输出为2018年9月17日。若输入日期非法,例如输入2013年2月30日,则输出“输入日期不存在”,若输入日期超出取值范围,例如输入2013年9月32日,则输出“输入日期超出范围”。

试采用决策表测试方法(弱健壮等价类测试)对上述问题设计等价类、决策表,并给出相应测试用例。

解:

  采用弱健壮性等价类测试设计

  弱健壮性等价类测试要求:对于有效输入,使用每一个有效类的一个值,对于无效输入,测试用例将拥有一个无效值,并保持其余的值都是有效的。根据确定等价类的原则:

  1. 输入条件规定了取值范围,或者值的个数,则可以确定一个有效等价类和两个无效等价类。
  2. 规定了输入数据的一组值,而且程序要对每一个输入值分别进行处理,这时要对每一个规定的输入值确立一个等价类,而对于这组值之外的所有值确立一个等价类
  3. 规定了输入数据必须遵守的规则,则可以确立一个有效等件类(即遵守规则的数据)和若干无效等价类
  4. 确知以划分的等价类中的各元素在程序中的处理方式不同,则应进一步划分成更小的等价类.

等价类划分:

有效等价类:基于输入域:

D1={day:1<=day<=28}; D2={day:day=29} ;  

D3={day:day=30} ,D4={day:day=31}

Y1={year:1818<=year<=2018;且year是平年}

Y2={year:1818<=year<=2018;且year是闰年}

            M1={monthmonth有30天};M2={monthmonth有31天,除去12月}

            M3={monthmonth为12月};M4={monthmouth是2月}

            基于输出域;

            P1={“输入日期不存在”}

            P2={“输入日期超出范围}

P3={“输出正常前一天”}

无效等价类:

M8={mouth:mouth<1},M9={mouth:mouth>12};

D8={day:day<1},D9={day:day>31};

Y8={year:year<1818}、Y9={year;year>2018};

根据等价类:列出条件桩与动作桩

条件桩:

“日”在D1中、“日”在D2中、“日”在D3中、“日”在D4中、“日”在D8中、

“日”在D9中

“年”在Y1中、“年”在Y2中、“年”在Y8中、“年”在Y9中

“月”在M1中、“月”在M2中、“月”在M3中、“月”在M4中、“月”在M8中

“月”在M9中.

动作桩:

 P1、P2、P3。

结合弱等价类健壮性测试以及决策表设计测试用例如下。

“-”代表取不到值,因为有些条件互斥。很容易看出这是带有互斥条件的决策表。

决策表:每一列代表一个测试用例。

序号

1

2

3

4

5

6

7

8

9

10

 

 

 

 

 

 

 

 

条件

Y1

1

1

-

-

1

-

-

-

-

-

Y2

-

-

1

1

-

1

-

-

1

1

Y8

-

-

-

-

-

-

1

-

-

-

Y9

-

-

-

-

-

-

 

1

-

-

M1

-

1

-

1

-

-

1

1

1

1

M2

-

-

1

-

-

-

-

-

-

-

M3

1

-

-

-

-

-

-

-

-

-

M4

-

-

-

-

-

-

-

-

-

-

M8

-

-

-

-

1

-

-

-

-

-

M9

-

-

-

-

-

1

-

-

-

-

D1

-

-

1

-

-

-

-

-

-

-

D2

-

-

-

-

-

-

-

-

-

-

D3

-

1

-

1

1

1

1

1

-

-

D4

1

-

-

-

-

-

-

-

-

-

D8

-

-

-

-

-

-

-

-

1

-

D9

-

-

-

-

-

-

-

-

-

1

 

动作

P1

0

0

0

1

0

0

0

0

0

0

P2

0

0

0

0

1

1

1

1

1

1

P3

1

1

1

0

0

0

0

0

0

0

 

具体的测试用例如下:

测试用例:

测试用例

输入

期望输出

    覆盖等价类

Year

Mouth

Day

1

2000

1

6

200015

Y2,M2,D1,P3

2

2000

2

30

输入日期不存在

  Y2,M1,D3,P1

3

2001

12

31

20011230

  Y1,M3,D4,P3

4

2001

4

30

2001429

  Y1,D3,M1,P3

5

2001

0

30

输入日期超出范围

  Y1,D3,M8,P2

6

2000

18

30

输入日期超出范围

Y2,D3,M9,P2

7

1000

4

30

输入日期超出范围

Y8,D3,M1,P2

8

3000

4

30

输入日期超出范围

Y9,D3,M1,P2

9

2000

4

0

输入日期超出范围

Y2,D8,M1,P2

10

2000

4

200

输入日期超出范围

Y2,D9,M1,P2

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
等价类测试思想是一种软件测试方法,它将输入数据和系统行为划分为不同的等价类,以便更有效地选择测试用例。等价类是指一组输入数据,当被测试时,有相同的预期结果。等价类测试的目标是在每个等价类中选择最具代表性和典型性的测试用例,以尽可能地覆盖系统的功能和错误。 主要的方法分类如下: 1. 等价类划分法(Equivalence Partitioning):将输入数据划分为相互等价的类别,从每个等价类中选择一个或多个测试用例进行测试。这种方法可以减少测试用例的数量,同时保证覆盖所有等价类。 2. 边界值分析法(Boundary Value Analysis):在等价类划分的基础上,重点关注边界值。边界值是指等价类的起始值、结束值,以及相邻等价类之间的交叉点。边界值分析方法通过选择接近边界值的测试用例,增加了对边界情况的覆盖度。 3. 错误推测法(Error Guessing):基于测试人员的经验和直觉,猜测可能存在的错误和异常情况,并设计相应的测试用例。这种方法主要依赖于测试人员的主观判断和经验。 4. 因果图法(Cause-Effect Graphing):将系统的功能和输入之间的因果关系绘制成因果图,然后根据因果图选择测试用例。这种方法可以帮助测试人员更全面地考虑系统的功能和输入之间的关系。 5. 决策表法(Decision Table Testing):将系统的决策规则绘制成决策表,根据决策表选择测试用例。这种方法适用于决策较为复杂且规则较多的系统。 以上是等价类测试思想的主要方法分类,可以根据具体的测试需求和系统特点选择合适的方法进行测试

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值