规则引擎回归测试规则
适用于业务规则频繁迭代场景,确保规则变更后核心结果不回归。
规则文件内容
请复制以下内容,保存为 .cursor/rules/rule-regression-test-suite.mdc:
markdown
---
description: 规则回归测试矩阵、黄金样本与边界用例治理规则
globs: tests/rules/**, src/modules/rules/**, docs/test-cases/**
---
# 规则引擎回归测试业务规则
## 1. 核心原则
- **变更必回归**:任何规则调整必须触发回归测试。
- **边界优先**:优先覆盖阈值边界与异常路径。
- **结果可复核**:回归结果必须可追溯到样本与版本。
## 2. 用例分层规则
- `P0`:关键结算/合规/安全规则
- `P1`:核心业务流程规则
- `P2`:辅助性与展示类规则
## 3. 测试矩阵规则
- 每条规则至少覆盖:正常、边界、异常三类用例。
- 关键公式需覆盖上下边界 ±1 单位。
- 多条件组合至少覆盖两两组合场景。
```ts
interface RegressionCase {
caseId: string;
ruleCode: string;
input: Record<string, unknown>;
expected: Record<string, unknown>;
priority: 'P0' | 'P1' | 'P2';
}4. 黄金样本规则
- 关键规则维护黄金样本集,不可随意覆盖。
- 样本更新必须附变更说明与审批人。
- 新旧规则并行期需双跑对比。
5. 执行门禁规则
P0回归失败禁止合并发布。P1失败需给出豁免单号或修复计划。- 回归通过率低于阈值触发质量告警。
6. 差异分析规则
- 输出需包含:新增失败、已修复、持续失败。
- 同一规则连续失败
>=3次标记高风险。 - 差异报告需附输入快照与预期/实际对比。
7. 自动化规则
- CI 默认执行
P0 + P1,夜间全量执行。 - 历史失败用例应作为 smoke 套件保留。
- 测试数据生成器需固定随机种子。
8. 数据模型约束
rule_test_cases必须包含:case_id,rule_code,priority,input_snapshot,expected_snapshotrule_test_runs必须包含:run_id,rule_code,case_id,result,duration_ms,executed_atrule_test_diffs必须包含:run_id,case_id,expected,actual,diff_summary
9. 实施注意事项
- 回归数据建议按规则版本分目录管理。
- 关键规则建议增加属性测试(property-based testing)。
- 对时间相关规则要固定时区与基准时间。
## 适用场景
- 业务规则持续迭代项目
- 风险敏感逻辑回归验证
- 规则引擎上线前质量门禁
