执行观察力
核心原则
同样在执行,专家看到了更多信息。通过六路信号模型(功能表现/接口响应/日志报错/UI渲染/数据一致性/性能指标)系统记录执行观察。每轮执行后输出观察记录,标注异常信号。
深度要求(参考值)
关键指标:根据场景复杂度调整观察深度
| 复杂度 | 信号捕获要求 | 说明 |
|---|---|---|
| 简单场景 | 至少捕获3路信号 | 单一功能路径 |
| 中等场景 | 至少捕获5路信号 | 多分支交互场景 |
| 复杂场景 | 全部6路信号 | 跨模块/分布式场景 |
六路信号模型
信号1:功能结果(最基础)
观察要点:
├─ 结果正确性:是否符合预期?
├─ 结果完整性:是否有遗漏?
├─ 结果一致性:多次执行结果一致吗?
└─ 结果边界:边界值处理正确吗?
观察方法:
- 对比预期结果
- 多次执行验证
- 边界值测试
信号2:性能信号(容易忽略)
观察要点:
├─ 响应时间:比正常慢多少?
├─ 加载时间:页面加载耗时?
├─ 处理时间:后台处理耗时?
└─ 资源消耗:CPU/内存/网络占用?
观察方法:
- 计时对比
- 浏览器DevTools
- 性能监控工具
异常信号:
- 响应时间 > 2秒
- 页面加载 > 3秒
- 后台处理 > 5秒
信号3:日志信号(关键线索)
观察要点:
├─ 错误日志:有没有ERROR?
├─ 警告日志:有没有WARN?
├─ 异常堆栈:有没有Exception?
├─ 业务日志:关键操作有没有记录?
└─ 性能日志:有没有慢查询?
观察方法:
- 实时查看日志文件
- grep关键错误信息
- 关注异常堆栈
日志位置:
- 应用日志:/var/log/app/
- Nginx日志:/var/log/nginx/
- 数据库日志:/var/log/mysql/
信号4:数据信号(验证结果)
观察要点:
├─ 数据创建:数据有没有正确写入?
├─ 数据更新:数据有没有正确更新?
├─ 数据删除:数据有没有正确删除?
├─ 数据一致性:各处数据一致吗?
└─ 数据完整性:数据字段完整吗?
观察方法:
- 直接查询数据库
- 对比缓存和数据库
- 检查数据关联
信号5:前端信号(用户视角)
观察要点:
├─ 页面加载:有没有白屏/卡顿?
├─ 交互响应:点击后有反应吗?
├─ 样式显示:样式正确吗?
├─ 兼容性:不同浏览器表现?
└─ 响应式:不同屏幕尺寸?
观察方法:
- 手动操作观察
- 浏览器DevTools
- 多浏览器测试
信号6:依赖信号(外部影响)
观察要点:
├─ 第三方接口:调用成功吗?
├─ 下游服务:响应正常吗?
├─ 消息队列:消息发送成功吗?
├─ 缓存服务:缓存读写正常吗?
└─ 外部资源:CDN/图片加载正常?
观察方法:
- 查看网络请求
- 检查接口调用
- 监控依赖服务
观察清单
执行前检查
- 测试环境准备好了吗?
- 测试数据准备好了吗?
- 监控工具打开了吗?
- 日志文件准备好了吗?
执行中观察
- 功能结果正确吗?
- 响应时间正常吗?
- 日志有异常吗?
- 数据写入正确吗?
- 前端显示正常吗?
- 依赖调用正常吗?
执行后验证
- 数据状态正确吗?
- 关联数据一致吗?
- 测试数据清理了吗?
- 环境恢复了吗?
异常信号识别
功能异常信号
- 返回错误码
- 返回空数据
- 返回格式错误
- 响应超时
性能异常信号
- 响应时间突增
- 页面加载缓慢
- 后台处理超时
- 资源占用过高
日志异常信号
- ERROR级别日志
- Exception堆栈
- 慢查询日志
- 异常警告
数据异常信号
- 数据未写入
- 数据不一致
- 数据格式错误
- 数据丢失
前端异常信号
- 白屏
- 卡顿
- 样式错乱
- 控制台报错
依赖异常信号
- 接口调用失败
- 服务不可用
- 消息发送失败
- 缓存读写失败
应用场景
执行登录功能测试时 → 六路信号观察:
- 功能:登录成功/失败,页面跳转正确
- 性能:响应时间>3秒(异常信号)
- 日志:控制台有"password validation failed"日志
- 数据:数据库用户状态正确更新
- 前端:错误提示显示在正确位置
- 依赖:认证服务响应正常
支付功能测试,支付成功后订单状态未更新 → 异常信号追踪:数据信号(订单状态不变)→依赖信号(支付网关回调异常)
异常处理引导
| 场景 | 表现 | 处理方式 |
|---|---|---|
| 异常信号无法复现 | 观察到问题但再次操作不出现 | 记录环境和操作序列,标记为间歇性问题 |
| 日志信息不足 | 控制台日志被截断/未开启 | 建议开发加日志,或用抓包工具补充信号 |
| 依赖服务不可用 | 被测功能依赖的服务挂了 | 记录故障现象,用Mock模拟依赖继续测试 |
| 性能指标不达标 | 响应时间超阈值但非代码问题 | 排查环境因素(网络/数据量/并发),标注基线 |
自检清单
执行观察完成后检查:
- 是否观察了六路信号?
- 是否记录了异常信号?
- 是否分析了异常原因?
- 是否验证了数据状态?
- 是否清理了测试数据?
- 是否恢复了测试环境?
检查清单
- 观察维度是否覆盖(功能/接口/日志/UI)?
- 异常信号是否记录?
- 多轮观察是否对比?
- 观察报告是否生成?
- 可疑点是否标注?
评论
加载中…