hyapp-server/docs/自研游戏机器人策略测试用例.md
2026-06-12 19:40:21 +08:00

69 lines
4.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 自研游戏机器人策略测试用例
本文用于验证《自研游戏机器人策略与档位奖池产品文档》和《自研游戏机器人策略与档位奖池技术方案》里的核心策略,不覆盖语音房 `room-rps`
## 测试范围
- 自研 `dice`
- 自研 `rock`
- 机器人补位局。
- 真人对战局对用户连赢连输统计的影响。
- 档位独立奖池。
- 新用户保护、连输保护、成熟用户正常随机、奖池水位、风控准入、策略日志。
## P0 用例
| 编号 | 场景 | 输入 | 预期 |
| --- | --- | --- | --- |
| TC-P0-001 | 旧固定胜率不可用 | 后台保存自研游戏配置 | 请求和返回都不包含旧固定胜率字段 |
| TC-P0-002 | 档位奖池隔离 | dice 1000 和 dice 100000 同时下注 | 两个档位奖池余额、流水、健康状态互不影响 |
| TC-P0-003 | 黑色水位熔断 | 当前档位可用余额小于真人赢机器人最大净支出 | 不抽机器人,不写入机器人座位,策略日志记录 `POOL_BLACK` |
| TC-P0-004 | 红色水位回到基础随机 | 当前档位余额进入红色但仍能覆盖本局最大支出 | 不输出新用户保护强制结果,也不强制用户输 |
| TC-P0-005 | 策略日志完整 | 任意机器人补位尝试 | 记录用户阶段、风险分层、水位、策略、原因码、奖池快照 |
| TC-P0-006 | 奖池账务差异 | 大量机器人局结算后对账 | 初始余额 + 入池 - 出池 - 期末余额 = 0 |
## 新用户保护用例
| 编号 | 场景 | 输入 | 预期 |
| --- | --- | --- | --- |
| TC-NEW-001 | 低档新用户正反馈 | 新用户、低风险、1000 或 5000 档、绿色水位 | 根据阶段概率输出正反馈,命中后 `force_human_win` |
| TC-NEW-002 | 新用户连输保护 | 新用户最近连续 2 局非平局失败,失败来自真人局或机器人局 | 下一次机器人补位局跳过普通概率,直接 `NEW_USER_LOSE_STREAK_PROTECTION` |
| TC-NEW-003 | 真人局不消耗保护局数 | 新用户真人对战胜负 | 更新连赢连输和净输赢,但不增加有效机器人局和保护消耗 |
| TC-NEW-004 | rock 平局不消耗 | rock 机器人局平局 | 不增加有效机器人局,不增加保护局数,不增加补贴额度 |
| TC-NEW-005 | 生命周期额度不足 | 本局所需补贴超过剩余生命周期额度 | 降级正常随机,不输出保护强制结果 |
| TC-NEW-006 | 首日额度不足 | 本局所需补贴超过首日剩余额度 | 降级正常随机,不输出保护强制结果 |
| TC-NEW-007 | 单局保护上限不足 | 本局所需补贴超过单局保护上限 | 降级正常随机,不输出保护强制结果 |
| TC-NEW-008 | 高档位保护禁用 | 40000 或 100000 档新用户 | 新用户保护命中率为 0 |
## 成熟用户自然期目标胜率用例
| 编号 | 场景 | 输入 | 预期 |
| --- | --- | --- | --- |
| TC-OLD-001 | 50% 基线 | 成熟用户,后台自然期目标胜率配置 50 | 不输出强制结果,完全自然随机 |
| TC-OLD-002 | 默认 53% 命中 | 成熟用户,后台自然期目标胜率配置 53随机命中补正 | 输出用户赢,但不消耗新手保护额度 |
| TC-OLD-003 | 默认 53% 未命中 | 成熟用户,后台自然期目标胜率配置 53随机未命中补正 | 不输出强制结果,继续自然随机 |
| TC-OLD-004 | 红色水位正常随机 | 成熟用户所在档位进入红色水位但仍能覆盖支出 | 输出 `POOL_RED_NORMAL_RANDOM`,不输出 `force_human_lose` |
| TC-OLD-005 | 黑色水位熔断 | 成熟用户所在档位可用余额不足 | 不抽机器人,不结算为用户必输 |
| TC-OLD-006 | 连赢后不强制输 | 成熟用户连续赢达到任意阈值 | 不输出 `force_human_lose` |
## 风控用例
| 编号 | 场景 | 输入 | 预期 |
| --- | --- | --- | --- |
| TC-RISK-001 | 正常用户 | `risk_score` 0-29 | 可按水位和预算享受完整保护 |
| TC-RISK-002 | 轻度异常 | `risk_score` 30-49 | 保护强度降低 |
| TC-RISK-003 | 中度异常 | `risk_score` 50-69 | 保护强度明显降低 |
| TC-RISK-004 | 高风险 | `risk_score` 70+ | 新用户保护命中率 0但用户仍能正常随机游戏 |
## 随机模拟验收
随机模拟每次必须满足:
- 不固定 seed。
- 随机源来自系统随机数。
- 至少 1000 个用户。
- 用户下注档位、游戏、真人/机器人局、风险分层、初始状态都随机生成。
- 输出每个用户的完整轨迹。
- 输出汇总指标和失败项。
- 若出现高档位保护命中、高风险用户保护命中、rock 平局消耗保护、强制用户输、账务差异非 0则模拟不通过。