基于因果图的测试用例设计及应用

发布时间:2018-10-07 16:36:01   来源:文档文库   
字号:

基于因果图的测试用例设计及应用

  摘要:在软件黑盒测试方法中,设计测试用例有多种方法,各种设计方法都有其侧重面。因果图主要表示测试软件输入条件的相互依赖与相互制约关系,以及由此导致的不同结果。介绍了因果图的基本概念,以及使用因果图设计测试用例的方法。

  关键词关键词:软件测试;因果图;测试用例;判定表

  中图分类号:TP306 文献标识码:A 文章编号:1672-78002016004-0044-03

  0引言

  在软件测试工作中,测试用例的设计和编写非常重要,一个成功的测试将在很大程度上依赖于所设计和使用的测试用例。

  设计测试用例方法一般有白盒测试和黑盒测试两类。在黑盒测试中,有些测试方法只测试了输入条件单独使用时的情况,未测试输入条件之间的相互依赖及相互制约关系,这将导致一些错误被遗漏。而因果图法则根据输入条件之间的相互依赖与相互制约关系,对所有可能的情况进行测试,从而获得所有相关的输出结果。

  1因果图测试法

  利用因果图设计测试用例就是从软件需求规格说明书的描述中找出原因(输入条件)和结果(输出结果),分析输入输出的各种情况,画出因果图,然后转换为判定表,最后根据判定表的每一列来设计测试用例[1]

  在因果图中,不仅要着重考虑所有输入条件的相互依赖与相互制约关系,还要考虑输出结果对输入条件的依赖关系,也就是什么样的输入组合会产生什么样的输出结果,即因果关系。

  1.1因果图图形符号

  因果图用4种图形符号描述原因与结果之间的关系(见图1)。在图形中以直线联接左右结点,左结点代表原因,用ci表示,右结点代表结果,用ei表示。1表示某状态出现,0表示某状态不出现。

  1.2因果图的约束关系

  为了表示原因与原因之间、结果与结果之间可能存在的约束关系,在因果图中附加了一些表示约束关系的图形符号,用4种图形符号描述原因之间的约束关系[2],一种符号描述结果之间的约束关系。原因之间约束关系见图2,结果之间的约束关系见图3

  1.3利用因果图生成测试用例基本步骤

  分析软件需求规格说明书,找出所有的原因(输入条件)和结果(输出条件),以及必要的中间结点,并给每个原因、中间结点和结果一个编号[3]。①分析软件需求规格说明书中的语义内容,找出原因与结果之间、原因与原因之间的对应关系,画出因果图;②由于语法或测试环境限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现,在因果图上加一些约束符号表示限制;③将因果图转换成判定表,根据判定表,编写测试用例(取出判定表的每一列设计一条测试用例)。

  2因果图技术应用

  下面以一个实例说明该方法的应用[4-5]

  有一个自动售货机,出售果汁或绿茶饮料,单价均为0.5元,对此售货机进行软件测试用例设计,其规格说明如下:①若投入0.5元硬币,按下果汁或者绿茶按钮,就会送出相应饮料;②若投入1元硬币,按下果汁或绿茶按钮,但售货机没有零钱找,则显示“零钱找完”的红灯亮,这时饮料不送出来且退还1元硬币;③若投入1元硬币,按下果汁或绿茶按钮,售货机有零钱找,则显示“零钱找完”的红灯不亮,在送出相应饮料的同时退还0.5元硬币。

  (1)根据这段说明可以分析出,自动售货机业务中共存在5个原因和5个结果,分别是:

  原因:①售货机有零钱找;②投入1元硬币;③投入0.5元硬币;④按下果汁按钮;⑤按下绿茶按钮。

  结果:

  ①售货机“零钱找完”灯亮。当售货机中没有零钱时亮红灯;

  ②退还1元硬币。当投入1元,售货机中没有零钱可找;

  ③退还0.5元硬币。当投入1元,售货机中有零钱可找;

  ④送出果汁饮料;

  ⑤送出绿茶饮料。

  为了表示处理的中间状态,根据售货机处理过程情况,建立4个中间结点:

  ①投入1元硬币且按下饮料按钮;

  ②按下果汁或绿茶按钮;

  ③应找0.5元零钱并且售货机有零钱找;

  ④钱已付清。

  (2)根据说明分析原因与结果之间的因果关系、原因与原因之间的组合关系和约束关系,画出因果图。

  原因和原因之间的约束关系:①原因“投1元”和原因“投0.5元”是一个“E”的关系,不可能同时投1元和投0.5元(不能同时为真),但可以都不投(可以同时为假);②原因“选果汁”和原因“选绿茶”是一个“E”的关系,不可能同时选果汁和绿茶(不能同时为真),但可以都不选(可以同时为假)。

  分析原因和结果之间的因果关系:①原因“有零钱”和结果“亮红灯”是一个“非”的关系,当售货机有零钱的时候,红灯不亮,而当售货机没有零钱的时候,红灯亮;②果汁和绿茶的价格是一样的,在系统中的处理方式也一样。“选果汁”和“选绿茶”原因只要有一个成立,即两者是“或”的关系时,就会导致中间结点“按下按钮”成立;③当原因“选果汁”和中间结点“钱付清”同时成立,即两者是“与”的关系时,可以出果汁。当原因“选绿茶”和中间结点“钱付清”同时成立,即两者是“与”的关系时,可以出绿茶;④考虑投1元情况:当原因“投1元”和中间结点“按下按钮”同时成立,即两者是“与”的关系时,中间结点“应找零钱”成立。当中间结点“应找零钱”和原因“有零钱”同时成立,即两者是“与”的关系时,中间结点“可以找零钱”成立。中间结点“可以找零钱”和结果“找0.5元”是恒等关系,中间结点“可以找零钱”和“钱付清”是恒等的关系;⑤考虑投0.5元情况:投入0.5元,不需找零钱。原因“投5角”和中间结点“钱付清”是恒等关系。原因“投0.5元”和中间结点“可以找零钱”只要有一个成立,即两者是“或”的关系时,就会导致中间结点“钱付清”成立;⑥考虑退还1元的情况:当投入1元,且按下果汁或绿茶按钮,但售货机没有零钱时,应退还1元。“没零钱”是原因“有零钱”的“非”关系,原因“没零钱”和中间结点“应找零钱”同时成立,即两者是“与”的关系时,会导致结果“退1元”成立。

  根据上述分析,画出因果图,如图4所示。

  (3)将因果图转换成判定表(见表1),1代表该状态出现,0代表该状态不出现。

  在判定表中,阴影部分表示因违反约束条件不可能出现的情况,如不可能同时投1元和5角,不可能同时按果汁和绿茶按钮,去除无效情况,再去除什么操作也没做的第1列和第17列,简化后的判定表如表2所示。

  (4)将简化后的判定表每一列取出来,设计一个测试用例。

  3结语

  在软件测试中使用因果图设计测试用例的好处是:考虑了多个输入条件之间的相互依赖与相互制约关系,可准确、全面地覆盖相应的条件组合情况,高效率地生成无遗漏且不重复的测试用例,从而获得所有相关的响应结果。但因果图也有不足之处:每个输入条件的可选状态不宜过多,最好只有2个(如按钮点击或不点击),如果输入条件的可选状态较多,组合量则会很大,此时不宜采用因果图法设计测试用例[6]

  参考文献参考文献:

  [1]徐芳.软件测试技术[M].2.北京:机械工业出版社,2012.

  [2]李文波,杨颖.因果图测试法在地铁网络应用软件合格性测试中的应用[J].机车电传动,20133):43-45.

  [3]赵琳.软件测试用例设计方法[J].煤炭技术,201210):167-169.

  [4]黎连业,王华.软件测试技术与测试实训教程[M].北京:机械工业出版社,2012.

  [5]侯勇.关键字驱动的自动化测试系统的研究[D].西安:西安电子科技大学,2006.

  (责任编辑:杜能钢)

本文来源:https://www.2haoxitong.net/k/doc/00f293bcb9f67c1cfad6195f312b3169a451ea3f.html

《基于因果图的测试用例设计及应用.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式