test-checklist.md 10 KB

数字能量小程序测试清单

所属角色: shu-zi-neng-liang-test-engineer 基于: phase1-product-plan.md, phase1-user-stories.md, system-spec.md 版本: v1.0


模块清单

模块 文件/组件 优先级
首页输入 index.js + index.wxml + index.wxss P0
三角形命盘 chart.js + chart.wxml + chart.wxss + triangle组件 P0
AI解读 reading.js + reading.wxml + reading.wxss P0
付费订阅 subscribe.js + subscribe.wxml + subscribe.wxss P0
个人中心 profile.js + profile.wxml + profile.wxss P1
分销面板 distribution.js + distribution.wxml + distribution.wxss P1
计算引擎 calculator.js P0
App全局 app.js + app.wxss + app.json P1
云函数: 用户注册 registerUser/index.js P1
云函数: 会话检查 checkSession/index.js P1
云函数: AI解读 generateReading/index.js P0
云函数: 支付创建 createPayment/index.js P0
云函数: 佣金查询 getCommission/index.js P1
云函数: 提现申请 applyWithdraw/index.js P1
云函数: 二维码 getQRCode/index.js P1
云函数: 上级查询 getReferrerInfo/index.js P1
云函数: 支付回调 paymentCallback/index.js P0

测试用例清单

TC-01: 计算引擎 (P0)

# 用例 输入 预期结果
1.1 个位数原样返回 reduceToDigit(5) 5
1.2 两位数归约 reduceToDigit(10) 1
1.3 多位数归约 reduceToDigit(99) 9
1.4 多位数归约链 reduceToDigit(999) 9
1.5 卓越数11保留 reduceToDigit(11) 11
1.6 卓越数22保留 reduceToDigit(22) 22
1.7 卓越数33保留 reduceToDigit(33) 33
1.8 完整命盘-已知日期 calculateTriangle(1990, 1, 1) 手算验真15个位置
1.9 完整命盘-月份两位数 calculateTriangle(1985, 12, 25) D=3, E=7
1.10 完整命盘-日两位数 calculateTriangle(2000, 6, 15) D=6, E=6
1.11 完整命盘-年份奇数 calculateTriangle(2001, 3, 8) A=2, B=0, C=1
1.12 主性格卓越数 calculateTriangle(1994, 5, 12) O 可能是22/33
1.13 五区sum值 各场景 sum=reduceToDigit(各位置值和)
1.14 数字含义1-9完整 1-9 均有title和trait
1.15 卓越数字含义 11, 22, 33 有特殊含义

TC-02: 页面交互与状态 (P0)

# 用例 步骤 预期结果
2.1 未登录用户可输入 打开首页,填写日期 可操作,不强制登录
2.2 推广链接打开 URL带?ref=ABC123 底部显示分享者信息,缓存推广码
2.3 免费用户3次限制 连续生成4次命盘 第4次弹出"次数已用完"引导订阅
2.4 能量师无限生成 能量师身份不限次 不会触发次数限制
2.5 跨午夜重置 00:00后检查 免费配额重置为0/3
2.6 无效日期输入 月份=13, 日期=32 显示验证错误提示
2.7 空字段提交 不选择年月日直接点生成 提示"请填写完整的出生日期"
2.8 chart页历史id查找 点击历史记录中的命盘 正确加载对应命盘数据
2.9 chart页无效id URL手动修改为不存在id 显示空状态/错误提示
2.10 免费用户解读限制 免费用户查看AI解读 仅显示主性格概要
2.11 能量师完整解读 能量师查看AI解读 显示主性格+五区完整内容
2.12 解读缓存 两次进入同一命盘解读页 第二次不调用云函数,使用本地缓存
2.13 解读加载状态 首次进入解读页 显示骨架屏/loading动画
2.14 解读内容折叠展开 点击章节标题 正确折叠/展开内容卡片
2.15 免责声明存在 解读页底部 显示"本解读由AI生成,仅供参考"

TC-03: Canvas可视化 (P0)

# 用例 步骤 预期结果
3.1 五层十五格绘制 生成命盘 → chart页 5层15个数字卡片完整绘制
3.2 连接线 检查线条 底层→顶层所有连接线正确
3.3 数字颜色 1-9每个数字 颜色与DIGIT_COLORS配置一致
3.4 卓越数高亮 主性格=11/22/33 金底+星标+边框加粗
3.5 位置标签 每个数字下方 显示getPositionName的对应名称
3.6 点击交互 点击数字卡片 弹出含义面板(title+trait+position)
3.7 区域背景色 五区 使用ZONE_COLORS颜色区分
3.8 姓名生日显示 命盘上方 显示姓名和出生日期
3.9 320px宽屏幕 iPhone SE 不溢出,数字不重叠
3.10 414px宽屏幕 iPhone Plus 布局适配
3.11 2x倍屏 devicePixelRatio=2 渲染清晰无锯齿
3.12 3x倍屏 devicePixelRatio=3 渲染清晰无锯齿

TC-04: 云函数 - generateReading (P0)

# 用例 输入 预期结果
4.1 正常请求 完整chartData + name code=0, 6段解读字符串非空
4.2 缺少positions {} code=400, error="缺少命盘数据"
4.3 LLM超时 模拟超时 触发_fallbackReading降级解读
4.4 LLM返回非JSON 非法响应 code=0, mainCharacter=原始文本
4.5 LLM返回JSON in markdown json ... 正确解析JSON内容
4.6 缓存读取 第二次请求同命盘 不走云函数,从本地存储读取

TC-05: 支付订阅 (P0)

# 用例 步骤 预期结果
5.1 未登录跳转支付 未登录用户点击订阅 引导登录或正常跳转
5.2 支付loading 点击"立即开通" 按钮变为loading状态,不可重复点击
5.3 支付成功 模拟支付成功回调 role→practitioner, expireAt→+1年
5.4 支付后推广码 支付成功后的checkSession referralCode非空(6位)
5.5 支付取消 用户取消支付 停留在当前页,角色不变
5.6 支付失败 模拟支付失败 显示"支付失败,请重试"
5.7 功能对比表 订阅页内容 正确展示免费vs能量师差异
5.8 价格显示 订阅页 ¥398/年,¥1.09/天正确

TC-06: 分销链路 (P1)

# 用例 步骤 预期结果
6.1 推广码自动生成 支付成功后 6位字母+数字唯一码
6.2 推广码持久化 重新登录 推广码不变
6.3 分享卡片携带ref 能量师分享 path包含?ref=CODE
6.4 推广链接打开参数 onLoad(options) 正确读取ref并缓存
6.5 注册时绑定上级 新用户带ref注册 invitedBy=上级openid
6.6 上级统计更新 新用户注册 directCount+1
6.7 关系终身锁定 第二次通过他人链接注册 不覆盖原有invitedBy
6.8 自邀请不绑定 自己扫自己的码 invitedBy为空
6.9 一级佣金结算 下级付费¥398 佣金=¥119.4, status=available
6.10 二级佣金结算 下级的下级付费 佣金=¥39.8, status=available
6.11 佣金取值精确 浮动计算 两位小数精确
6.12 佣金状态流转 pending→available→completed 按业务规则流转
6.13 提现条件验证 可提现金额<¥100 "申请提现"不可点击
6.14 提现申请提交 金额合法 记录创建status=pending
6.15 提全额按钮 点击"全部提现" 输入框填充可提现金额
6.16 超额提现拦截 输入>可提现 提示"超出可提现金额"

TC-07: 用户体系与历史记录 (P1)

# 用例 步骤 预期结果
7.1 微信登录 点击微信登录 获取用户信息,创建/查询用户
7.2 重复登录 同一用户再次登录 返回isNew=false
7.3 登录后状态持久化 关闭重开小程序 token有效时自动登录
7.4 会话过期 token无效 自动跳转为未登录状态
7.5 历史列表显示 个人中心页 按时间倒序,显示姓名/生日/主性格
7.6 历史点击跳转 点击历史记录 跳转到对应chart页
7.7 免费用户7天限制 8天前的记录 不显示
7.8 能量师全部历史 所有记录 全部显示
7.9 历史记录超100条 生成101+命盘 仅保留最近100条
7.10 订阅状态显示 个人中心 能量师显示"已开通"+到期日

TC-08: 边界与异常 (P0/P1)

# 用例 预期结果
8.1 年月日全部为空 提示填写完整日期
8.2 年份=1899 日期选择器不可选
8.3 年份=2100 不可选(超过当前年份)
8.4 月份=0 picker限制不可选
8.5 月份=13 picker限制不可选
8.6 日期=0 picker限制不可选
8.7 日期=32 picker限制不可选
8.8 闰年2/29 合法输入,正常计算
8.9 非闰年2/29 picker不可选
8.10 姓名20字符 截断处理
8.11 姓名全空格 显示"未知"
8.12 姓名特殊字符 正常显示
8.13 命盘id含特殊字符 能正确查找
8.14 弱网场景(3G模拟) 云函数超时能有降级UI
8.15 断网场景 提示网络错误,不崩溃
8.16 存储空间满 存储失败时的降级

TC-09: 合规检查 (P0)

# 检查项 通过标准
9.1 首页文案 不含"算命、占卜、预测、占星"
9.2 AI解读免责声明 末尾包含"本解读由AI生成,仅供参考"
9.3 用户协议链接 可点击,打开的页面有效
9.4 隐私政策链接 可点击,打开的页面有效
9.5 不得收集敏感信息 无身份证/银行卡输入
9.6 支付合规 微信支付规范无违规文案
9.7 分销合规 两级分销,无团队计酬,无入门费

测试环境要求

项目 配置
微信基础库 3.7.1+
iOS iPhone 13/14/15, iOS 16+
Android 华为/小米/OPPO, Android 12+
微信版本 8.0+
云开发环境 test/dev独立环境(非production)
测试账号 至少3个:普通用户A、能量师B、普通用户C(从B邀请注册)

严重等级定义

等级 定义 响应时间
S0-Critical 核心链路阻塞(无法生成命盘/支付/解读) 立即修复
S1-Major 功能严重异常(计算错误/状态错乱/数据丢失) 24h内
S2-Minor 功能可用但体验缺陷(UI错位/文案错误) 下一迭代
S3-Trivial 视觉/文案微调建议 积攒修复