JVS-Rules规则引擎系列篇(七):在线调试决策流——规则上线前如何验证结果
摘要规则配置完成后不能直接上线调用。在线调试是验证规则是否正确的重要环节。本文介绍JVS-Rules决策流调试时应该准备哪些测试数据、检查哪些节点结果以及如何定位常见规则问题。关键词在线调试、JVS-Rules、决策流、规则引擎、规则测试一、为什么规则上线前必须调试规则引擎降低了规则修改成本但不代表规则可以随意上线。规则配置错误同样可能造成业务事故。例如本该拒绝的客户被通过。本该通过的申请被拦截。额度计算不符合预期。决策表没有命中任何结果。结束节点没有返回调用方需要的字段。所以决策流配置完成后第一步应该是在线调试。二、在线调试验证什么在线调试不只是看流程能不能执行成功。至少要验证入参是否能被正确识别。条件分支是否走到预期路径。决策表是否命中正确规则。评分卡分值是否正确。函数返回值是否符合预期。结束节点输出字段是否完整。异常场景是否有合理结果。一个规则能跑通只代表没有明显执行错误。一个规则能上线需要证明关键业务场景都符合预期。三、准备测试数据测试数据要覆盖典型路径。以贷款准入为例至少准备通过样例年龄拒绝样例逾期拒绝样例边界样例边界数据很重要。很多规则问题不是出在正常值而是出在等于阈值的位置。四、调试时关注执行路径规则引擎的一个重要价值是能看到执行路径。调试时要确认流程是否从开始节点进入。条件分支是否按预期选择路径。是否执行到了目标节点。是否提前结束。是否有节点被跳过。如果结果不对不要只看最终输出。应该沿着执行路径逐步检查。五、调试决策表决策表常见问题包括字段值没有传入。字段类型不匹配。条件范围没有覆盖。规则顺序影响命中。默认结果没有配置。例如 riskScore 为 80如果规则写的是那么 80 分不会命中。这种边界问题非常常见。六、调试评分卡评分卡要检查每个评分项。不要只看总分。需要确认哪些评分项命中了。每项加了多少分。未命中的原因是什么。总分是否正确。总分是否传给后续节点。评分卡问题通常来自条件范围、权重配置或字段来源。七、调试函数如果决策流中使用了 API、DB、SQL、Groovy、Python、ETL 等函数要额外检查函数单独测试是否成功。决策流执行时传给函数的参数是否正确。函数返回结构是否和变量引用一致。函数异常时流程如何处理。函数测试成功不代表决策流里一定成功。因为测试参数和真实流程参数可能不同。八、上线前检查清单发布前建议检查所有必填入参都有测试。通过、拒绝、人工审核等路径都覆盖。决策表有默认结果或完整覆盖。评分卡边界值测试通过。结束节点返回字段完整。调用方需要的字段名称一致。执行日志能追溯关键结果。九、小结在线调试是规则上线前最关键的一步。在 JVS-Rules 中调试不仅是验证能否执行更是验证路径、命中、分值、输出和异常场景。规则引擎让规则变更更快但越快越需要规范的验证过程。