决策表法测试感想

决策表法测试感想

将课本决策表法的例题做了一遍,发现决策表法确实测试严格,但是工作量也太大。

在做题的过程中发现主要有这些问题需要注意:

  1. 识别条件桩,需要分析问题本身,从适当的角度对输入进行划分。比如在题中,可能很容易注意到月份的划分里面2月分闰年与非闰年,但是将12月从31天的月份中剥离就不容易注意。
  2. 识别动作桩,需要对动作理解,能够在适当的层次表述动作。在这个题目中,层次太高就不能将动作进行合适的分解。
  3. 条件的组合策略,在组合决策表的条件时候,如果条件间组合位置不合适,在化简决策表的时候也会出现化简不完全的情况。

总的来说,决策表测试工作量太大了。

要求:NentDate函数输入年月日,输出下一天的日期。要求输入整数值,且满足以下条件:

Con1: 1≤month≤12

Con2: 1≤day≤31

Con3: 1900≤year≤2050

函数输入复杂性有来来源于每个月日期最大值不同,特别是在闰年的时候,2月最大从28增长成为29。对于这一类不可能动作,可以利用决策表法的“不可能”项表示。而且,由于输入之间有相互关系,所以不适合采用边界值法和等价类法。

对于每次操作,函数需要的动作有5种:

A1:day+1

A2:day=0

A3:month+1

A4:month=0

A5:year+1

对于输入来说,存在的条件项分为一下等价类

 

M1:{month有30天}

M2:{month有31天,除12月}//因为12月的时候会涉及到跨年的问题

M3:{month是12月}

M4:{month是2月}//因为2月在闰年会有29天

D1:{1≤day≤27}//不涉及跨月的情况

D2:{day=28}

D3:{day=29}

D4:{day=30}

D5:{day=31}

Y1:{leap year}

Y2:{not leap year}

可以构造决策表如下:

选项

规则

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

条件

C1

month

m1

m1

m1

m1

m1

m2

m2

m2

m2

m2

m3

m3

m3

m3

m3

m4

m4

m4

m4

m4

m4

m4

C2

day

d1

d2

d3

d4

d5

d1

d2

d3

d4

d5

d1

d2

d3

d4

d5

d1

d2

d2

d3

d3

d4

d5

C3

year

N

N

N

N

N

N

N

N

N

N

N

NN

N

N

N

N

y1

y2

y1

y2

N

N

动作

A1

不可能

 

 

 

 

T

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T

T

T

A2

day+1

T

T

T

   

T

T

T

T

 

T

T

T

T

 

T

T

       

 

A3

day=1

 

   

T

         

T

       

T

   

T

T

   

 

A4

month+1

 

   

T

         

T

             

T

T

   

 

A5

month=1

 

                         

T

           

 

A6

year+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T

 

 

 

 

 

 

 

 N表示任意取值

对决策表化简

 

选项

 

1,2,3

4

5

6,7,8,9

10

11,12,13,14

15

16

17

18

19

20

21,22

条件

C1

month

m1

m1

m1

m2

m2

m3

m3

m4

m4

m4

m4

m4

m4

C2

day

d1-d3

d4

d5

d1-d4

d5

d1-d4

d5

d1

d2

d2

d3

d3

d4

C3

year

N

N

N

N

N

N

N

N

y1

y2

y1

y2

N

动作

A1

不可能

 

 

T

 

 

 

 

 

 

 

 

T

T

A2

day+1

T

   

T

 

T

 

T

T

     

 

A3

day=1

 

T

   

T

 

T

   

T

T

 

 

A4

month+1

 

T

   

T

       

T

T

 

 

A5

month=1

 

         

T

         

 

A6

year+1

 

 

 

 

 

 

T

 

 

 

 

 

 

 

根据决策表测试设计测试用例

测试用例

month

day

year

预期输出

1,2,3

6

16

2001

1/7/2001

4

6

30

2001

17/6/2001

5

6

31

2001

不可能

6,7,8,9

1

16

2001

17/1/2001

10

1

31

2001

1/2/2001

11,12,13,14

12

16

2001

17/12/2001

15

12

31

2002

1/1/2002

16

2

16

2001

17/2/2001

17

2

28

2004

29/2/2004

18

2

28

2001

1/3/2001

19

2

29

2004

1/2/2004

20

2

29

2001

不可能

21,22

2

30

2001

不可能

posted @ 2015-04-27 20:54  12218064-测试技术  阅读(1485)  评论(0编辑  收藏  举报