zoukankan      html  css  js  c++  java
  • 决策表法测试感想

    决策表法测试感想

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

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

    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

    不可能

  • 相关阅读:
    从原理层面掌握@InitBinder的使用【享学Spring MVC】
    array详解
    forward_list详解
    list详解
    deque详解
    vector详讲(三)实例
    vector详讲(二)迭代器
    vector详讲(一)
    numeric_limits<>函数
    seek()和tell()在文件里转移
  • 原文地址:https://www.cnblogs.com/test-tech/p/4461346.html
Copyright © 2011-2022 走看看