【功能测试】bug定位总结

前提:
一:明确需求文档,产品逻辑。
了解途径:需求文档、checklist。
二:了解技术方案
  • 客户端、前端
    • 实现方式(native reactnative hybrid wap)
    • 发送网络请求时机 (点击按钮、切换tab、唤起app、置于后台重新唤起、失败后重试等)
    • 网络请求url、参数(数据类型,是否必传,cookie设置) eg:ios不同系统long型 位数不同
    • 响应请求处理(请求成功、失败、超时逻辑)
    • 数据存储(内存、文件、SQLite) case:杀进程、删除文件、覆盖安装
    • 数据处理逻辑(是否判空等,逻辑分支)
    • 所需权限申请(照相机、允许通知、文件读取、麦克风)
  • 后端
    • 接口处理逻辑(入参,出参,计算、过滤等)
    • 后端数据来源(mysql、redis、第三方接口调用、配置)
了解途径:抓包工具、后端接口文档、代码查看、询问开发
三:定位步骤:
  1. 明确bug发生时具体现象及期望表现
    1. 严重:闪退、操作无响应、流程错误、信息展示错误,信息显示不全、
    2. 一般:用户体验不友好、界面展示、提示信息不清楚
    3. 性能:内存泄露、ANR
  2. 确认bug发生的条件
    1. 是否必现:浏览器、操作系统、手机机型
    2. 网络环境:断网、弱网、网络环境切换
    3. 接口请求:是否正常发送请求,请求参数是否正确,后端接口响应是否正常
    4. 是否有特殊操作:上传照片、杀进程、清除缓存。
    5. 操作流程:先执行xx操作之后,再执行xx
  3. 前后端问题定位
    1. 崩溃日志
    2. 抓包
    3. 前端、后端日志查看
    4. 开发debug
  4. 后端问题,通过日志、代码查看,或远程debug
    1. 是否第三方调用异常
    2. 数据库中数据错误
    3. 数据处理逻辑错误:空指针、计算错误、未命中缓存、边界处理等
    4. 资源使用(线程池、数据库连接池)
  5. 前端问题:
    1. 字段未判空、使用的方法版本不兼容、未申请到所需权限(必现:一般崩溃原因)
    2. 资源回收不及时(非必现 崩溃原因)
    3. 请求参数赋值错误
    4. 数据处理错误(缺少处理逻辑)
    5. 线程安全问题
    6. 生命周期,消息处理流程等(adr:handler ios:NSNotification)
四:总结思考
  1. 建议前后端双重校验
    1. 最常见的bug原因:数据未校验
  2. 尽早发现问题
    1. 需求review阶段尽可能明确需求点,并且需要考虑服务性能。防止后续返工。
    2. 前瞻性,提前计算预期数据,并且要合理考虑后续数据增长(后端)。
  3. 异常逻辑处理
    1. 后端接口异常、超时、服务宕机,前端兼容逻辑。
    2. 按钮重复点击,提交、消息重发,重复领取等,后端去重校验。
  4. 其他
    1. 上线后出问题迅速故障恢复(ABtest、配置回滚、开关、线上回滚)
    2. case执行效率:提高每条case执行的效率。(数据库修改、脚本辅助)
    3. 充分沟通。
p.s. 问题:web端是否适用
展开阅读全文

没有更多推荐了,返回首页