决策表法测试感想

决策表法测试感想

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

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

  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


不可能

时间: 2024-08-07 04:31:02

决策表法测试感想的相关文章

决策表法

决策表法介绍: >>在因果图法设计测试用例的步骤中"因果图转换成判定表"中已使用了判定表.判定表又称决策表,为决策表发的核心,是分析和表达 多逻辑条件下执行不同操作情况的有效工具.因此,决策表法是一种能够将复杂逻辑关系和多条件组合情况表达得较为明确的方法, 适用于程序中输入输出较多或输入与输出之间相互制约条件较多的情况.综合所有黑盒测试方法来讲,基于决策表法的测试是最严格 最具有逻辑性的. 决策表法模型.步骤: >>决策表法模型图: >>条件桩:为问

初读构建之法的感想和对课程的期待

看了构建之法的前几节,最开始的发现在于我之前理解的软件工程是错误的,连狭隘都谈不上吧,因为机器的以为软件工程就是编程,其实不然,像书中所说软件=程序+软件工程.可以说软件的基础是程序,而软件工程是将一个编好的程序通过需求分析,测试等操作变成一个较成熟的程序.他需要一个规范的流程,团队的协作,当然也需要个人的技能.这里我们就要提到个人技能了,虽说以团队的形式合作,但一个人的职业技能还是能够影响甚至决定全局的,如书中提到一场足球赛可以有很多种战术协作,但每一次的传球射门都要凭借每个球员单独来完成,所

白盒测试以及基路径法测试

测试用例: 语句覆盖: 1. x=3,y=3,z=0. 预期输出 x=2 (a(T),b(T)) 2. x=3,y=3,z=1. 预期输出 x=1 (a(F),b(T)) 判定覆盖: 1. x=3,y=1,z=0. 预期输出 x=2 (a(F),b(F)) 2. x=3,y=3,z=0. 预期输出 x=2 (a(T),b(T)) 条件覆盖: 1. x=1,y=1,z=1. 预期输出 x=0 (a(F,F),b(F,F)) 2. x=3,y=3,z=0. 预期输出 x=2 (a(T,T),b(T,

构建之法阅读感想

最近读了<构建之法>,本书介绍了很多IT行业的理论和技术的使用,并从这些新理念.新技术,总结了我们在未来有用的工作,介绍了软件测试,软件工程师的成长,代码规范,团队的发展,软件和软件的创新等项目的开发过程和全面发展的重要性. 在引言中,软件工程包括以下几个方面:软件需求分析.软件设计.软件构造.软件测试和软件开发维护.软件开发活动(建设管理.源代码管理.软件设计.软件测试.项目管理)是软件工程的核心.大纲概述,思路清晰. 单元测试应在最低的功能/参数上验证程序的正确性.单元测试必须由最熟悉代码

因果图法测试小例

上一节软件测试课上,学习了因果图法,就课上的例子,我也尝试了自己的解法. 原题: 产品说明书:有一个处理单价为1元5角钱的盒装饮料的自动售货机软件.若投入1元5角硬币,按下“可乐”.“雪碧”.或“红茶”按钮,相应的饮料就送出来.若投入的是2元硬币,在送出饮料的同时退还5角硬币. 解析: 根据题目,可以将原因分为5种,而结果分为4种. 因:1.投入1元5角硬币 2.投入2元硬币 3.按下‘可乐’按钮 4.按下‘雪碧’按钮 5.按下‘红茶’按钮 果:1.退出5角硬币 2.送出‘可乐’ 3.送出‘雪碧

C语言&amp;*符号使用及大端法小端法测试

工具:Microsoft Visual C++ 6.0 例子: int a = 1; int* b = &a; C语言规定a表示存储单元中的数据,&a表示存储单元的地址,b存储的就是a的地址 C语言规定*a代表a中存储的地址对应的存储单元中的数据,所以*b就是等于1 C语言的&*介绍完毕,开始测试本机是大端法,还是小端法? #include <stdio.h> #include <stdlib.h> int main(){ int a = 0x1234567

&lt;&lt;构建之法&gt;&gt;略读感想

经过对构建之法这本书的快速阅读和学习,我有以下疑问. 1.对软件工程来说是应该更注重结果和功能的实现还是更注重代码的易读和完整? 2.应该怎样平衡不同用户的不同需求以达到使大多数人满意的目的? 3.应该怎样避免软件在后期运行中出现较多的bug,怎样能更好得修补漏洞,并让它对其它模块所造成的影响达到最小化? 4.什么样的软件才叫一个好的软件? 5.在合作编写代码的时候应该注意什么问题? 6.软件行业的创造是什么样的?应该达到什么标准才叫创新? 7.软件工程师的职业道德标准是什么?最应该坚持什么样的

测试感想(一)

我入职测试行业近两年,是从其它行业转入到测试方面的,当初决定去参加培训,也是经过好久的思考,最初的选择是源于觉得自己是一个内向的女孩,想找份收入有提升空间,所以要选择一份适合自己性格的工作,咨询了几个测试行业的老乡,他们是做银行方面项目的,虽然加班,但是工资还不错,加班会有另外的加班费,对我来讲,找一个能找到一份薪资分配合理的工作,是我找工作的理想状态,即合理8小时班,加班有加班费,根据劳动来拿工资,而我所在的公司在当时来讲,已经在成立分公司,这边总是有撤掉部门的趋势,所以犹豫了好久,最终选择了

工作总结--如何定位web系统前后台的bug,以及bug分析/测试感想

对于web项目前台和后台bug定位分析:一. 系统整体了解 懒企鹅营销服务平台用的架构:web前端: Bootstrap 3.0 组件丰富,兼容性好,界面美观 Server端: jsp+Servlet+json 公司技术力量储备丰富,技术成熟,有很多成熟的模块可以直接使用 数据库: mySql 免费,相对成熟 前台: 涉及到jstl,jsp,js,css,html方面比较多后台:servlet,jms,ejb, 还有很多框架,struts,hibernate,spring,ibatis等,我们用