Python 测开27期 - WL - 学习笔记 - Bug 定位方法

Bug 定位方法

常见 bug 分类

维度 介绍
功能 业务流程是否正确
性能 业务流程是否顺畅
安全 是否符合安全标准与规范
专项质量 用户体验、UX、兼容性、稳定性、可靠性

掌握 bug 定位

  • 提交 bug 时追加更多有用信息,方便研发更快的解决问题
  • 分析 bug 形成原因,进行溯源并建立特征进行批量追踪

bug 展现层

  • 条件:测试数据
  • 过程:测试步骤
  • 结果:测试结果
    image

技术架构层次

  • 视图层 View:
    ** web UI html css
    ** app activity view
  • 控制器层 Controller:
    ** web:chrome、devtool
    ** app:dalvik art objectc-runtime
  • 模型层 Model:
    ** 模型的传递方式 http tcp rpc 串口
    ** 模型的形式 json xml binary
    ** 模型定义 schema
    image

MVC 三层分析法

  • View 层:运行平台、应用调试机制、链路分析
  • Controller 层:运行平台、应用调试机制、链路分析
  • Model 层:运行平台、应用调试机制、链路分析

view 层常用分析方法

  • UI 人工测试、自动化测试
  • UE 人工测试、自动化测试
  • UI Diff 自动化分析

controller 层常用分析方法

  • 运行平台日志:log
  • 应用调试日志:debug trace hook profile

model 层常用分析方法

  • 运行平台 log
  • app 调试机制
  • 链路分析:代理抓包、嗅探抓包

web 分析方法

web ui view 层 bug 分析方法

  • 主要依赖于 html css js
  • 可以使用 chrome 开发者工具 elements 与 style

web controller 层分析方法

  • console 可以了解 js 的输出与报错信息
  • source 模块可以对 js 进行 debug

web model 层分析方法 - 分析数据传递方式与结构

  • 运行平台 log
    ** chrome network
  • 链路分析
    ** 代理 proxy:fiddler Charles mitmproty
    ** 网络层协议 network:tcpdump wireshark

app bug 分析方法

app view 层 bug 分析

  • UI 界面交互
  • UX/UE 用户体验
  • UI Diff:uiautomator dump

app controller 层分析

  • 通过 logcat 分析 app runtime 日志

app model 层分析

  • 运行平台 log
  • 应用:应用日志
  • 链路分析
    ** 代理抓包:fiddler Charles mitmproty
    ** 嗅探抓包:tcpdump wireshark

Android profile 网络分析

代理工具分析

image

网络协议层分析

image

image

性能 bug 分析方法

利用 chrome 分析 web 性能

分析性能瓶颈 使用 profile 进行代码剖析

代码覆盖率分析方法

image

image

总结

  • 明确 bug 问题的现象与复现步骤
  • 分层分析关键过程的数据与问题特征
  • 积累 bug 特征与问题根源特征,丰富测试经验,提高 bug 发现的能力