• 测试用例设计方法之——招式组合,因果判定


    引言

    上篇讲了等价类划分和边界值分析法,而这两种方法只考虑了单个的输入条件,并未考虑输入条件的各种组合、输入条件之间的相互制约关系的场景。基于此短板,因果图法和判定表法应运而生。

    因果图法

    概念及原理

    定义

    一种描述输入条件的组合以及每种组合对应的输出的图形化工具,它适合于检查程序输入条件的各种组合情况。

    方法的原则

    画因果图时,原因在左,结果在右,由上而下排列,并根据功能说明书中规定的原因和结果之间的关系,用下述基本符号连接起来,在因果图中还可以引入一些中间节点。
    因果图的基本图形符

    • 恒等

    • 因果图中的约束条件
    • 唯一
    • 要求
    • 强制
      从原因方面考虑主要有4种约束条件:
    • E(互斥、排他):a、b两个原因不会同时出现,最多只有一个出现
    • I(包含、或):a、b、c三个原因至少有一个出现
    • O(唯一):a、b两个原因必须有一个出现,且仅有一个出现
    • R(需求):a出现时b必定出现
      从结果方面考虑主要有1种约束条件:
    • M(屏蔽):a出现时,b必定不出现;a不出现时,b则不确定

    方法步骤

    • 找出所有的原因,原因即输入条件或输入条件的等价类;
    • 找出所有的结果,结果即输出条件;
    • 明确所有输入条件之间的制约关系以及组合关系; 哪些条件不能组合到一起,哪些条件可以组合到一起;
    • 明确所有输出条件之间的制约关系以及组合关系;哪些输出结果不能同时输出,哪些输出结果可以同时输出
    • 找出什么样的输入条件组合会产生哪种输出结果;
    • 画出因果图;
    • 把因果图转换成判定表/决策表;
    • 为判定表中的每一列表示的情况设计测试用例(每一列都是一条测试用例)。

    判定表法

    概念及原理

    定义

    判定表是分析和表达多逻辑条件下执行不同操作的情况的工具,是指一个表格,用于显示条件和条件导致动作的集合。

    方法的原则

    主要包含五部分:

    • 条件桩:问题的所有条件
    • 条件项:所有条件的取值组合
    • 动作桩:所有可能的操作
    • 动作项:在每一种条件取值组合的情况下,执行动作桩中的哪些动作
    • 规则:一种条件取值组合与其对应的动作组合一种条件取值组合与其对应的动作组合(即判定表中贯穿条件项和动作项的一列)构成判定表的一个规则

    方法步骤

    • 列出所有的条件桩和动作桩(输入和输出);
    • 填入条件项(输入项);
    • 填入动作项,得到初始判定表;
    • 简化判定表(合并相似规则(相同动作))

    说明总结

    方法因果图法/判定表法
    核心考虑输出条件对输入条件的信赖关系,即因果关系
    优点1.有助于用一个系统的方法选择出高效的测试用例集;2.通过将规格说明转换为布尔逻辑网络,就可以指出规格说明的不完整和不明确之处
    缺点1.针对条件组合数量庞大的场景,会产生大量的测试用例;2.通常它不能生成全部应该被确定的有效测试用例;
    适用场景在界面中有多个控件,控件之间有组合或限制关系,不同的输入组合会对应不同的输出结果

    但因果图和判定表法在变量值很多、排列组合数量极大的场景下,会生成非常庞大且冗余的测试用例,此时我们很难对所有组合场景进行全量测试用例覆盖,这个时候就是正交试验法大展神威的时候了,让我们一起来学习吧~

  • 相关阅读:
    ArcMap镶嵌数据集的创建、数据导入与数据范围修改方法
    三道有趣的算法题
    Radau Quadrature
    Python函数绘图与高等代数互融实例(三):设置X|Y轴文本标签|网格线
    一步登顶还是步步维艰?Java 资深架构师撰下的“阿里 P7 成神之路”
    伴随第四次电气革命实现半导体行业的可持续智能增长
    Wonderware 实时库——一套可落地的传统工业实时库
    多线程编程
    Kafka JNDI 注入分析(CVE-2023-25194)
    ios不越狱虚拟定位教程:如何在iOS设备上实现无需越狱的虚拟定位
  • 原文地址:https://blog.csdn.net/fanfangyu/article/details/125891447