4015 lines
45 KiB
Markdown
4015 lines
45 KiB
Markdown
# 丹阳公益婚恋服务平台
|
||||
|
|
# V1.0 测试体系、验收标准与上线质量保障方案
|
|||
|
|
|
|||
|
|
版本:V1.0
|
|||
|
|
适用范围:微信小程序用户端、公益红娘工作台、运营管理后台、后端服务、数据库、实时消息、对象存储、风控与统计模块
|
|||
|
|
核心目标:保证V1.0上线前“功能可用、状态正确、权限不越界、数据不重复、敏感信息不泄露、核心链路可恢复、上线后可快速定位问题”
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一章 测试总体目标
|
|||
|
|
|
|||
|
|
本项目测试不是简单确认:
|
|||
|
|
|
|||
|
|
> 页面能不能打开。
|
|||
|
|
|
|||
|
|
真正需要验证的是:
|
|||
|
|
|
|||
|
|
1. 核心婚恋闭环是否完整
|
|||
|
|
2. 状态变化是否正确
|
|||
|
|
3. 并发情况下是否产生重复数据
|
|||
|
|
4. 用户隐私是否被严格隔离
|
|||
|
|
5. 后台工作人员是否会越权
|
|||
|
|
6. 拉黑、封禁、审核等状态是否即时生效
|
|||
|
|
7. 弱网和异常情况下数据是否仍一致
|
|||
|
|
8. 活动现场是否真正可执行
|
|||
|
|
9. 红娘工作流是否能连续使用
|
|||
|
|
10. 数据统计是否与业务真实数据一致
|
|||
|
|
|
|||
|
|
最终标准:
|
|||
|
|
|
|||
|
|
> **不是“没有明显Bug就上线”,而是核心业务链路在正常、异常、并发和越权场景下都可控。**
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二章 测试体系总结构
|
|||
|
|
|
|||
|
|
V1.0测试体系分为:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
01 单元测试
|
|||
|
|
02 Service业务规则测试
|
|||
|
|
03 API接口测试
|
|||
|
|
04 数据库约束测试
|
|||
|
|
05 状态机测试
|
|||
|
|
06 并发与幂等测试
|
|||
|
|
07 前端功能测试
|
|||
|
|
08 实时聊天测试
|
|||
|
|
09 权限与越权测试
|
|||
|
|
10 隐私与敏感数据测试
|
|||
|
|
11 安全测试
|
|||
|
|
12 活动现场测试
|
|||
|
|
13 红娘SOP测试
|
|||
|
|
14 风控流程测试
|
|||
|
|
15 数据统计口径测试
|
|||
|
|
16 性能测试
|
|||
|
|
17 兼容性测试
|
|||
|
|
18 灾备与恢复测试
|
|||
|
|
19 上线前回归测试
|
|||
|
|
20 上线Go/No-Go验收
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第三章 测试环境划分
|
|||
|
|
|
|||
|
|
建议至少:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
development
|
|||
|
|
test
|
|||
|
|
staging
|
|||
|
|
production
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第四章 Development
|
|||
|
|
|
|||
|
|
用途:
|
|||
|
|
|
|||
|
|
> 开发人员本地开发。
|
|||
|
|
|
|||
|
|
可以使用:
|
|||
|
|
|
|||
|
|
- 模拟微信用户
|
|||
|
|
- 模拟实名认证
|
|||
|
|
- 测试对象存储
|
|||
|
|
- 测试数据库
|
|||
|
|
|
|||
|
|
禁止使用真实生产身份证等敏感数据。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第五章 Test环境
|
|||
|
|
|
|||
|
|
用途:
|
|||
|
|
|
|||
|
|
- 自动化测试
|
|||
|
|
- QA测试
|
|||
|
|
- 接口测试
|
|||
|
|
- 并发测试
|
|||
|
|
|
|||
|
|
必须允许:
|
|||
|
|
|
|||
|
|
> 数据随时重置。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第六章 Staging预发布
|
|||
|
|
|
|||
|
|
必须尽可能接近Production:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
同版本数据库
|
|||
|
|
同Redis结构
|
|||
|
|
同对象存储策略
|
|||
|
|
同Nginx
|
|||
|
|
同Docker部署
|
|||
|
|
同权限配置
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
第三方实名、微信能力可以使用:
|
|||
|
|
|
|||
|
|
> 官方测试环境或受控测试账号。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第七章 Production
|
|||
|
|
|
|||
|
|
生产数据:
|
|||
|
|
|
|||
|
|
> 不用于普通开发测试。
|
|||
|
|
|
|||
|
|
线上故障复现:
|
|||
|
|
|
|||
|
|
优先使用:
|
|||
|
|
|
|||
|
|
- 日志
|
|||
|
|
- RequestId
|
|||
|
|
- Audit
|
|||
|
|
- 脱敏数据
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第八章 测试账号体系
|
|||
|
|
|
|||
|
|
必须提前准备标准测试账号。
|
|||
|
|
|
|||
|
|
例如:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
U001 新用户
|
|||
|
|
U002 已绑定手机号未实名
|
|||
|
|
U003 已实名资料未完成
|
|||
|
|
U004 审核中
|
|||
|
|
U005 审核通过正常用户
|
|||
|
|
U006 paused用户
|
|||
|
|
U007 getting_to_know用户
|
|||
|
|
U008 successful用户
|
|||
|
|
U009 limited用户
|
|||
|
|
U010 banned用户
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第九章 关系测试用户
|
|||
|
|
|
|||
|
|
至少:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
A neutral B
|
|||
|
|
C liked D
|
|||
|
|
D liked C
|
|||
|
|
E blocked F
|
|||
|
|
G active match H
|
|||
|
|
I unmatched J
|
|||
|
|
K successful L
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
方便快速测试状态。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第十章 后台测试账号
|
|||
|
|
|
|||
|
|
必须分别准备:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
super_admin
|
|||
|
|
platform_admin
|
|||
|
|
organization_admin_A
|
|||
|
|
organization_admin_B
|
|||
|
|
reviewer
|
|||
|
|
matchmaker_A
|
|||
|
|
matchmaker_B
|
|||
|
|
activity_manager
|
|||
|
|
risk_operator
|
|||
|
|
volunteer
|
|||
|
|
data_viewer
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
不能只拿超级管理员测所有后台。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第十一章 测试数据生成
|
|||
|
|
|
|||
|
|
建议开发:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
seed:test
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
或对应脚本。
|
|||
|
|
|
|||
|
|
自动生成:
|
|||
|
|
|
|||
|
|
- 不同年龄
|
|||
|
|
- 不同性别
|
|||
|
|
- 不同婚姻状态
|
|||
|
|
- 不同择偶条件
|
|||
|
|
- 不同审核状态
|
|||
|
|
- Match
|
|||
|
|
- Conversation
|
|||
|
|
- Activity
|
|||
|
|
- Report
|
|||
|
|
- MatchmakerService
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第十二章 核心端到端测试链路
|
|||
|
|
|
|||
|
|
V1最重要的第一条E2E:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
微信登录
|
|||
|
|
↓
|
|||
|
|
手机号
|
|||
|
|
↓
|
|||
|
|
实名认证
|
|||
|
|
↓
|
|||
|
|
填写资料
|
|||
|
|
↓
|
|||
|
|
设置择偶条件
|
|||
|
|
↓
|
|||
|
|
提交审核
|
|||
|
|
↓
|
|||
|
|
后台审核通过
|
|||
|
|
↓
|
|||
|
|
首页推荐
|
|||
|
|
↓
|
|||
|
|
用户详情
|
|||
|
|
↓
|
|||
|
|
Like
|
|||
|
|
↓
|
|||
|
|
另一方Like
|
|||
|
|
↓
|
|||
|
|
Mutual Match
|
|||
|
|
↓
|
|||
|
|
聊天
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
此链路必须:
|
|||
|
|
|
|||
|
|
> 100%可通过。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第十三章 第二核心E2E:红娘
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
用户申请红娘
|
|||
|
|
↓
|
|||
|
|
后台分配
|
|||
|
|
↓
|
|||
|
|
红娘查看服务
|
|||
|
|
↓
|
|||
|
|
系统生成候选
|
|||
|
|
↓
|
|||
|
|
红娘推荐
|
|||
|
|
↓
|
|||
|
|
用户查看
|
|||
|
|
↓
|
|||
|
|
Like
|
|||
|
|
↓
|
|||
|
|
Mutual
|
|||
|
|
↓
|
|||
|
|
服务跟进
|
|||
|
|
↓
|
|||
|
|
完成服务
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第十四章 第三核心E2E:活动
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
后台创建活动
|
|||
|
|
↓
|
|||
|
|
发布
|
|||
|
|
↓
|
|||
|
|
用户报名
|
|||
|
|
↓
|
|||
|
|
人工审核
|
|||
|
|
↓
|
|||
|
|
报名通过
|
|||
|
|
↓
|
|||
|
|
签到
|
|||
|
|
↓
|
|||
|
|
活动结束
|
|||
|
|
↓
|
|||
|
|
提交反馈
|
|||
|
|
↓
|
|||
|
|
活动互选
|
|||
|
|
↓
|
|||
|
|
双向互选
|
|||
|
|
↓
|
|||
|
|
创建Match
|
|||
|
|
↓
|
|||
|
|
聊天
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第十五章 第四核心E2E:风控
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
用户举报
|
|||
|
|
↓
|
|||
|
|
Report创建
|
|||
|
|
↓
|
|||
|
|
风控处理
|
|||
|
|
↓
|
|||
|
|
RiskAction
|
|||
|
|
↓
|
|||
|
|
账号受限
|
|||
|
|
↓
|
|||
|
|
聊天即时禁止
|
|||
|
|
↓
|
|||
|
|
推荐即时排除
|
|||
|
|
↓
|
|||
|
|
用户申诉
|
|||
|
|
↓
|
|||
|
|
人工复核
|
|||
|
|
↓
|
|||
|
|
撤销/维持
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第十六章 单元测试范围
|
|||
|
|
|
|||
|
|
重点Service:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
MatchEligibilityService
|
|||
|
|
RequiredConditionService
|
|||
|
|
DirectionalScoringService
|
|||
|
|
MutualScoringService
|
|||
|
|
MessagePermissionService
|
|||
|
|
ActivityEligibilityService
|
|||
|
|
RiskStatusService
|
|||
|
|
PermissionService
|
|||
|
|
DataScopeService
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第十七章 匹配算法单元测试
|
|||
|
|
|
|||
|
|
必须覆盖:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
年龄边界
|
|||
|
|
身高边界
|
|||
|
|
地区
|
|||
|
|
婚姻状态
|
|||
|
|
子女情况
|
|||
|
|
学历
|
|||
|
|
吸烟
|
|||
|
|
饮酒
|
|||
|
|
婚姻计划
|
|||
|
|
定居意愿
|
|||
|
|
兴趣
|
|||
|
|
Null
|
|||
|
|
Required
|
|||
|
|
Preferred
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第十八章 Required测试
|
|||
|
|
|
|||
|
|
例如:
|
|||
|
|
|
|||
|
|
A:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
年龄30~35 required
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
B=35:
|
|||
|
|
|
|||
|
|
> 通过。
|
|||
|
|
|
|||
|
|
B=36:
|
|||
|
|
|
|||
|
|
> Reject。
|
|||
|
|
|
|||
|
|
不能进入后续评分。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第十九章 双向Required测试
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
A接受B
|
|||
|
|
B不接受A
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
最终:
|
|||
|
|
|
|||
|
|
> Reject。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二十章 MutualScore测试
|
|||
|
|
|
|||
|
|
输入:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
AB = 92
|
|||
|
|
BA = 78
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
验证:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
0.6×78 + 0.4×85
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
结果符合公式。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二十一章 推荐理由测试
|
|||
|
|
|
|||
|
|
输入条件真实匹配:
|
|||
|
|
|
|||
|
|
> 生成对应理由。
|
|||
|
|
|
|||
|
|
不能生成资料中不存在的:
|
|||
|
|
|
|||
|
|
> “双方都喜欢旅行”。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二十二章 Service测试原则
|
|||
|
|
|
|||
|
|
业务Service测试重点:
|
|||
|
|
|
|||
|
|
> 状态变化和副作用。
|
|||
|
|
|
|||
|
|
例如Like:
|
|||
|
|
|
|||
|
|
不仅检查:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
like插入成功
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
还要检查:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
reverse like存在时创建Match
|
|||
|
|
Conversation创建
|
|||
|
|
Members创建
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二十三章 API测试
|
|||
|
|
|
|||
|
|
所有API至少覆盖:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
正常请求
|
|||
|
|
缺少Token
|
|||
|
|
Token过期
|
|||
|
|
参数缺失
|
|||
|
|
参数越界
|
|||
|
|
业务状态错误
|
|||
|
|
资源不存在
|
|||
|
|
权限不足
|
|||
|
|
重复请求
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二十四章 API响应格式测试
|
|||
|
|
|
|||
|
|
所有API错误必须符合:
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"success": false,
|
|||
|
|
"code": "...",
|
|||
|
|
"message": "...",
|
|||
|
|
"data": null
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
不能某接口返回:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
500 Internal Error
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
另一个返回:
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{"msg":"error"}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二十五章 RequestId测试
|
|||
|
|
|
|||
|
|
每个请求:
|
|||
|
|
|
|||
|
|
> 必须能够获得RequestId。
|
|||
|
|
|
|||
|
|
错误日志能通过RequestId追踪。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二十六章 登录测试
|
|||
|
|
|
|||
|
|
覆盖:
|
|||
|
|
|
|||
|
|
- 正常微信登录
|
|||
|
|
- 无效code
|
|||
|
|
- code重复
|
|||
|
|
- 微信接口失败
|
|||
|
|
- banned账号
|
|||
|
|
- closed账号
|
|||
|
|
- Token refresh
|
|||
|
|
- logout
|
|||
|
|
- Session撤销
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二十七章 手机绑定测试
|
|||
|
|
|
|||
|
|
覆盖:
|
|||
|
|
|
|||
|
|
- 正常手机号
|
|||
|
|
- 已绑定手机号
|
|||
|
|
- 同手机号重复绑定
|
|||
|
|
- 无效手机号
|
|||
|
|
- 短信验证码错误(若启用)
|
|||
|
|
- 微信phoneCode失效
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二十八章 实名认证测试
|
|||
|
|
|
|||
|
|
覆盖:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
合法身份
|
|||
|
|
姓名不一致
|
|||
|
|
身份证格式错误
|
|||
|
|
未成年
|
|||
|
|
重复身份证
|
|||
|
|
第三方超时
|
|||
|
|
重复提交
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二十九章 实名测试特别要求
|
|||
|
|
|
|||
|
|
必须确认:
|
|||
|
|
|
|||
|
|
> 实名失败日志中没有完整身份证。
|
|||
|
|
|
|||
|
|
数据库中:
|
|||
|
|
|
|||
|
|
> 没有明文身份证。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第三十章 资料填写测试
|
|||
|
|
|
|||
|
|
覆盖:
|
|||
|
|
|
|||
|
|
- 每个字段正常值
|
|||
|
|
- 最大/最小值
|
|||
|
|
- 字典非法值
|
|||
|
|
- selfIntro为空
|
|||
|
|
- selfIntro超长
|
|||
|
|
- 联系方式
|
|||
|
|
- 特殊字符
|
|||
|
|
- Emoji
|
|||
|
|
- XSS文本
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第三十一章 图片测试
|
|||
|
|
|
|||
|
|
覆盖:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
正常JPEG
|
|||
|
|
PNG
|
|||
|
|
伪装EXE.jpg
|
|||
|
|
超大文件
|
|||
|
|
异常MIME
|
|||
|
|
损坏图片
|
|||
|
|
带EXIF GPS图片
|
|||
|
|
重复上传
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
必须确认:
|
|||
|
|
|
|||
|
|
> EXIF按设计处理。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第三十二章 审核状态机测试
|
|||
|
|
|
|||
|
|
覆盖:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
not_submitted → pending
|
|||
|
|
pending → processing
|
|||
|
|
processing → approved
|
|||
|
|
processing → need_edit
|
|||
|
|
processing → rejected
|
|||
|
|
need_edit → pending
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第三十三章 非法审核迁移测试
|
|||
|
|
|
|||
|
|
例如:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
approved → processing
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
由普通审核接口请求。
|
|||
|
|
|
|||
|
|
必须:
|
|||
|
|
|
|||
|
|
> 拒绝。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第三十四章 审核并发领取
|
|||
|
|
|
|||
|
|
模拟:
|
|||
|
|
|
|||
|
|
> 10个审核员同时领取同一任务。
|
|||
|
|
|
|||
|
|
最终:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
1人成功
|
|||
|
|
9人失败
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
不能出现多个assigned_operator。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第三十五章 审核处理中修改资料
|
|||
|
|
|
|||
|
|
用户尝试修改正在审核字段。
|
|||
|
|
|
|||
|
|
必须按既定规则:
|
|||
|
|
|
|||
|
|
> 禁止或进入明确版本机制。
|
|||
|
|
|
|||
|
|
不能造成审核内容变化却仍然批准旧任务。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第三十六章 推荐资格测试
|
|||
|
|
|
|||
|
|
以下用户绝不能进入推荐:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
未实名
|
|||
|
|
审核中
|
|||
|
|
审核拒绝
|
|||
|
|
paused
|
|||
|
|
successful
|
|||
|
|
banned
|
|||
|
|
closed
|
|||
|
|
blocked
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第三十七章 推荐冷却测试
|
|||
|
|
|
|||
|
|
A Pass B。
|
|||
|
|
|
|||
|
|
下一次推荐:
|
|||
|
|
|
|||
|
|
> B被排除。
|
|||
|
|
|
|||
|
|
冷却到期后的行为:
|
|||
|
|
|
|||
|
|
> 根据配置恢复。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第三十八章 推荐缓存失效测试
|
|||
|
|
|
|||
|
|
缓存已有B。
|
|||
|
|
|
|||
|
|
B随后:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
paused
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
A再次获取推荐:
|
|||
|
|
|
|||
|
|
> 不得返回B。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第三十九章 Like正常测试
|
|||
|
|
|
|||
|
|
A Like B:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
liked = true
|
|||
|
|
mutual = false
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第四十章 双向Like测试
|
|||
|
|
|
|||
|
|
B先Like A。
|
|||
|
|
|
|||
|
|
A再Like B。
|
|||
|
|
|
|||
|
|
最终:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
1 Match
|
|||
|
|
1 Conversation
|
|||
|
|
2 ConversationMembers
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第四十一章 同时Like并发测试
|
|||
|
|
|
|||
|
|
A与B同时发送。
|
|||
|
|
|
|||
|
|
循环至少:
|
|||
|
|
|
|||
|
|
> 100~1000次并发场景。
|
|||
|
|
|
|||
|
|
每轮必须:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
只产生1个Match
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第四十二章 重复Like幂等
|
|||
|
|
|
|||
|
|
同一个:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Idempotency-Key
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
重复10次。
|
|||
|
|
|
|||
|
|
最终:
|
|||
|
|
|
|||
|
|
> 一个Like结果。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第四十三章 取消Like测试
|
|||
|
|
|
|||
|
|
未Mutual:
|
|||
|
|
|
|||
|
|
> 可取消。
|
|||
|
|
|
|||
|
|
已Mutual:
|
|||
|
|
|
|||
|
|
> 必须拒绝,要求Unmatch。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第四十四章 Block测试
|
|||
|
|
|
|||
|
|
A Block B后:
|
|||
|
|
|
|||
|
|
必须同时验证:
|
|||
|
|
|
|||
|
|
- B不能Chat A
|
|||
|
|
- A/B推荐互相排除
|
|||
|
|
- Search排除
|
|||
|
|
- 红娘候选排除
|
|||
|
|
- Conversation不可发送
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第四十五章 Unblock测试
|
|||
|
|
|
|||
|
|
解除后:
|
|||
|
|
|
|||
|
|
- 不自动恢复Like
|
|||
|
|
- 不自动恢复Match
|
|||
|
|
- Conversation仍不可自动恢复
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第四十六章 Unmatch测试
|
|||
|
|
|
|||
|
|
任一方解除:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
match → unmatched
|
|||
|
|
conversation.canSend = false
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
另一方下一条消息:
|
|||
|
|
|
|||
|
|
> 必须失败。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第四十七章 Success测试
|
|||
|
|
|
|||
|
|
A发起。
|
|||
|
|
|
|||
|
|
B确认。
|
|||
|
|
|
|||
|
|
最终:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
match successful
|
|||
|
|
双方relationship_status更新
|
|||
|
|
停止新推荐
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第四十八章 Success拒绝测试
|
|||
|
|
|
|||
|
|
A发起。
|
|||
|
|
|
|||
|
|
B拒绝。
|
|||
|
|
|
|||
|
|
不能:
|
|||
|
|
|
|||
|
|
> 成功状态生效。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第四十九章 Success与Unmatch并发
|
|||
|
|
|
|||
|
|
A发Success。
|
|||
|
|
|
|||
|
|
同时B Unmatch。
|
|||
|
|
|
|||
|
|
最终必须只有一个合法业务状态。
|
|||
|
|
|
|||
|
|
不可出现:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
match = successful
|
|||
|
|
conversation = unmatched
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
互相矛盾。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第五十章 聊天权限测试
|
|||
|
|
|
|||
|
|
必须覆盖:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
neutral
|
|||
|
|
single like
|
|||
|
|
active match
|
|||
|
|
unmatched
|
|||
|
|
blocked
|
|||
|
|
banned
|
|||
|
|
paused
|
|||
|
|
successful
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
确认每种状态canSend正确。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第五十一章 Paused聊天测试
|
|||
|
|
|
|||
|
|
用户暂停寻找:
|
|||
|
|
|
|||
|
|
> 已有active Match聊天仍正常。
|
|||
|
|
|
|||
|
|
这是明确业务规则。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第五十二章 Successful聊天测试
|
|||
|
|
|
|||
|
|
成功牵手:
|
|||
|
|
|
|||
|
|
> 已有双方Conversation仍可保留。
|
|||
|
|
|
|||
|
|
不能因为成功就突然断聊。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第五十三章 消息幂等测试
|
|||
|
|
|
|||
|
|
服务端已经保存。
|
|||
|
|
|
|||
|
|
客户端超时重试相同:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
clientMessageId
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
最终:
|
|||
|
|
|
|||
|
|
> 数据库仅一条。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第五十四章 消息顺序测试
|
|||
|
|
|
|||
|
|
高频连续发送:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
M1 M2 M3 M4
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
客户端最终顺序稳定。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第五十五章 弱网测试
|
|||
|
|
|
|||
|
|
模拟:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
3G
|
|||
|
|
高延迟
|
|||
|
|
30%丢包
|
|||
|
|
临时断网
|
|||
|
|
网络切换
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
确认:
|
|||
|
|
|
|||
|
|
- 草稿不丢
|
|||
|
|
- 重试不重复
|
|||
|
|
- 历史最终一致
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第五十六章 WebSocket断线重连测试
|
|||
|
|
|
|||
|
|
场景:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
WS断开
|
|||
|
|
↓
|
|||
|
|
对方发送5条
|
|||
|
|
↓
|
|||
|
|
重新连接
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
客户端最终:
|
|||
|
|
|
|||
|
|
> 5条全部可恢复。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第五十七章 后台切换测试
|
|||
|
|
|
|||
|
|
微信小程序:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
进入后台5分钟
|
|||
|
|
↓
|
|||
|
|
重新打开
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
需要:
|
|||
|
|
|
|||
|
|
- WS恢复
|
|||
|
|
- 未读恢复
|
|||
|
|
- 状态刷新
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第五十八章 实时封禁测试
|
|||
|
|
|
|||
|
|
A正在聊天。
|
|||
|
|
|
|||
|
|
后台封禁A。
|
|||
|
|
|
|||
|
|
A不刷新页面直接发送。
|
|||
|
|
|
|||
|
|
必须:
|
|||
|
|
|
|||
|
|
> 发送失败。
|
|||
|
|
|
|||
|
|
不能等重新登录。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第五十九章 实时Block测试
|
|||
|
|
|
|||
|
|
A/B都在线。
|
|||
|
|
|
|||
|
|
B Block A。
|
|||
|
|
|
|||
|
|
A立即发送:
|
|||
|
|
|
|||
|
|
> 必须失败。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第六十章 消息限频测试
|
|||
|
|
|
|||
|
|
模拟:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
1秒100条
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
必须触发:
|
|||
|
|
|
|||
|
|
> Rate Limit。
|
|||
|
|
|
|||
|
|
同时普通连续发送:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
5~10条短消息
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
不能明显误伤。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第六十一章 重复群发测试
|
|||
|
|
|
|||
|
|
同一用户向多个Match发完全相同广告话术。
|
|||
|
|
|
|||
|
|
系统:
|
|||
|
|
|
|||
|
|
> 生成Spam风险。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第六十二章 Risk关键词测试
|
|||
|
|
|
|||
|
|
普通:
|
|||
|
|
|
|||
|
|
> “我在银行工作。”
|
|||
|
|
|
|||
|
|
不能直接封禁。
|
|||
|
|
|
|||
|
|
明显:
|
|||
|
|
|
|||
|
|
> “转钱给我投资”
|
|||
|
|
|
|||
|
|
应触发:
|
|||
|
|
|
|||
|
|
> 风险提醒/事件。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第六十三章 图片消息测试
|
|||
|
|
|
|||
|
|
覆盖:
|
|||
|
|
|
|||
|
|
- 上传成功发送
|
|||
|
|
- 上传失败
|
|||
|
|
- 上传成功但消息失败
|
|||
|
|
- 图片权限失效
|
|||
|
|
- 被Block后发送图片
|
|||
|
|
- 恶意文件
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第六十四章 系统通知测试
|
|||
|
|
|
|||
|
|
必须测试:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
审核通过
|
|||
|
|
审核退回
|
|||
|
|
Mutual Match
|
|||
|
|
红娘推荐
|
|||
|
|
活动批准
|
|||
|
|
活动取消
|
|||
|
|
账号受限
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
每个通知:
|
|||
|
|
|
|||
|
|
- 正确用户
|
|||
|
|
- 正确业务ID
|
|||
|
|
- 不重复
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第六十五章 Notification幂等
|
|||
|
|
|
|||
|
|
同一个业务事件重复消费:
|
|||
|
|
|
|||
|
|
> 用户只收到一个正式通知。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第六十六章 活动创建测试
|
|||
|
|
|
|||
|
|
覆盖:
|
|||
|
|
|
|||
|
|
- 合法时间
|
|||
|
|
- 开始>结束
|
|||
|
|
- 报名结束>活动开始
|
|||
|
|
- 空标题
|
|||
|
|
- 无组织
|
|||
|
|
- 无人数限制
|
|||
|
|
- 无规则
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第六十七章 活动状态测试
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
draft → open
|
|||
|
|
open → closed
|
|||
|
|
closed → ongoing
|
|||
|
|
ongoing → ended
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
非法逆转:
|
|||
|
|
|
|||
|
|
> 拒绝。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第六十八章 活动报名测试
|
|||
|
|
|
|||
|
|
覆盖:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
正常用户
|
|||
|
|
未实名
|
|||
|
|
未审核
|
|||
|
|
年龄不符
|
|||
|
|
活动关闭
|
|||
|
|
重复报名
|
|||
|
|
名额已满
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第六十九章 Pending名额测试
|
|||
|
|
|
|||
|
|
假设:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
总名额10
|
|||
|
|
pending 100
|
|||
|
|
approved 9
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
仍只能再批准:
|
|||
|
|
|
|||
|
|
> 1人。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第七十章 活动最后名额并发
|
|||
|
|
|
|||
|
|
模拟:
|
|||
|
|
|
|||
|
|
> 50个审核请求同时批准最后1个名额。
|
|||
|
|
|
|||
|
|
最终:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
1 approved
|
|||
|
|
49 ACTIVITY_FULL
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第七十一章 性别名额测试
|
|||
|
|
|
|||
|
|
如果开启:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
male_limit = 10
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
第11名男性:
|
|||
|
|
|
|||
|
|
> GENDER_QUOTA_FULL。
|
|||
|
|
|
|||
|
|
同时女性名额不受错误影响。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第七十二章 用户取消与审核并发
|
|||
|
|
|
|||
|
|
用户正在取消pending。
|
|||
|
|
|
|||
|
|
审核员同时approve。
|
|||
|
|
|
|||
|
|
最终只能出现:
|
|||
|
|
|
|||
|
|
> 一个确定状态。
|
|||
|
|
|
|||
|
|
不能既approved又cancelled逻辑冲突。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第七十三章 活动取消并发
|
|||
|
|
|
|||
|
|
活动管理员取消活动时:
|
|||
|
|
|
|||
|
|
用户同时提交报名。
|
|||
|
|
|
|||
|
|
报名必须:
|
|||
|
|
|
|||
|
|
> 失败。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第七十四章 签到测试
|
|||
|
|
|
|||
|
|
覆盖:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
正常Token
|
|||
|
|
Token过期
|
|||
|
|
Token篡改
|
|||
|
|
错误activity
|
|||
|
|
非approved
|
|||
|
|
重复签到
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第七十五章 重复签到
|
|||
|
|
|
|||
|
|
返回:
|
|||
|
|
|
|||
|
|
> 已签到。
|
|||
|
|
|
|||
|
|
而不是500。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第七十六章 手工签到测试
|
|||
|
|
|
|||
|
|
检查:
|
|||
|
|
|
|||
|
|
- 操作人记录
|
|||
|
|
- Audit
|
|||
|
|
- 重复防护
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第七十七章 活动互选测试
|
|||
|
|
|
|||
|
|
A选B:
|
|||
|
|
|
|||
|
|
> B看不到。
|
|||
|
|
|
|||
|
|
B选A:
|
|||
|
|
|
|||
|
|
> 生成Match。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第七十八章 多人互选限制
|
|||
|
|
|
|||
|
|
如果配置:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
maxSelections = 3
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
提交4人:
|
|||
|
|
|
|||
|
|
> 拒绝。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第七十九章 互选对象越权测试
|
|||
|
|
|
|||
|
|
用户修改targetId:
|
|||
|
|
|
|||
|
|
> 指向未参加该活动用户。
|
|||
|
|
|
|||
|
|
必须拒绝。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第八十章 Block与互选
|
|||
|
|
|
|||
|
|
A Block B。
|
|||
|
|
|
|||
|
|
即使旧页面存在B:
|
|||
|
|
|
|||
|
|
提交:
|
|||
|
|
|
|||
|
|
> 拒绝。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第八十一章 活动已有Match测试
|
|||
|
|
|
|||
|
|
A/B已有Match。
|
|||
|
|
|
|||
|
|
活动再次互选:
|
|||
|
|
|
|||
|
|
> 不创建重复Match。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第八十二章 活动Unmatch后重新互选
|
|||
|
|
|
|||
|
|
按照最终实现的“重新激活原Match/创建历史事件”逻辑测试。
|
|||
|
|
|
|||
|
|
要求:
|
|||
|
|
|
|||
|
|
> 历史不丢,关系不重复。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第八十三章 红娘申请测试
|
|||
|
|
|
|||
|
|
覆盖:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
正常申请
|
|||
|
|
重复同类型active服务
|
|||
|
|
paused用户
|
|||
|
|
banned用户
|
|||
|
|
successful用户
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第八十四章 红娘接单并发
|
|||
|
|
|
|||
|
|
10位红娘同时Claim。
|
|||
|
|
|
|||
|
|
最终:
|
|||
|
|
|
|||
|
|
> 1位成功。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第八十五章 红娘候选测试
|
|||
|
|
|
|||
|
|
候选必须排除:
|
|||
|
|
|
|||
|
|
- Required冲突
|
|||
|
|
- Block
|
|||
|
|
- paused
|
|||
|
|
- banned
|
|||
|
|
- successful
|
|||
|
|
- 当前不可推荐
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第八十六章 红娘越权候选测试
|
|||
|
|
|
|||
|
|
红娘不能:
|
|||
|
|
|
|||
|
|
> 手工绕过系统提交任意targetUserId。
|
|||
|
|
|
|||
|
|
服务端仍校验。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第八十七章 红娘推荐重复测试
|
|||
|
|
|
|||
|
|
已推荐且用户已Pass的候选:
|
|||
|
|
|
|||
|
|
系统应提示历史。
|
|||
|
|
|
|||
|
|
按规则禁止/提示重复。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第八十八章 红娘查看聊天测试
|
|||
|
|
|
|||
|
|
Matchmaker角色请求聊天正文:
|
|||
|
|
|
|||
|
|
> 403。
|
|||
|
|
|
|||
|
|
必须验证。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第八十九章 红娘查看身份证测试
|
|||
|
|
|
|||
|
|
> 403。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第九十章 红娘替用户Like测试
|
|||
|
|
|
|||
|
|
不存在此权限/API。
|
|||
|
|
|
|||
|
|
如果构造调用:
|
|||
|
|
|
|||
|
|
> 拒绝。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第九十一章 红娘联系意向对象测试
|
|||
|
|
|
|||
|
|
V1保守方案:
|
|||
|
|
|
|||
|
|
A明确申请。
|
|||
|
|
|
|||
|
|
系统向B发中性通知。
|
|||
|
|
|
|||
|
|
必须确认:
|
|||
|
|
|
|||
|
|
- 不泄露B联系方式
|
|||
|
|
- B可拒绝
|
|||
|
|
- B拒绝后不重复骚扰
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第九十二章 红娘风险转交测试
|
|||
|
|
|
|||
|
|
红娘创建风险转交后:
|
|||
|
|
|
|||
|
|
- 产生RiskEvent
|
|||
|
|
- 红娘不能自行Ban
|
|||
|
|
- 风控可继续处理
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第九十三章 举报正常测试
|
|||
|
|
|
|||
|
|
覆盖类型:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
虚假资料
|
|||
|
|
婚姻状态疑似虚假
|
|||
|
|
骚扰
|
|||
|
|
诈骗
|
|||
|
|
金钱诱导
|
|||
|
|
广告
|
|||
|
|
冒充他人
|
|||
|
|
其他
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第九十四章 举报隐私测试
|
|||
|
|
|
|||
|
|
被举报用户:
|
|||
|
|
|
|||
|
|
> 不得知道举报人身份。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第九十五章 举报证据权限测试
|
|||
|
|
|
|||
|
|
仅:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
risk.evidence.view
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
可查看。
|
|||
|
|
|
|||
|
|
红娘、活动管理员:
|
|||
|
|
|
|||
|
|
> 403。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第九十六章 举报处理测试
|
|||
|
|
|
|||
|
|
结果:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
confirmed
|
|||
|
|
rejected
|
|||
|
|
insufficient_evidence
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
分别验证。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第九十七章 Report与RiskAction分离测试
|
|||
|
|
|
|||
|
|
举报成立:
|
|||
|
|
|
|||
|
|
不代表必然ban。
|
|||
|
|
|
|||
|
|
例如:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
confirmed + warning
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
应合法。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第九十八章 多RiskAction测试
|
|||
|
|
|
|||
|
|
用户同时有:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
message_limit
|
|||
|
|
temporary_suspend
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
撤销一个以后:
|
|||
|
|
|
|||
|
|
> 不能简单恢复normal。
|
|||
|
|
|
|||
|
|
必须根据剩余Action重新计算。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第九十九章 申诉测试
|
|||
|
|
|
|||
|
|
覆盖:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
pending
|
|||
|
|
processing
|
|||
|
|
approved
|
|||
|
|
rejected
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
approved:
|
|||
|
|
|
|||
|
|
> 正确撤销对应Action。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百章 权限测试总体要求
|
|||
|
|
|
|||
|
|
权限测试必须以:
|
|||
|
|
|
|||
|
|
> “默认拒绝”
|
|||
|
|
|
|||
|
|
为原则。
|
|||
|
|
|
|||
|
|
测试不仅看菜单隐藏。
|
|||
|
|
|
|||
|
|
必须直接构造HTTP请求。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百零一章 RBAC测试
|
|||
|
|
|
|||
|
|
每个角色访问每类资源。
|
|||
|
|
|
|||
|
|
形成正式:
|
|||
|
|
|
|||
|
|
> Permission Test Matrix。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百零二章 组织越权测试
|
|||
|
|
|
|||
|
|
机构A管理员:
|
|||
|
|
|
|||
|
|
请求机构B:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
activity
|
|||
|
|
matchmaker service
|
|||
|
|
operator
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
必须:
|
|||
|
|
|
|||
|
|
> 403。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百零三章 Assigned Scope测试
|
|||
|
|
|
|||
|
|
红娘A:
|
|||
|
|
|
|||
|
|
尝试访问红娘B服务。
|
|||
|
|
|
|||
|
|
没有授权:
|
|||
|
|
|
|||
|
|
> 拒绝。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百零四章 Activity Scope测试
|
|||
|
|
|
|||
|
|
志愿者只分配活动X。
|
|||
|
|
|
|||
|
|
访问活动Y签到名单:
|
|||
|
|
|
|||
|
|
> 403。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百零五章 敏感权限测试
|
|||
|
|
|
|||
|
|
没有:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
user.sensitive.identity.full
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
不能通过:
|
|||
|
|
|
|||
|
|
- API
|
|||
|
|
- 下载
|
|||
|
|
- URL参数
|
|||
|
|
|
|||
|
|
获得完整身份证。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百零六章 权限修改实时测试
|
|||
|
|
|
|||
|
|
管理员撤销权限。
|
|||
|
|
|
|||
|
|
旧Token继续请求:
|
|||
|
|
|
|||
|
|
> 应立即/短时内失效。
|
|||
|
|
|
|||
|
|
不能必须退出重登才生效。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百零七章 Operator Disabled测试
|
|||
|
|
|
|||
|
|
账号已登录。
|
|||
|
|
|
|||
|
|
后台管理员Disable。
|
|||
|
|
|
|||
|
|
下一API:
|
|||
|
|
|
|||
|
|
> 拒绝。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百零八章 角色自提权测试
|
|||
|
|
|
|||
|
|
organization_admin请求给自己:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
super_admin
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
必须:
|
|||
|
|
|
|||
|
|
> 拒绝并Audit。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百零九章 IDOR专项测试
|
|||
|
|
|
|||
|
|
必须重点覆盖:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
/users/{userId}
|
|||
|
|
/conversations/{id}
|
|||
|
|
/reports/{id}
|
|||
|
|
/activities/{id}/registration
|
|||
|
|
/matchmaker/services/{id}
|
|||
|
|
/admin/users/{id}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
手工替换ID。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百一十章 用户资料IDOR
|
|||
|
|
|
|||
|
|
A通过修改ID尝试看:
|
|||
|
|
|
|||
|
|
> 被B Block后的B详情。
|
|||
|
|
|
|||
|
|
必须:
|
|||
|
|
|
|||
|
|
> TARGET_UNAVAILABLE/403。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百一十一章 Conversation IDOR
|
|||
|
|
|
|||
|
|
A不属于Conversation。
|
|||
|
|
|
|||
|
|
访问:
|
|||
|
|
|
|||
|
|
> 403。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百一十二章 Checkin Token IDOR
|
|||
|
|
|
|||
|
|
Token不可通过:
|
|||
|
|
|
|||
|
|
> 修改userId
|
|||
|
|
|
|||
|
|
伪造其他签到。
|
|||
|
|
|
|||
|
|
签名必须验证。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百一十三章 隐私测试总目标
|
|||
|
|
|
|||
|
|
必须保证:
|
|||
|
|
|
|||
|
|
> “知道某个资源ID”不等于“拥有访问权”。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百一十四章 隐私字段测试
|
|||
|
|
|
|||
|
|
PublicProfile不得返回:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
real_name
|
|||
|
|
id_number
|
|||
|
|
phone
|
|||
|
|
exact_address
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百一十五章 SelfProfile测试
|
|||
|
|
|
|||
|
|
允许:
|
|||
|
|
|
|||
|
|
> phoneMasked
|
|||
|
|
|
|||
|
|
但仍不返回完整身份证。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百一十六章 Matchmaker DTO测试
|
|||
|
|
|
|||
|
|
不得包含:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
idNumber
|
|||
|
|
chatContent
|
|||
|
|
riskEvidence
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百一十七章 活动签到DTO测试
|
|||
|
|
|
|||
|
|
只返回签到必要信息。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百一十八章 日志泄露测试
|
|||
|
|
|
|||
|
|
主动触发:
|
|||
|
|
|
|||
|
|
- 实名错误
|
|||
|
|
- Token错误
|
|||
|
|
- SQL错误
|
|||
|
|
- 上传错误
|
|||
|
|
|
|||
|
|
然后检查日志。
|
|||
|
|
|
|||
|
|
不得出现:
|
|||
|
|
|
|||
|
|
- 完整身份证
|
|||
|
|
- 密码
|
|||
|
|
- Token
|
|||
|
|
- 聊天正文
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百一十九章 对象存储测试
|
|||
|
|
|
|||
|
|
测试用户图片:
|
|||
|
|
|
|||
|
|
> 直接访问Bucket URL。
|
|||
|
|
|
|||
|
|
必须:
|
|||
|
|
|
|||
|
|
> 不能Public Read。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百二十章 Signed URL测试
|
|||
|
|
|
|||
|
|
过期后:
|
|||
|
|
|
|||
|
|
> 无法继续访问。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百二十一章 文件越权测试
|
|||
|
|
|
|||
|
|
A拿到B fileId。
|
|||
|
|
|
|||
|
|
调用access-url。
|
|||
|
|
|
|||
|
|
若当前业务无权限:
|
|||
|
|
|
|||
|
|
> 拒绝。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百二十二章 安全测试范围
|
|||
|
|
|
|||
|
|
上线前至少进行:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
认证绕过
|
|||
|
|
授权越权
|
|||
|
|
SQL注入
|
|||
|
|
XSS
|
|||
|
|
CSRF(Web)
|
|||
|
|
CORS
|
|||
|
|
文件上传
|
|||
|
|
Token重放
|
|||
|
|
暴力登录
|
|||
|
|
接口限流
|
|||
|
|
ID枚举
|
|||
|
|
敏感数据泄露
|
|||
|
|
对象存储权限
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百二十三章 SQL注入测试
|
|||
|
|
|
|||
|
|
所有:
|
|||
|
|
|
|||
|
|
- 搜索
|
|||
|
|
- Filter
|
|||
|
|
- 用户输入
|
|||
|
|
- 后台Query
|
|||
|
|
|
|||
|
|
尝试经典注入Payload。
|
|||
|
|
|
|||
|
|
必须:
|
|||
|
|
|
|||
|
|
> 参数化安全。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百二十四章 XSS测试
|
|||
|
|
|
|||
|
|
向:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
selfIntro
|
|||
|
|
activityDescription
|
|||
|
|
feedback
|
|||
|
|
reportDescription
|
|||
|
|
matchmakerFollowup
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
写入恶意HTML/Script。
|
|||
|
|
|
|||
|
|
前端:
|
|||
|
|
|
|||
|
|
> 必须转义。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百二十五章 CORS测试
|
|||
|
|
|
|||
|
|
管理后台API:
|
|||
|
|
|
|||
|
|
只允许正式授权Origin。
|
|||
|
|
|
|||
|
|
不能:
|
|||
|
|
|
|||
|
|
> `*`
|
|||
|
|
|
|||
|
|
配合敏感凭证。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百二十六章 暴力登录测试
|
|||
|
|
|
|||
|
|
后台连续错误密码。
|
|||
|
|
|
|||
|
|
必须:
|
|||
|
|
|
|||
|
|
> 限频/锁定。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百二十七章 Rate Limit测试
|
|||
|
|
|
|||
|
|
重点接口:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
login
|
|||
|
|
real-name
|
|||
|
|
like
|
|||
|
|
message
|
|||
|
|
report
|
|||
|
|
upload
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百二十八章 CSRF测试
|
|||
|
|
|
|||
|
|
如后台采用Cookie认证:
|
|||
|
|
|
|||
|
|
> 必须验证CSRF。
|
|||
|
|
|
|||
|
|
如采用Bearer:
|
|||
|
|
|
|||
|
|
重点验证:
|
|||
|
|
|
|||
|
|
- Token存储
|
|||
|
|
- XSS
|
|||
|
|
- CORS
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百二十九章 前端兼容性测试
|
|||
|
|
|
|||
|
|
微信小程序至少测试:
|
|||
|
|
|
|||
|
|
- iOS微信主流版本
|
|||
|
|
- Android微信主流版本
|
|||
|
|
|
|||
|
|
尤其:
|
|||
|
|
|
|||
|
|
- 登录
|
|||
|
|
- 手机号
|
|||
|
|
- 图片上传
|
|||
|
|
- WebSocket
|
|||
|
|
- 二维码
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百三十章 屏幕适配
|
|||
|
|
|
|||
|
|
至少:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
320px
|
|||
|
|
375px
|
|||
|
|
390px
|
|||
|
|
430px
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
重点检查:
|
|||
|
|
|
|||
|
|
- BottomTab
|
|||
|
|
- Dialog
|
|||
|
|
- 长文字
|
|||
|
|
- 表单
|
|||
|
|
- 聊天Input
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百三十一章 大字体测试
|
|||
|
|
|
|||
|
|
用户系统字体放大后:
|
|||
|
|
|
|||
|
|
- 文字不能被严重截断
|
|||
|
|
- 关键按钮仍可操作
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百三十二章 后台浏览器
|
|||
|
|
|
|||
|
|
建议支持:
|
|||
|
|
|
|||
|
|
- Chrome
|
|||
|
|
- Edge
|
|||
|
|
|
|||
|
|
近期主流版本。
|
|||
|
|
|
|||
|
|
V1不需要兼容IE。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百三十三章 后台分辨率
|
|||
|
|
|
|||
|
|
重点:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
1366×768
|
|||
|
|
1920×1080
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
响应式支持更宽屏。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百三十四章 空状态测试
|
|||
|
|
|
|||
|
|
每个列表必须测试:
|
|||
|
|
|
|||
|
|
> 0数据。
|
|||
|
|
|
|||
|
|
例如:
|
|||
|
|
|
|||
|
|
- 无推荐
|
|||
|
|
- 无消息
|
|||
|
|
- 无活动
|
|||
|
|
- 无红娘服务
|
|||
|
|
- 无举报
|
|||
|
|
- 无审核
|
|||
|
|
|
|||
|
|
不能显示空白页。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百三十五章 加载状态测试
|
|||
|
|
|
|||
|
|
网络慢时:
|
|||
|
|
|
|||
|
|
> Skeleton/Loading正确。
|
|||
|
|
|
|||
|
|
不能用户连续重复点击造成重复业务动作。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百三十六章 网络错误测试
|
|||
|
|
|
|||
|
|
API 500/Timeout:
|
|||
|
|
|
|||
|
|
页面应:
|
|||
|
|
|
|||
|
|
- 提示
|
|||
|
|
- 可重试
|
|||
|
|
- 不破坏已有数据
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百三十七章 表单防重复提交
|
|||
|
|
|
|||
|
|
按钮提交后:
|
|||
|
|
|
|||
|
|
> Loading + 防双击。
|
|||
|
|
|
|||
|
|
但最终仍需服务端幂等。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百三十八章 草稿恢复测试
|
|||
|
|
|
|||
|
|
Onboarding填写一半退出。
|
|||
|
|
|
|||
|
|
重新进入:
|
|||
|
|
|
|||
|
|
> 能恢复安全草稿。
|
|||
|
|
|
|||
|
|
敏感身份证:
|
|||
|
|
|
|||
|
|
> 不应长期保存在本地草稿。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百三十九章 前端路由状态测试
|
|||
|
|
|
|||
|
|
必须覆盖启动时:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
未登录
|
|||
|
|
未绑定
|
|||
|
|
未实名
|
|||
|
|
资料未完成
|
|||
|
|
审核中
|
|||
|
|
need_edit
|
|||
|
|
approved
|
|||
|
|
banned
|
|||
|
|
paused
|
|||
|
|
successful
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
进入正确页面。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百四十章 Deep Link/分享访问测试
|
|||
|
|
|
|||
|
|
如果用户通过活动分享链接进入:
|
|||
|
|
|
|||
|
|
未登录时:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
登录
|
|||
|
|
↓
|
|||
|
|
恢复到活动
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
不能登录后丢失原目标。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百四十一章 redirectAfterLogin安全测试
|
|||
|
|
|
|||
|
|
传恶意外部URL:
|
|||
|
|
|
|||
|
|
> 必须被白名单拒绝。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百四十二章 数据统计测试
|
|||
|
|
|
|||
|
|
每个正式指标:
|
|||
|
|
|
|||
|
|
> 必须有测试数据集和预期数字。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百四十三章 注册漏斗测试
|
|||
|
|
|
|||
|
|
构造:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
注册10
|
|||
|
|
实名7
|
|||
|
|
提交5
|
|||
|
|
通过4
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
验证全部页面一致。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百四十四章 Match统计测试
|
|||
|
|
|
|||
|
|
2个Like:
|
|||
|
|
|
|||
|
|
> 1个Mutual Match。
|
|||
|
|
|
|||
|
|
不能统计成2。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百四十五章 Chat Started测试
|
|||
|
|
|
|||
|
|
仅SystemMessage:
|
|||
|
|
|
|||
|
|
> 0。
|
|||
|
|
|
|||
|
|
真实用户消息:
|
|||
|
|
|
|||
|
|
> +1。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百四十六章 Two-Way Chat测试
|
|||
|
|
|
|||
|
|
A发1条:
|
|||
|
|
|
|||
|
|
> 0。
|
|||
|
|
|
|||
|
|
B回复:
|
|||
|
|
|
|||
|
|
> +1。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百四十七章 Activity统计测试
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
申请100
|
|||
|
|
通过90
|
|||
|
|
签到80
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Attendance:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
80 / 90
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百四十八章 Activity双向意向
|
|||
|
|
|
|||
|
|
10对Mutual:
|
|||
|
|
|
|||
|
|
> Mutual Pair=10。
|
|||
|
|
|
|||
|
|
不是:
|
|||
|
|
|
|||
|
|
> 20对。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百四十九章 Red Matchmaker统计
|
|||
|
|
|
|||
|
|
红娘看20候选。
|
|||
|
|
|
|||
|
|
正式推3人。
|
|||
|
|
|
|||
|
|
Recommendation:
|
|||
|
|
|
|||
|
|
> 3。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百五十章 举报统计
|
|||
|
|
|
|||
|
|
10条举报:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
6 confirmed
|
|||
|
|
2 rejected
|
|||
|
|
2 insufficient
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Confirmed Rate:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
6/10
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果全部已完成。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百五十一章 Dashboard一致性
|
|||
|
|
|
|||
|
|
同日期条件:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Overview
|
|||
|
|
Matches Analytics
|
|||
|
|
Activity Analytics
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
引用同指标时必须相同。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百五十二章 Summary重算测试
|
|||
|
|
|
|||
|
|
先生成昨日汇总。
|
|||
|
|
|
|||
|
|
修改测试数据后运行:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
rebuildMetrics
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
结果:
|
|||
|
|
|
|||
|
|
> 与业务表重新一致。
|
|||
|
|
|
|||
|
|
不能累加重复。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百五十三章 时区测试
|
|||
|
|
|
|||
|
|
23:59与00:01产生的事件:
|
|||
|
|
|
|||
|
|
必须正确归属:
|
|||
|
|
|
|||
|
|
> Asia/Shanghai自然日。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百五十四章 性能测试目标
|
|||
|
|
|
|||
|
|
前面定义的性能数值属于建议目标。
|
|||
|
|
|
|||
|
|
V1建议验证:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
普通核心API P95 < 500ms
|
|||
|
|
Recommendation P95 < 1.5s
|
|||
|
|
Dashboard P95 < 2s
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
具体最终SLA可在上线前根据基础设施确认。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百五十五章 性能测试用户规模建议
|
|||
|
|
|
|||
|
|
早期可模拟:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
1万用户
|
|||
|
|
5万用户
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
数据库数据量。
|
|||
|
|
|
|||
|
|
并模拟:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
100~300并发
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
核心API。
|
|||
|
|
|
|||
|
|
不需要一开始测试百万并发。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百五十六章 推荐性能测试
|
|||
|
|
|
|||
|
|
候选池:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
100
|
|||
|
|
500
|
|||
|
|
1000
|
|||
|
|
5000
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
分别测试。
|
|||
|
|
|
|||
|
|
确保SQL先过滤。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百五十七章 Message性能测试
|
|||
|
|
|
|||
|
|
至少模拟:
|
|||
|
|
|
|||
|
|
> 数十至数百同时在线连接。
|
|||
|
|
|
|||
|
|
验证:
|
|||
|
|
|
|||
|
|
- Send
|
|||
|
|
- Push
|
|||
|
|
- Reconnect
|
|||
|
|
|
|||
|
|
V1不需要做超级IM压力测试。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百五十八章 Activity并发重点
|
|||
|
|
|
|||
|
|
真正需要高并发保证的是:
|
|||
|
|
|
|||
|
|
> 最后名额。
|
|||
|
|
|
|||
|
|
即使整体QPS不高:
|
|||
|
|
|
|||
|
|
事务一致性必须正确。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百五十九章 数据库性能测试
|
|||
|
|
|
|||
|
|
重点SQL必须执行:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
EXPLAIN ANALYZE
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
检查:
|
|||
|
|
|
|||
|
|
- 推荐初筛
|
|||
|
|
- 消息分页
|
|||
|
|
- 审核待办
|
|||
|
|
- 举报待办
|
|||
|
|
- 活动报名
|
|||
|
|
- Dashboard聚合
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百六十章 N+1测试
|
|||
|
|
|
|||
|
|
例如推荐列表6人:
|
|||
|
|
|
|||
|
|
不能产生:
|
|||
|
|
|
|||
|
|
> 几十/上百条SQL。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百六十一章 数据库约束测试
|
|||
|
|
|
|||
|
|
手工绕过Service插入:
|
|||
|
|
|
|||
|
|
- 重复Match
|
|||
|
|
- 重复ActivityRegistration
|
|||
|
|
- 重复clientMessageId
|
|||
|
|
- self relation
|
|||
|
|
|
|||
|
|
数据库应尽量拒绝。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百六十二章 Redis故障测试
|
|||
|
|
|
|||
|
|
停Redis。
|
|||
|
|
|
|||
|
|
必须判断:
|
|||
|
|
|
|||
|
|
哪些功能可降级。
|
|||
|
|
|
|||
|
|
例如:
|
|||
|
|
|
|||
|
|
> 核心数据库业务仍应尽量工作。
|
|||
|
|
|
|||
|
|
不能Redis一挂:
|
|||
|
|
|
|||
|
|
> 数据全部丢失。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百六十三章 Recommendation Cache Redis故障
|
|||
|
|
|
|||
|
|
可以:
|
|||
|
|
|
|||
|
|
> 回数据库实时计算/返回暂时不可用。
|
|||
|
|
|
|||
|
|
不能把Redis当正式推荐关系数据源。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百六十四章 WebSocket Redis故障
|
|||
|
|
|
|||
|
|
如果单实例:
|
|||
|
|
|
|||
|
|
> 可能仍可工作。
|
|||
|
|
|
|||
|
|
如果多实例:
|
|||
|
|
|
|||
|
|
实时跨实例受影响。
|
|||
|
|
|
|||
|
|
消息仍然:
|
|||
|
|
|
|||
|
|
> 已落PostgreSQL。
|
|||
|
|
|
|||
|
|
用户重新拉取应恢复。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百六十五章 对象存储故障测试
|
|||
|
|
|
|||
|
|
图片暂时无法上传。
|
|||
|
|
|
|||
|
|
文字资料:
|
|||
|
|
|
|||
|
|
> 不应全部瘫痪。
|
|||
|
|
|
|||
|
|
页面提示:
|
|||
|
|
|
|||
|
|
> 图片服务暂时不可用。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百六十六章 第三方实名认证故障
|
|||
|
|
|
|||
|
|
第三方超时:
|
|||
|
|
|
|||
|
|
用户看到:
|
|||
|
|
|
|||
|
|
> 认证服务暂时不可用,请稍后重试。
|
|||
|
|
|
|||
|
|
不能:
|
|||
|
|
|
|||
|
|
> 把用户标记为认证失败欺诈。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百六十七章 微信API故障
|
|||
|
|
|
|||
|
|
外部服务失败:
|
|||
|
|
|
|||
|
|
- 记录
|
|||
|
|
- 合理提示
|
|||
|
|
- 不泄露技术错误
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百六十八章 灾备测试
|
|||
|
|
|
|||
|
|
至少验证:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
数据库备份
|
|||
|
|
恢复
|
|||
|
|
对象存储恢复/版本
|
|||
|
|
配置恢复
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百六十九章 数据库恢复测试
|
|||
|
|
|
|||
|
|
不是只确认:
|
|||
|
|
|
|||
|
|
> 有备份文件。
|
|||
|
|
|
|||
|
|
必须定期:
|
|||
|
|
|
|||
|
|
> 在测试环境实际恢复。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百七十章 备份恢复验收
|
|||
|
|
|
|||
|
|
恢复后检查:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
users
|
|||
|
|
matches
|
|||
|
|
messages
|
|||
|
|
activities
|
|||
|
|
reports
|
|||
|
|
audit
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
关键关联完整。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百七十一章 部署回滚测试
|
|||
|
|
|
|||
|
|
必须提前验证:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
新版本部署
|
|||
|
|
↓
|
|||
|
|
发现问题
|
|||
|
|
↓
|
|||
|
|
回滚上一版本
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
数据库migration也要考虑兼容。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百七十二章 Migration测试
|
|||
|
|
|
|||
|
|
所有Migration:
|
|||
|
|
|
|||
|
|
> 在空数据库跑一遍。
|
|||
|
|
|
|||
|
|
同时:
|
|||
|
|
|
|||
|
|
> 从上一版本数据库升级一遍。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百七十三章 Migration不可破坏性原则
|
|||
|
|
|
|||
|
|
正式上线前:
|
|||
|
|
|
|||
|
|
避免直接:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
DROP COLUMN
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
导致旧版本无法运行。
|
|||
|
|
|
|||
|
|
采用:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
先新增
|
|||
|
|
双版本兼容
|
|||
|
|
后续再清理
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百七十四章 Staging上线演练
|
|||
|
|
|
|||
|
|
正式生产前至少完整跑一次:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
部署
|
|||
|
|
↓
|
|||
|
|
Migration
|
|||
|
|
↓
|
|||
|
|
Seed必要配置
|
|||
|
|
↓
|
|||
|
|
健康检查
|
|||
|
|
↓
|
|||
|
|
核心E2E
|
|||
|
|
↓
|
|||
|
|
回滚演练
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百七十五章 健康检查
|
|||
|
|
|
|||
|
|
建议:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
/health/live
|
|||
|
|
/health/ready
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
检查:
|
|||
|
|
|
|||
|
|
- App
|
|||
|
|
- PostgreSQL
|
|||
|
|
- Redis
|
|||
|
|
- Object Storage关键连通状态(可适度)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百七十六章 Smoke Test
|
|||
|
|
|
|||
|
|
每次发布后立即执行:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
登录
|
|||
|
|
查看首页
|
|||
|
|
用户详情
|
|||
|
|
Like测试账号
|
|||
|
|
聊天
|
|||
|
|
后台登录
|
|||
|
|
审核列表
|
|||
|
|
活动列表
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
控制在几分钟内完成。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百七十七章 自动化测试优先级
|
|||
|
|
|
|||
|
|
必须自动化:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Match算法
|
|||
|
|
状态机
|
|||
|
|
API权限
|
|||
|
|
幂等
|
|||
|
|
关键数据库约束
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百七十八章 不要求所有UI自动化
|
|||
|
|
|
|||
|
|
微信小程序完整UI自动化维护成本高。
|
|||
|
|
|
|||
|
|
V1可以:
|
|||
|
|
|
|||
|
|
> 核心E2E少量自动化 + QA人工回归。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百七十九章 推荐自动化测试比例
|
|||
|
|
|
|||
|
|
核心后端:
|
|||
|
|
|
|||
|
|
> 尽量高覆盖。
|
|||
|
|
|
|||
|
|
尤其:
|
|||
|
|
|
|||
|
|
- Match
|
|||
|
|
- Relationship
|
|||
|
|
- Risk
|
|||
|
|
- Permission
|
|||
|
|
|
|||
|
|
不是单纯追求代码覆盖百分比。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百八十章 测试覆盖率原则
|
|||
|
|
|
|||
|
|
不要:
|
|||
|
|
|
|||
|
|
> 为80%覆盖率写无意义测试。
|
|||
|
|
|
|||
|
|
更重要:
|
|||
|
|
|
|||
|
|
> 高风险业务路径全部覆盖。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百八十一章 Bug严重级别
|
|||
|
|
|
|||
|
|
建议:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
P0 Blocker
|
|||
|
|
P1 Critical
|
|||
|
|
P2 Major
|
|||
|
|
P3 Minor
|
|||
|
|
P4 Suggestion
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百八十二章 P0 Blocker
|
|||
|
|
|
|||
|
|
例如:
|
|||
|
|
|
|||
|
|
- 无法登录
|
|||
|
|
- 无法实名认证
|
|||
|
|
- Match核心链路断裂
|
|||
|
|
- 数据库严重损坏
|
|||
|
|
- 大规模敏感数据泄露
|
|||
|
|
- 权限系统完全失效
|
|||
|
|
|
|||
|
|
结论:
|
|||
|
|
|
|||
|
|
> 禁止上线。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百八十三章 P1 Critical
|
|||
|
|
|
|||
|
|
例如:
|
|||
|
|
|
|||
|
|
- 未Mutual可以聊天
|
|||
|
|
- Block后仍可聊天
|
|||
|
|
- 红娘能看到身份证
|
|||
|
|
- 普通用户可读他人Conversation
|
|||
|
|
- 活动严重超卖
|
|||
|
|
- 重复生成Match
|
|||
|
|
- 封禁用户仍可推荐
|
|||
|
|
|
|||
|
|
结论:
|
|||
|
|
|
|||
|
|
> 必须修复后上线。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百八十四章 P2 Major
|
|||
|
|
|
|||
|
|
例如:
|
|||
|
|
|
|||
|
|
- 某筛选条件失效
|
|||
|
|
- 某统计数字错误
|
|||
|
|
- 图片重试异常
|
|||
|
|
- 活动通知漏发但报名成功
|
|||
|
|
|
|||
|
|
一般:
|
|||
|
|
|
|||
|
|
> 核心影响较大,应上线前尽量清零。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百八十五章 P3 Minor
|
|||
|
|
|
|||
|
|
例如:
|
|||
|
|
|
|||
|
|
- 局部UI错位
|
|||
|
|
- 非关键文案
|
|||
|
|
- 少量动画问题
|
|||
|
|
|
|||
|
|
可评估是否延后。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百八十六章 Bug修复要求
|
|||
|
|
|
|||
|
|
修复:
|
|||
|
|
|
|||
|
|
> 必须有Regression Test。
|
|||
|
|
|
|||
|
|
不能:
|
|||
|
|
|
|||
|
|
> 修完手点一下就关闭Bug。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百八十七章 缺陷模板
|
|||
|
|
|
|||
|
|
建议记录:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
标题
|
|||
|
|
环境
|
|||
|
|
账号
|
|||
|
|
前置条件
|
|||
|
|
操作步骤
|
|||
|
|
实际结果
|
|||
|
|
预期结果
|
|||
|
|
截图/RequestId
|
|||
|
|
严重级别
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百八十八章 UAT用户验收
|
|||
|
|
|
|||
|
|
除了技术测试,还需要:
|
|||
|
|
|
|||
|
|
> 实际运营人员验收。
|
|||
|
|
|
|||
|
|
包括:
|
|||
|
|
|
|||
|
|
- 审核员
|
|||
|
|
- 红娘
|
|||
|
|
- 活动人员
|
|||
|
|
- 管理员
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百八十九章 审核员UAT
|
|||
|
|
|
|||
|
|
给审核员:
|
|||
|
|
|
|||
|
|
> 20~50条测试审核任务。
|
|||
|
|
|
|||
|
|
确认:
|
|||
|
|
|
|||
|
|
- 是否知道哪里处理
|
|||
|
|
- 原因是否好选
|
|||
|
|
- 能否快速完成
|
|||
|
|
- 是否容易误操作
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百九十章 红娘UAT
|
|||
|
|
|
|||
|
|
给红娘一批模拟用户。
|
|||
|
|
|
|||
|
|
任务:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
接单
|
|||
|
|
查看需求
|
|||
|
|
看候选
|
|||
|
|
推荐
|
|||
|
|
跟进
|
|||
|
|
完成服务
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
观察:
|
|||
|
|
|
|||
|
|
> 是否需要额外Excel/纸笔才能完成。
|
|||
|
|
|
|||
|
|
如果需要:
|
|||
|
|
|
|||
|
|
> 工作台还不完整。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百九十一章 活动管理员UAT
|
|||
|
|
|
|||
|
|
完整演练:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
创建活动
|
|||
|
|
报名
|
|||
|
|
审核
|
|||
|
|
最后名额
|
|||
|
|
签到
|
|||
|
|
现场异常
|
|||
|
|
反馈
|
|||
|
|
互选
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百九十二章 志愿者UAT
|
|||
|
|
|
|||
|
|
找一个不了解系统的志愿者。
|
|||
|
|
|
|||
|
|
只给简单培训。
|
|||
|
|
|
|||
|
|
验证:
|
|||
|
|
|
|||
|
|
> 是否能完成签到。
|
|||
|
|
|
|||
|
|
如果签到必须专业IT人员操作:
|
|||
|
|
|
|||
|
|
> 设计失败。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百九十三章 风控员UAT
|
|||
|
|
|
|||
|
|
模拟:
|
|||
|
|
|
|||
|
|
- 骚扰举报
|
|||
|
|
- 诈骗举报
|
|||
|
|
- 无证据举报
|
|||
|
|
- 申诉
|
|||
|
|
|
|||
|
|
确认:
|
|||
|
|
|
|||
|
|
> 处理链路清晰。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百九十四章 普通用户UAT
|
|||
|
|
|
|||
|
|
至少覆盖不同年龄和数字化能力用户。
|
|||
|
|
|
|||
|
|
重点测试:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
注册
|
|||
|
|
资料
|
|||
|
|
择偶条件
|
|||
|
|
推荐
|
|||
|
|
Like
|
|||
|
|
聊天
|
|||
|
|
活动
|
|||
|
|
红娘
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百九十五章 用户UAT核心判断
|
|||
|
|
|
|||
|
|
不只是问:
|
|||
|
|
|
|||
|
|
> “喜欢吗?”
|
|||
|
|
|
|||
|
|
更应该观察:
|
|||
|
|
|
|||
|
|
- 会不会用
|
|||
|
|
- 会不会迷路
|
|||
|
|
- 是否知道下一步
|
|||
|
|
- 是否理解必须/最好
|
|||
|
|
- 是否误解推荐等级
|
|||
|
|
- 是否知道怎么拉黑举报
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百九十六章 易用性验收
|
|||
|
|
|
|||
|
|
核心操作:
|
|||
|
|
|
|||
|
|
> 尽量不超过3步。
|
|||
|
|
|
|||
|
|
例如Like:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
推荐 → 详情 → 喜欢
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百九十七章 文案验收
|
|||
|
|
|
|||
|
|
重点检查:
|
|||
|
|
|
|||
|
|
> 是否存在商业婚恋套路。
|
|||
|
|
|
|||
|
|
禁止:
|
|||
|
|
|
|||
|
|
- 桃花爆棚
|
|||
|
|
- 优质男神
|
|||
|
|
- 高价值女性
|
|||
|
|
- VIP
|
|||
|
|
- 成功率92%
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百九十八章 合规文案验收
|
|||
|
|
|
|||
|
|
不能出现:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
100%真人
|
|||
|
|
100%单身
|
|||
|
|
婚姻状态已官方验证
|
|||
|
|
绝对安全
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第一百九十九章 实名标识验收
|
|||
|
|
|
|||
|
|
只能表达:
|
|||
|
|
|
|||
|
|
> 已实名。
|
|||
|
|
|
|||
|
|
不能让用户理解为:
|
|||
|
|
|
|||
|
|
> 全部婚恋资料官方真实。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百章 数据删除/注销验收
|
|||
|
|
|
|||
|
|
测试账号注销。
|
|||
|
|
|
|||
|
|
必须确认:
|
|||
|
|
|
|||
|
|
- 不再推荐
|
|||
|
|
- 不再搜索显示
|
|||
|
|
- 不能新聊天
|
|||
|
|
- 红娘服务停止
|
|||
|
|
- 未开始活动按规则取消
|
|||
|
|
- 历史业务关系不崩溃
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百零一章 隐私设置验收
|
|||
|
|
|
|||
|
|
关闭:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
visibleInSearch
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
必须不再Find。
|
|||
|
|
|
|||
|
|
关闭:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
visibleInRecommendations
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
必须不被推荐。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百零二章 隐私状态缓存测试
|
|||
|
|
|
|||
|
|
修改隐私后:
|
|||
|
|
|
|||
|
|
> 旧缓存立即不再暴露。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百零三章 Audit验收
|
|||
|
|
|
|||
|
|
随机执行:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
审核
|
|||
|
|
Ban
|
|||
|
|
活动取消
|
|||
|
|
权限修改
|
|||
|
|
敏感查看
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
后台必须可以查到:
|
|||
|
|
|
|||
|
|
> 谁、什么时候、做了什么。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百零四章 SensitiveAccess验收
|
|||
|
|
|
|||
|
|
查看实名敏感信息。
|
|||
|
|
|
|||
|
|
必须产生:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
operator
|
|||
|
|
user
|
|||
|
|
reason
|
|||
|
|
time
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百零五章 安全事件演练
|
|||
|
|
|
|||
|
|
上线前建议至少桌面演练一次:
|
|||
|
|
|
|||
|
|
> “如果用户身份证数据疑似泄露怎么办?”
|
|||
|
|
|
|||
|
|
团队必须知道:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
谁负责
|
|||
|
|
怎么停服务
|
|||
|
|
怎么查影响
|
|||
|
|
怎么保留证据
|
|||
|
|
怎么修复
|
|||
|
|
怎么通知/报告
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百零六章 生产监控
|
|||
|
|
|
|||
|
|
上线后至少监控:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
API 5xx
|
|||
|
|
API P95
|
|||
|
|
数据库连接
|
|||
|
|
CPU
|
|||
|
|
内存
|
|||
|
|
磁盘
|
|||
|
|
Redis
|
|||
|
|
WebSocket
|
|||
|
|
登录失败
|
|||
|
|
第三方实名认证失败率
|
|||
|
|
对象存储错误
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百零七章 业务监控
|
|||
|
|
|
|||
|
|
重点:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
登录成功率
|
|||
|
|
实名认证成功率
|
|||
|
|
审核积压
|
|||
|
|
推荐失败率
|
|||
|
|
Match创建异常
|
|||
|
|
消息失败
|
|||
|
|
活动报名异常
|
|||
|
|
举报积压
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百零八章 告警分级
|
|||
|
|
|
|||
|
|
建议:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
SEV1
|
|||
|
|
SEV2
|
|||
|
|
SEV3
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百零九章 SEV1
|
|||
|
|
|
|||
|
|
例如:
|
|||
|
|
|
|||
|
|
- 大面积无法登录
|
|||
|
|
- 数据库不可用
|
|||
|
|
- 敏感数据泄露
|
|||
|
|
- 权限绕过
|
|||
|
|
- 大量Match重复
|
|||
|
|
|
|||
|
|
立即处理。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百一十章 SEV2
|
|||
|
|
|
|||
|
|
例如:
|
|||
|
|
|
|||
|
|
- 推荐模块大面积异常
|
|||
|
|
- 聊天大面积失败
|
|||
|
|
- 活动报名不可用
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百一十一章 SEV3
|
|||
|
|
|
|||
|
|
例如:
|
|||
|
|
|
|||
|
|
- 单个非核心统计异常
|
|||
|
|
- 局部UI问题
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百一十二章 上线方式
|
|||
|
|
|
|||
|
|
建议V1采用:
|
|||
|
|
|
|||
|
|
> 小范围灰度 → 扩大。
|
|||
|
|
|
|||
|
|
不要第一天就:
|
|||
|
|
|
|||
|
|
> 全丹阳大规模宣传。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百一十三章 第一阶段灰度
|
|||
|
|
|
|||
|
|
建议:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
内部工作人员
|
|||
|
|
+
|
|||
|
|
少量受邀真实用户
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
例如:
|
|||
|
|
|
|||
|
|
> 数十人。
|
|||
|
|
|
|||
|
|
验证:
|
|||
|
|
|
|||
|
|
- 真实资料填写
|
|||
|
|
- 审核
|
|||
|
|
- 推荐
|
|||
|
|
- Like
|
|||
|
|
- Chat
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百一十四章 第二阶段灰度
|
|||
|
|
|
|||
|
|
扩大:
|
|||
|
|
|
|||
|
|
> 数百人。
|
|||
|
|
|
|||
|
|
加入:
|
|||
|
|
|
|||
|
|
- 公益红娘
|
|||
|
|
- 第一场小规模活动
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百一十五章 第三阶段
|
|||
|
|
|
|||
|
|
确认:
|
|||
|
|
|
|||
|
|
- 核心错误稳定
|
|||
|
|
- 用户池可用
|
|||
|
|
- 风控流程可运行
|
|||
|
|
|
|||
|
|
再正式推广。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百一十六章 灰度期间重点观察
|
|||
|
|
|
|||
|
|
不是只看注册数。
|
|||
|
|
|
|||
|
|
重点:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
实名失败
|
|||
|
|
审核问题
|
|||
|
|
无候选比例
|
|||
|
|
用户是否理解Like
|
|||
|
|
Mutual后是否聊天
|
|||
|
|
举报
|
|||
|
|
红娘工作量
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百一十七章 Feature Flag
|
|||
|
|
|
|||
|
|
建议关键模块支持:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
activityEnabled
|
|||
|
|
matchmakerEnabled
|
|||
|
|
imageChatEnabled
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
出现严重问题:
|
|||
|
|
|
|||
|
|
> 可以单独关闭。
|
|||
|
|
|
|||
|
|
不需要整个平台下线。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百一十八章 Kill Switch
|
|||
|
|
|
|||
|
|
高风险模块建议能够快速关闭:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
用户推荐
|
|||
|
|
聊天图片
|
|||
|
|
活动报名
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
由高权限配置。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百一十九章 上线前配置核对
|
|||
|
|
|
|||
|
|
必须确认:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
微信AppID
|
|||
|
|
实名认证Provider
|
|||
|
|
对象存储Bucket
|
|||
|
|
数据库
|
|||
|
|
Redis
|
|||
|
|
域名
|
|||
|
|
HTTPS证书
|
|||
|
|
隐私政策版本
|
|||
|
|
用户协议版本
|
|||
|
|
运营组织
|
|||
|
|
角色权限
|
|||
|
|
风控规则
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百二十章 Secret核对
|
|||
|
|
|
|||
|
|
确认:
|
|||
|
|
|
|||
|
|
> Secret没有进入Git。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百二十一章 数据库上线检查
|
|||
|
|
|
|||
|
|
确认:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Migration全部成功
|
|||
|
|
Indexes存在
|
|||
|
|
Foreign Keys正确
|
|||
|
|
Unique约束存在
|
|||
|
|
备份已完成
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百二十二章 权限上线检查
|
|||
|
|
|
|||
|
|
必须使用不同角色逐个登录验证。
|
|||
|
|
|
|||
|
|
不能只看配置表。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百二十三章 对象存储上线检查
|
|||
|
|
|
|||
|
|
测试:
|
|||
|
|
|
|||
|
|
> 未授权公网不能下载用户照片。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百二十四章 日志上线检查
|
|||
|
|
|
|||
|
|
制造测试异常。
|
|||
|
|
|
|||
|
|
确认日志:
|
|||
|
|
|
|||
|
|
> 无敏感信息。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百二十五章 Backup检查
|
|||
|
|
|
|||
|
|
生产第一次正式开放前:
|
|||
|
|
|
|||
|
|
> 完成一次基线备份。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百二十六章 Rollback检查
|
|||
|
|
|
|||
|
|
确认:
|
|||
|
|
|
|||
|
|
> 当前版本对应上一稳定镜像/构建包仍可获取。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百二十七章 Go/No-Go总体标准
|
|||
|
|
|
|||
|
|
正式开放前必须开上线评审。
|
|||
|
|
|
|||
|
|
结果:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
GO
|
|||
|
|
CONDITIONAL GO
|
|||
|
|
NO-GO
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百二十八章 NO-GO硬条件
|
|||
|
|
|
|||
|
|
以下任何一项存在:
|
|||
|
|
|
|||
|
|
> 不得正式上线。
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
存在P0 Bug
|
|||
|
|
存在未接受风险的P1 Bug
|
|||
|
|
核心E2E无法通过
|
|||
|
|
实名认证不可用
|
|||
|
|
资料审核不可用
|
|||
|
|
Mutual Match逻辑错误
|
|||
|
|
聊天权限错误
|
|||
|
|
Block无效
|
|||
|
|
后台严重越权
|
|||
|
|
敏感数据明文泄露
|
|||
|
|
活动名额可严重超卖
|
|||
|
|
数据库无可用备份
|
|||
|
|
无法回滚
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百二十九章 Conditional GO
|
|||
|
|
|
|||
|
|
例如:
|
|||
|
|
|
|||
|
|
- 少量P2 Bug
|
|||
|
|
- 非核心统计延迟
|
|||
|
|
- 某个P1模块通过Feature Flag暂时关闭
|
|||
|
|
|
|||
|
|
可以由负责人明确接受风险后:
|
|||
|
|
|
|||
|
|
> 有条件上线。
|
|||
|
|
|
|||
|
|
必须记录:
|
|||
|
|
|
|||
|
|
- 问题
|
|||
|
|
- 影响
|
|||
|
|
- 临时措施
|
|||
|
|
- 修复计划
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百三十章 GO条件
|
|||
|
|
|
|||
|
|
至少:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
核心E2E全部通过
|
|||
|
|
P0=0
|
|||
|
|
P1=0或全部正式接受
|
|||
|
|
核心权限测试通过
|
|||
|
|
隐私测试通过
|
|||
|
|
并发测试通过
|
|||
|
|
数据库备份通过
|
|||
|
|
恢复验证通过
|
|||
|
|
Smoke通过
|
|||
|
|
运营UAT通过
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百三十一章 V1上线验收清单——用户核心
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
□ 微信登录
|
|||
|
|
□ 手机绑定
|
|||
|
|
□ 实名
|
|||
|
|
□ 未成年人拦截
|
|||
|
|
□ 资料填写
|
|||
|
|
□ 照片
|
|||
|
|
□ 择偶条件
|
|||
|
|
□ 提交审核
|
|||
|
|
□ 审核状态
|
|||
|
|
□ 首页推荐
|
|||
|
|
□ 找对象
|
|||
|
|
□ 用户详情
|
|||
|
|
□ Like
|
|||
|
|
□ Pass
|
|||
|
|
□ Mutual Match
|
|||
|
|
□ Unmatch
|
|||
|
|
□ Block
|
|||
|
|
□ 举报
|
|||
|
|
□ 隐私设置
|
|||
|
|
□ 注销
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百三十二章 上线验收清单——聊天
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
□ 无Match不能聊
|
|||
|
|
□ 有Match能聊
|
|||
|
|
□ Text
|
|||
|
|
□ Image
|
|||
|
|
□ 消息幂等
|
|||
|
|
□ 未读
|
|||
|
|
□ WS重连
|
|||
|
|
□ Block即时禁止
|
|||
|
|
□ Ban即时禁止
|
|||
|
|
□ 历史分页
|
|||
|
|
□ 举报入口
|
|||
|
|
□ RiskNotice
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百三十三章 上线验收清单——活动
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
□ 创建
|
|||
|
|
□ 发布
|
|||
|
|
□ 报名
|
|||
|
|
□ 审核
|
|||
|
|
□ 名额
|
|||
|
|
□ 并发最后名额
|
|||
|
|
□ 取消报名
|
|||
|
|
□ 签到
|
|||
|
|
□ 重复签到
|
|||
|
|
□ 反馈
|
|||
|
|
□ 活动互选
|
|||
|
|
□ 双向生成Match
|
|||
|
|
□ 活动取消
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百三十四章 上线验收清单——红娘
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
□ 服务申请
|
|||
|
|
□ 分配/接单
|
|||
|
|
□ 用户必要资料
|
|||
|
|
□ 候选
|
|||
|
|
□ Required规则
|
|||
|
|
□ 推荐
|
|||
|
|
□ 跟进
|
|||
|
|
□ Waiting User
|
|||
|
|
□ 活动推荐
|
|||
|
|
□ 风险转交
|
|||
|
|
□ 完成服务
|
|||
|
|
□ 不能看聊天
|
|||
|
|
□ 不能看身份证
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百三十五章 上线验收清单——后台
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
□ 统一登录
|
|||
|
|
□ 不同角色菜单
|
|||
|
|
□ Data Scope
|
|||
|
|
□ 用户管理
|
|||
|
|
□ 审核
|
|||
|
|
□ 红娘
|
|||
|
|
□ 活动
|
|||
|
|
□ 风控
|
|||
|
|
□ Organization
|
|||
|
|
□ Operators
|
|||
|
|
□ Roles
|
|||
|
|
□ Permissions
|
|||
|
|
□ Audit
|
|||
|
|
□ Sensitive Access
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百三十六章 上线验收清单——统计
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
□ 注册
|
|||
|
|
□ 实名
|
|||
|
|
□ 审核
|
|||
|
|
□ 推荐
|
|||
|
|
□ Like
|
|||
|
|
□ Mutual
|
|||
|
|
□ Chat Started
|
|||
|
|
□ Successful
|
|||
|
|
□ 红娘
|
|||
|
|
□ 活动
|
|||
|
|
□ 举报
|
|||
|
|
□ Dashboard一致性
|
|||
|
|
□ 时区正确
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百三十七章 上线验收清单——安全
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
□ IDOR
|
|||
|
|
□ SQL Injection
|
|||
|
|
□ XSS
|
|||
|
|
□ CORS
|
|||
|
|
□ 文件上传
|
|||
|
|
□ Rate Limit
|
|||
|
|
□ 暴力登录
|
|||
|
|
□ Token失效
|
|||
|
|
□ Secret管理
|
|||
|
|
□ 日志脱敏
|
|||
|
|
□ 图片私有
|
|||
|
|
□ 敏感权限
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百三十八章 上线验收签字角色
|
|||
|
|
|
|||
|
|
建议至少由:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
产品负责人
|
|||
|
|
技术负责人
|
|||
|
|
测试负责人
|
|||
|
|
运营负责人
|
|||
|
|
数据/隐私安全负责人
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
确认。
|
|||
|
|
|
|||
|
|
一人团队可以兼任。
|
|||
|
|
|
|||
|
|
但检查项不能因此消失。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百三十九章 上线后24小时
|
|||
|
|
|
|||
|
|
重点观察:
|
|||
|
|
|
|||
|
|
- 登录
|
|||
|
|
- 实名
|
|||
|
|
- API错误
|
|||
|
|
- 数据库
|
|||
|
|
- 推荐
|
|||
|
|
- 消息
|
|||
|
|
- 权限错误
|
|||
|
|
- 用户反馈
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百四十章 上线后首周
|
|||
|
|
|
|||
|
|
每天查看:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
新增用户
|
|||
|
|
实名异常
|
|||
|
|
审核积压
|
|||
|
|
无候选率
|
|||
|
|
消息失败
|
|||
|
|
举报
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
并快速修复真实用户遇到的问题。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百四十一章 首场线下活动必须现场演练
|
|||
|
|
|
|||
|
|
活动前一天:
|
|||
|
|
|
|||
|
|
> 用测试账号完整模拟。
|
|||
|
|
|
|||
|
|
活动当天提前:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
管理员登录
|
|||
|
|
签到设备
|
|||
|
|
二维码
|
|||
|
|
名单
|
|||
|
|
网络
|
|||
|
|
应急方案
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
全部确认。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百四十二章 活动现场技术应急
|
|||
|
|
|
|||
|
|
至少准备:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
备用网络
|
|||
|
|
备用手机
|
|||
|
|
手工签到方式
|
|||
|
|
脱敏应急名单
|
|||
|
|
工作人员联系方式
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
避免现场网络问题导致活动无法执行。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百四十三章 数据库生产事故原则
|
|||
|
|
|
|||
|
|
如果发现数据异常:
|
|||
|
|
|
|||
|
|
> 优先停止写入相关模块。
|
|||
|
|
|
|||
|
|
不要为了保持页面可用:
|
|||
|
|
|
|||
|
|
> 继续写错数据。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百四十四章 Match事故原则
|
|||
|
|
|
|||
|
|
如果发现Match重复:
|
|||
|
|
|
|||
|
|
立即考虑关闭:
|
|||
|
|
|
|||
|
|
> Like/Matching Feature Flag。
|
|||
|
|
|
|||
|
|
先保护数据。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百四十五章 权限事故原则
|
|||
|
|
|
|||
|
|
发现越权漏洞:
|
|||
|
|
|
|||
|
|
> 最高优先级。
|
|||
|
|
|
|||
|
|
立即:
|
|||
|
|
|
|||
|
|
- 封闭接口
|
|||
|
|
- 撤销Session
|
|||
|
|
- 检查日志
|
|||
|
|
- 评估访问范围
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百四十六章 敏感信息事件
|
|||
|
|
|
|||
|
|
发现身份证/聊天等泄露:
|
|||
|
|
|
|||
|
|
必须进入:
|
|||
|
|
|
|||
|
|
> 安全事件响应流程。
|
|||
|
|
|
|||
|
|
不能当普通Bug处理。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百四十七章 线上Bug修复流程
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
发现
|
|||
|
|
↓
|
|||
|
|
定级
|
|||
|
|
↓
|
|||
|
|
复现
|
|||
|
|
↓
|
|||
|
|
修复
|
|||
|
|
↓
|
|||
|
|
自动/人工测试
|
|||
|
|
↓
|
|||
|
|
Staging验证
|
|||
|
|
↓
|
|||
|
|
发布
|
|||
|
|
↓
|
|||
|
|
监控
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百四十八章 不允许直接生产库手改核心数据
|
|||
|
|
|
|||
|
|
紧急情况下如果必须:
|
|||
|
|
|
|||
|
|
> 经过审批/记录。
|
|||
|
|
|
|||
|
|
优先通过:
|
|||
|
|
|
|||
|
|
- 正式管理接口
|
|||
|
|
- 修复脚本
|
|||
|
|
- Migration
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百四十九章 修复脚本要求
|
|||
|
|
|
|||
|
|
必须:
|
|||
|
|
|
|||
|
|
- 可重复安全执行
|
|||
|
|
- 有日志
|
|||
|
|
- 先Dry Run
|
|||
|
|
- 备份
|
|||
|
|
- 可验证结果
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百五十章 测试文档交付物
|
|||
|
|
|
|||
|
|
建议项目最终维护:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
docs/testing/test-strategy.md
|
|||
|
|
docs/testing/test-cases/
|
|||
|
|
docs/testing/permission-matrix.md
|
|||
|
|
docs/testing/go-live-checklist.md
|
|||
|
|
docs/testing/incident-playbook.md
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百五十一章 自动化测试目录建议
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
tests/
|
|||
|
|
├── unit/
|
|||
|
|
├── integration/
|
|||
|
|
├── api/
|
|||
|
|
├── permission/
|
|||
|
|
├── concurrency/
|
|||
|
|
├── security/
|
|||
|
|
└── e2e/
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百五十二章 CI必须执行
|
|||
|
|
|
|||
|
|
每次合并:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Lint
|
|||
|
|
Unit Test
|
|||
|
|
Service Test
|
|||
|
|
API Integration Test
|
|||
|
|
Migration Validation
|
|||
|
|
Build
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百五十三章 主分支保护
|
|||
|
|
|
|||
|
|
建议:
|
|||
|
|
|
|||
|
|
> 测试未通过不得合并。
|
|||
|
|
|
|||
|
|
如果团队小:
|
|||
|
|
|
|||
|
|
仍然至少:
|
|||
|
|
|
|||
|
|
> CI失败不能直接发布生产。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百五十四章 Release Candidate
|
|||
|
|
|
|||
|
|
正式版本:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
v1.0.0-rc.1
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
在Staging完成最终回归。
|
|||
|
|
|
|||
|
|
通过后:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
v1.0.0
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百五十五章 版本号原则
|
|||
|
|
|
|||
|
|
推荐Semantic Versioning:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
MAJOR.MINOR.PATCH
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
例如:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
1.0.0
|
|||
|
|
1.0.1
|
|||
|
|
1.1.0
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百五十六章 Hotfix
|
|||
|
|
|
|||
|
|
生产紧急修复:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
1.0.1
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
不能随意覆盖:
|
|||
|
|
|
|||
|
|
> 1.0.0原构建物。
|
|||
|
|
|
|||
|
|
保证可追溯。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百五十七章 最重要的测试优先级
|
|||
|
|
|
|||
|
|
如果时间有限,优先级必须是:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
安全与越权
|
|||
|
|
↓
|
|||
|
|
数据一致性
|
|||
|
|
↓
|
|||
|
|
核心Match关系
|
|||
|
|
↓
|
|||
|
|
聊天权限
|
|||
|
|
↓
|
|||
|
|
实名认证/审核
|
|||
|
|
↓
|
|||
|
|
活动名额
|
|||
|
|
↓
|
|||
|
|
红娘权限
|
|||
|
|
↓
|
|||
|
|
统计
|
|||
|
|
↓
|
|||
|
|
普通UI细节
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百五十八章 不允许为了赶上线牺牲的项目
|
|||
|
|
|
|||
|
|
绝不能因为时间紧而跳过:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Block测试
|
|||
|
|
权限越权测试
|
|||
|
|
敏感数据测试
|
|||
|
|
Mutual并发测试
|
|||
|
|
活动名额并发测试
|
|||
|
|
数据库备份
|
|||
|
|
Rollback
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百五十九章 V1质量目标
|
|||
|
|
|
|||
|
|
平台正式上线至少应该达到:
|
|||
|
|
|
|||
|
|
> **核心链路无阻断。**
|
|||
|
|
|
|||
|
|
> **关键关系无重复。**
|
|||
|
|
|
|||
|
|
> **高风险权限无越权。**
|
|||
|
|
|
|||
|
|
> **敏感数据无明显泄露。**
|
|||
|
|
|
|||
|
|
> **弱网情况下关键业务最终一致。**
|
|||
|
|
|
|||
|
|
> **工作人员能够按照系统完成服务。**
|
|||
|
|
|
|||
|
|
> **发生异常时能够定位、回滚、恢复。**
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 第二百六十章 最终质量原则
|
|||
|
|
|
|||
|
|
V1.0必须坚持:
|
|||
|
|
|
|||
|
|
> **能打开页面,不等于功能正确。**
|
|||
|
|
|
|||
|
|
> **功能正确,不等于状态一致。**
|
|||
|
|
|
|||
|
|
> **状态一致,不等于安全。**
|
|||
|
|
|
|||
|
|
> **安全,不等于用户真正会用。**
|
|||
|
|
|
|||
|
|
> **用户会用,不等于线下工作人员能执行。**
|
|||
|
|
|
|||
|
|
因此完整的上线质量标准应该同时包含:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
功能正确
|
|||
|
|
+
|
|||
|
|
业务状态正确
|
|||
|
|
+
|
|||
|
|
数据一致
|
|||
|
|
+
|
|||
|
|
并发安全
|
|||
|
|
+
|
|||
|
|
权限正确
|
|||
|
|
+
|
|||
|
|
隐私安全
|
|||
|
|
+
|
|||
|
|
用户易用
|
|||
|
|
+
|
|||
|
|
工作人员可执行
|
|||
|
|
+
|
|||
|
|
异常可恢复
|
|||
|
|
+
|
|||
|
|
数据可追溯
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
最终上线标准不是:
|
|||
|
|
|
|||
|
|
> “开发说完成了。”
|
|||
|
|
|
|||
|
|
而是:
|
|||
|
|
|
|||
|
|
> **用户能顺利完成婚恋服务闭环,工作人员能稳定提供公益服务,系统在异常和风险情况下仍然知道该拒绝什么、保护什么、保留什么、恢复什么。**
|