Files
ai-customer-service/test/CASES.md
Your Name cf46b27610 fix: P0-1 RateLimiter并发写安全 + P0-2工单操作错误码区分 + P1 rows.Close修复
P0-1 (limits.go): Allow()方法改为全程使用写锁保护counters map读写,避免RLock写入时的data race
P0-2 (ticket_workflow.go+ticket_handler.go): Assign/Resolve/Close操作先查询ticket存在性和状态,返回明确的CS_TICKET_4001/CS_TKT_4002/CS_TICKET_4092/CS_TICKET_4093错误码,handler根据错误前缀路由HTTP状态码
P1-1 (ticket_store.go): 移除GetStats中3处手动rows.Close(),只保留defer Close()
2026-05-01 20:56:25 +08:00

6.8 KiB
Raw Permalink Blame History

AI-Customer-Service 测试用例

版本v1.0 | 状态:初稿


AC-01 多渠道消息接入

用例编号 名称 前置条件 测试步骤 预期结果 优先级
TC-01.1 Telegram 消息接入 Webhook 已配置 1. 发送消息 "如何创建 API Key" 系统接收,返回 200 P0
TC-01.2 Discord 消息接入 Webhook 已配置 1. 发送消息 系统接收,返回 200 P0
TC-01.3 微信消息接入 Webhook 已配置 1. 发送消息 系统接收,返回 200 P0
TC-01.4 Widget 消息接入 Widget 已部署 1. 发送消息 系统接收,返回 200 P0
TC-01.5 Webhook 验证 Webhook 已配置 1. 发送签名错误的请求 返回 401 或 403 P1

AC-02 意图识别与知识库回复

用例编号 名称 前置条件 测试步骤 预期结果 优先级
TC-02.1 API Key 意图 知识库已配置 1. 发送 "如何创建 API Key" 回复包含步骤指引、代码示例 P0
TC-02.2 配额查询意图 知识库已配置 1. 发送 "我的配额还剩多少" 系统调用只读 API 查询并返回精确数值 P0
TC-02.3 置信度达标 知识库已配置 1. 发送标准问题 回复置信度 ≥ 0.85 P1

AC-03 用户数据只读查询

用例编号 名称 前置条件 测试步骤 预期结果 优先级
TC-03.1 Token 消耗查询 用户已绑定 1. 发送 "今天的 Token 消耗是多少" 3s 内返回精确数值 P0
TC-03.2 跨用户查询阻止 登录用户 A 1. 尝试查询用户 B 的数据 请求被拒绝,返回 403 P0

AC-04 多轮对话与上下文保持

用例编号 名称 前置条件 测试步骤 预期结果 优先级
TC-04.1 上下文关联 用户已发送初始问题 1. T0 发送 "怎么设置 API Key" 2. T0+30s 追问 "那个 Key 的有效期是多久" 正确理解 "那个 Key" 指代上文 P0
TC-04.2 上下文窗口 已进行 5 轮对话 1. 继续第 6 轮 第 1 轮消息不在上下文中 P1

AC-05 身份校验

用例编号 名称 前置条件 测试步骤 预期结果 优先级
TC-05.1 邮箱验证成功 用户未绑定 1. 输入邮箱 2. 输入正确验证码 2s 内会话关联至账户 P0
TC-05.2 验证码错误 用户未绑定 1. 输入错误验证码 3 次 会话锁定,生成转人工工单 P0

AC-06 大模型故障 Failover

用例编号 名称 前置条件 测试步骤 预期结果 优先级
TC-06.1 主模型故障 主模型已配置 1. Mock 主模型返回 500 2. 发送消息 5s 内切换至备用模型,回复正常 P0
TC-06.2 双模型故障 主备模型均已配置 1. Mock 双方均返回 500 2. 发送消息 返回兑底回复 + 生成工单 P0

AC-07 兑底回复与工单生成

用例编号 名称 前置条件 测试步骤 预期结果 优先级
TC-07.1 兑底回复 双模型均故障 1. 发送 "我的账户被封了怎么办" 10s 内返回兑底文本 P0
TC-07.2 工单生成 双模型均故障 1. 发送消息 自动生成工单,包含 session_id、渠道、问题 P0

AC-08 明确转人工

用例编号 名称 前置条件 测试步骤 预期结果 优先级
TC-08.1 关键词触发 处于自动回复 1. 发送 "我要找人工客服" 2s 内停止自动回复,返回排队提示 P0
TC-08.2 排队显示 工单队列有待处理 1. 发送转人工关键词 显示排队人数 P1

AC-09 敏感意图自动转人工

用例编号 名称 前置条件 测试步骤 预期结果 优先级
TC-09.1 退款意图 用户已绑定 1. 发送 "我要申请退款" 3s 内生成 P1 工单,不返回自助指引 P0
TC-09.2 安全意图 用户已绑定 1. 发送 "我的数据可能泄露了" 3s 内生成 P1 工单 P0

AC-10 工单后台分配与处理

用例编号 名称 前置条件 测试步骤 预期结果 优先级
TC-10.1 工单排序 存在多个工单 1. 打开工单看板 按优先级 P1 > P2 > P3 与时间升序排列 P0
TC-10.2 工单分配 存在未处理工单 1. 客服点击接收 1s 内状态变更为处理中并锁定 P0

AC-11 知识库条目管理

用例编号 名称 前置条件 测试步骤 预期结果 优先级
TC-11.1 条目发布 已创建条目 1. 点击发布 2. 等待 30s 30s 内生效 P0
TC-11.2 条目引用 条目已发布 1. 用户询问相关问题 回复引用该条目 P1

AC-12 对话埋点与监控

用例编号 名称 前置条件 测试步骤 预期结果 优先级
TC-12.1 埋点上报 系统已上线 1. 完成一次会话 2. 等待 5s 埋点事件上报至监控平台 P1
TC-12.2 监控大盘刷新 已上报埋点 1. 等待 1 分钟 Grafana 大盘刷新展示 P1

AC-13 权限边界

用例编号 名称 前置条件 测试步骤 预期结果 优先级
TC-13.1 越权写操作 攻击者尝试 1. 尝试调用非只读接口 100ms 内返回 403 P0
TC-13.2 审计记录 越权尝试后 1. 查询审计日志 记录包含 IP、时间、目标接口 P0

边缘场景 / 失败路径

用例编号 名称 前置条件 测试步骤 预期结果 优先级
TC-E1 超长消息 会话已开始 1. 发送 >2000 字符的消息 截断至 2000 字符,提示分段 P1
TC-E2 高频消息 会话已开始 1. 1 秒内发送 10 条消息 启用频率限制,合并为 1 条 P1
TC-E3 知识库未命中 知识库已配置 1. 发送未知问题 置信度 <0.60,转人工 P1
TC-E4 供应商查询超时 用户已绑定 1. Mock 只读 API 超时 >3s 回复通用说明,提示稍后重试 P1
TC-E5 数据库连接池耗尽 高并发 1. 模拟连接池耗尽 降级为静态 FAQ健康检查非 200 P0
TC-E6 多渠道并发 用户已绑定 1. 同时在 Telegram 和 Discord 发消息 各渠道独立处理 P1