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

    不可能

  • 相关阅读:
    matlab学习笔记第十章——曲线拟合
    matlab学习笔记第九章——变换
    matlab学习笔记第八章——积分
    matlab学习笔记第七章——常微分方程(ODE)的数值解
    matlab学习笔记第六章——基本符号演算和微分方程
    matlab学习笔记第五章——代数方程求解和其他符号工具
    javaScript中奇葩的假值
    对于javaScript闭包,立即执行函数的用法的一些理解
    Jquery——简单的视差滚动效果,兼容PC移动端
    网站前端开发与动画相关常见问题解答
  • 原文地址:https://www.cnblogs.com/test-tech/p/4461346.html
Copyright © 2011-2022 走看看