- WHY——为什么?为什么要这么做?理由何在?原因是什么?
- WHAT——是什么?目的是什么?做什么工作?
- WHERE——何处?在哪里做?从哪里入手?
- WHEN——何时?什么时间完成?什么时机最适宜?
- WHO——谁?由谁来承担?谁来完成?谁负责?
- HOW ——怎么做?如何提高效率?如何实施?方法怎样?
- HOW MUCH——多少?做到什么程度?数量如何?质量水平如何?费用产出如何?
流程检查
问题描述
导致流程运行时阻塞(进入执行引擎阻塞)问题top3
- 找不到出线(84.6)
- 表达式计算错误(3.14)
- 找不到变量(3.42)
统计数据发现,网关配置导致的流程配置异常占比80%,具有网关配置的流程图占比27%.
背景
业务流程定义是业务方通过实际业务需求绘制流程图,并添加相应节点/组件配置完成业务需求的过程.流程配置需要有一定的相关知识储备
复杂的流程需要使用网关(条件表达式)做流程控制,现有条件下,需要配置人员了解配置含义及具有相对清晰的思考方式,才能确保流程控制相关的配置符合MECE原则
网关配置是流程定义过程中极易出现错误的配置项,且网关配置错误平均需要耗费技术团队0.5-1pd时间,运维成本高
相关问题从正向的设计上做了多次调整(可视化编辑,非必填字段不能做网关变量校验),未能有效降低相关问题数量
了解相关问题后,尝试分析处理线上卡死流程
业务背景
可能导致网关配置异常的场景:
- 变量名填写错误
- 排他网关所有条件组合未被当前配置条件覆盖
- 不熟悉运算符优先级,误以为运算符是自左向右执行
- 一个当前符合mece的配置因为变量枚举增加而破坏整体规则
排他网关条件配置不正确可能带来的业务问题:
- 配置在发起节点后,可能导致特定的组合无法发起流程(这个问题处理起来比较简单,直接修改图再发布就好了)
- 排他网关导致某些路径完全不可达,运行一段时间后发现某些业务节点完全不可达,其他节点却命中的更多了
- 流程运行了很长,到了某个节点后无法处理,如果业务无法接受重新走流程,需要手动根据业务期望修改订单
目的
使用标准的算法持续检出流程控制中的潜在问题,辅助业务管理人员完成更缜密的流程设计.提升整体流程质量
检出60%以上归因为网关配置导致的线上流程卡死问题,报错的缺陷流程数收敛至20以下
MECE
MECE分析法,全称 Mutually Exclusive Collectively Exhaustive,中文意思是“相互独立,完全穷尽”。 对一个重大的议题,能够做到不重叠、不遗漏的分类,而且能够借此有效把握问题的核心,并成为有效解决问题的方法
Exclusive Gateway 排他网关
排他网关(也叫异或(XOR)网关,或更技术性的叫法 基于数据的排他网关), 用来在流程中实现决策。 当流程执行到这个网关,所有外出顺序流都会被处理一遍.其中条件解析为true的顺序流(或者没有设置条件,概念上在顺序流上定义了一个’true’) 会被选中,让流程继续运行.排他网关只会选择一条顺序流执行
测试用例设计
好的用例是一个完备的集合,能覆盖尽可能多的等价类和边界值.和能否发现缺陷无关.
好的测试用例
- 整体完备性 是一个有效测试用例组成的集合,能够完全覆盖测试需求
- 等价类划分准确 等价类集合中一个用例的表现能表达同一集合中其他数据的表现
- 等价类集合的完备性 确保所有等价类和边界值都已正确识别
深入了解被测软件的架构,才能设计出“有的放矢”的测试用例集,去发现系统边界以及系统集成上的潜在缺陷
必须深入理解被测软件的设计与实现细节,深入理解软件内部的处理逻辑. 设计用例应该根据原始需求,而不是开发完成的代码.
需要引入需求覆盖率和代码覆盖率来衡量测试执行的完备性,并以此为依据来找出遗漏的测试点