首页 > 其他分享 >测试用例设计方法六脉神剑——第二剑:招式组合,因果判定出世 | 京东物流技术团队

测试用例设计方法六脉神剑——第二剑:招式组合,因果判定出世 | 京东物流技术团队

时间:2023-12-07 13:33:02浏览次数:31  
标签:组合 六脉 认责 责任 测试用例 判定 条件 招式 因果

1 引言

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

2 因果图法

2.1 概念及原理

2.1.1 定义

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

2.1.2 方法的原则

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

1.因果图的基本图形符

测试用例设计方法六脉神剑——第二剑:招式组合,因果判定出世 | 京东物流技术团队_取值

2.因果图中的约束条件

测试用例设计方法六脉神剑——第二剑:招式组合,因果判定出世 | 京东物流技术团队_测试用例_02

从原因方面考虑主要有4种约束条件:

  • E(互斥、排他):a、b两个原因不会同时出现,最多只有一个出现
  • I(包含、或):a、b、c三个原因至少有一个出现
  • O(唯一):a、b两个原因必须有一个出现,且仅有一个出现
  • R(需求):a出现时b必定出现

从结果方面考虑主要有1种约束条件:

  • M(屏蔽):a出现时,b必定不出现;a不出现时,b则不确定

2.2 方法步骤

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

2.3 举个栗子

场景:基础坐席认责or申诉

测试用例设计方法六脉神剑——第二剑:招式组合,因果判定出世 | 京东物流技术团队_取值_03

1.先列出输入条件和输出条件

输入条件:

  • 1——认责or
  • 2——申诉
  • 3——个人责任
  • 4——组织责任
  • 5——三方责任
  • 6——责任人erp
  • 7-申诉原因
  • 8-描述

输出条件:

  • a——认责个人责任
  • b——认责组织责任
  • c——认责三方责任
  • d——申诉

2.画出因果图

测试用例设计方法六脉神剑——第二剑:招式组合,因果判定出世 | 京东物流技术团队_测试用例_04

3.将因果图转换为判定表,并将判定表的每一列拿出来就可作为一个测试用例

测试用例设计方法六脉神剑——第二剑:招式组合,因果判定出世 | 京东物流技术团队_取值_05

  • 选择“认责”、选择“个人责任”,填写:责任人erp、描述-》认责个人责任
  • 选择“认责”、选择“组织责任”,填写:描述-》认责组织责任
  • 选择“认责”、选择“三方责任”,填写:责任人erp、三方名称、描述-》认责三方责任
  • 选择“申诉”,填写:申诉原因、描述-》申诉

3 判定表法

3.1 概念及原理

3.1.1 定义

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

3.1.2 方法的原则

主要包含五部分:

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

3.2 方法步骤

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

3.3 举个栗子

场景:基础坐席认责or申诉

测试用例设计方法六脉神剑——第二剑:招式组合,因果判定出世 | 京东物流技术团队_约束条件_06

1.列判定表

测试用例设计方法六脉神剑——第二剑:招式组合,因果判定出世 | 京东物流技术团队_因果图法_07

2.对判定表进行简化

测试用例设计方法六脉神剑——第二剑:招式组合,因果判定出世 | 京东物流技术团队_测试用例_08

  • 选择“认责”、选择“个人责任”,填写:责任人erp、描述-》认责个人责任
  • 选择“认责”、选择“组织责任”,填写:描述-》认责组织责任
  • 选择“认责”、选择“三方责任”,填写:责任人erp、三方名称、描述-》认责三方责任
  • 选择“申诉”,填写:申诉原因、描述-》申诉

4 总结

测试用例设计方法六脉神剑——第二剑:招式组合,因果判定出世 | 京东物流技术团队_因果图法_09

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

作者:京东物流 王鹏

来源:京东云开发者社区 自猿其说Tech 转载请注明来源

标签:组合,六脉,认责,责任,测试用例,判定,条件,招式,因果
From: https://blog.51cto.com/u_15714439/8721080

相关文章

  • 关键字 开发-06 封装yaml文件直接生成测试用例
    前言前面几个章节,我们主要是如何通过yaml文件的数据自动转换成测试用例,并按照关键字去执行,如下是之前我们通过参数化的形式手动执行用例。fromutils.runimportRunByKey#获取文件路径file_path=Path(__file__).parent.joinpath('data','login.yml')@pytest.mark.para......
  • 软件测试/人工智能|基于录制的接口测试用例自动生成技术探究
    导言在现代软件开发中,接口测试是确保系统功能和性能的关键步骤。然而,手动编写接口测试用例往往耗费大量时间和资源。基于录制的接口测试用例自动生成技术通过简化这个流程,显著提高了测试效率和准确性。录制接口测试用例自动生成技术简介录制接口测试用例自动生成技术允许开发......
  • 软件测试/人工智能|使用 GraphWalker 实现自动化测试用例生成
    导言在软件开发中,测试是确保代码质量和稳定性的关键步骤之一。而自动生成测试用例可以大大提高测试效率和覆盖率。GraphWalker是一个基于模型的测试工具,能够帮助开发者通过定义和遍历图模型来自动生成高质量的测试用例。GraphWalker简介GraphWalker是一个开源的测试工具,它......
  • 接口自动化测试用例的设计
     做接口自动化的前提,需设计接口自动化测试用例--设计接口自动化测试用例的前提:如下一、搞清接口测试的目的: 二、搞清接口测试的优先级:三、搞清接口测试的业务逻辑和应用场景1、单接口场景的测试---如:登录2、依赖接口场景的测试---如:需先登录获取token,方能进行后续接口的......
  • 一文了解导入测试数据自动化生成测试用例的方法
    概述  在模型开发过程中,测试是一个不可或缺的环节。在测试过程中,测试用例的编写是所有测试工程师关注的重点和难点。在编写的过程中,可能会遇到各种各样的问题,比如历史测试用例的复用,比如在MiL阶段回放HiL阶段的测试数据来debug,又如需要通过Excel实现测试用例的存储等等。上述......
  • 为什么要写测试用例,测试用例写给谁看?
    “为什么要编写测试用例,测试用例写给谁看”,这个问题看似简单,但却涵盖了一系列复杂的考虑因素,并不太好回答。为了向各位学测试的同学们解释清楚“为什么编写测试用例是至关重要的”,我将通过以下5个方面进行展开:1、为什么要写测试用例?2、测试用例写给谁看?3、测试用例使用案例分......
  • python+pytest写测试用例后置清理数据操作
    一、teardown_function函数是为了在每个测试函数def执行后进行数据清理。#引入DbConnect类或者确保它已经被定义fromyour_db_moduleimportDbConnectdefteardown_function():try:print("后置操作-做数据清理,把批注通知删掉")db......
  • 咖啡馆测试用例
    1:推门进入,有欢迎光临提示音2:扫码,正进入点餐系统3:在吸烟区抽5包烟,触发烟雾警报4:点了五份炒饭,点餐失败5:点了100杯咖啡,点餐成功6:十个人一起进入,进入成功7:100个人一起进入进入失败......
  • 咖啡馆测试用例
    1.功能测试 预期输入:<1>微信/支付宝扫码点单<2>点单页面点单<3>付款页面付款<4>下单后确认送餐<5>客人按服务铃预期输出<1>点单页面,能成功扫码<2>点单页面能成功点单<3>付款页面能成功付款<4>送餐功能及时正常<5>服务按铃正常运行,且服务人员及时抵达 测试:<1>使......
  • 软件测试/人工智能|如何利用ChatGPT帮助我们编写测试用例
    简介在我们通过思维导图设计了我们的测试用例,下面就需要我们实际去编写测试用例了,一个测试用例通常包含以下要素:测试模块测试标题前置条件测试步骤预期结果实际结果本文就来给大家介绍一下如何使用ChatGPT来帮助我们编写测试用例。生成实战我们如何让ChatGPT帮我们编......