“デシジョンテープル”看起来很唬人,翻译过来就是“Decision Tables”,再翻译过来就是“决策表”,小伙伴们都笑了,还以为多么高大上,原来是最基础的因果图、决策表,这些在刚刚接触软件测试的时候就学过,小小来了一句:“温故而知新”。
先温故:
因果图,算是组合测试的另外一种。在方法之一中我们谈到PICT,适用于输入条件之间不存在相互制约或者制约关系较简单的情况。而因果图,则适用于输入条件之间存在较强、较复杂的相互制约关系,如A元素某些因子直接影响结果,而A元素其他因子则需考虑B\C两种因素的因子条件,共同影响结果,这种情况可以考虑因果图。
基于前期需求分析阶段,测试人员对于因(输入条件或者输入条件的等价类)、果(输出条件)已经确定,再根据因果图的关系符号、约束符号,那么一张因果图就可以形成。再将因果图转换为判定表,基于判定表的每一列进行测试用例设计。举个好老好老的例子吧!
有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入5角钱或1元钱的硬币,押下【橙汁】或【啤酒】的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示【零钱找完】的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示【零钱找完】的红灯灭,在送出饮料的同时退还5角硬币。(为什么说它老?现在哪有5毛钱的饮料?5毛钱能买到啤酒?水都没不到!)
上图就是因果图和决策表,决策表中灰色部分是因为输入条件之间的约束导致部分用例无效。整体思路还是按照五个因素(输入条件)、每个因素两个因子(TRUE\FALSE)的全组合进行的用例设计(32件),再把无效用例删除,从这个例子来看,用例消减在50%左右,一旦因果关系再复杂一些,用例量依然很庞大,如何更好地再次进行精选呢?再者,因果图的构建没有较好的工具平台支撑,用例的形成还是需要人工的梳理和判断,怎么提升效率?
再知新:
如何解决上述的三个问题:1.构建平台化 2.设计自动化3.用例精简化,各位看官就要认真听小小说道说道了!
“デシジョンテープル”在日本的软件测试设计中有两种方法的推广,CEG、CFD。
CEG: Cause Effect Graph
CFD: Cause Flow Diagram
两种方法的基础理论一致,这里只介绍其中一种CEG,以及对应的测试工具CEGTest。
1.工具的下载
在
http://www.yahoo.co.jp/中搜索“CEGTest”即可找到下载位置,通过web网页形式进行呈现,下图左半部分是下载的工具版本“CEGTest-1.6-20130804”,右半部分是网页打开的样子,‘NODE’构建因果的节点,‘/’构建关系,中间五个构建约束条件,工具自带导入导出功能,这样就形成了较为便捷的构建平台,解决问题1。
.....................................
(如何解决问题2、解决问题3,未完待续,感兴趣可以私信)