Bug定位方法

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

  • 为什么需要掌握 Bug 定位

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

  • Bug 展现层
    条件:测试数据
    过程:测试步骤
    结果:测试结果

  • 技术架构层次
    视图层 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-68

  • MVC 三层分析方法
    iew 层:运行平台、应用调试机制、链路分析
    Controller 层:运行平台、应用调试机制、链路分析
    Model 层:运行平台、应用调试机制、链路分析

  • View 层常用分析方法
    UI(界面交互) 人工测试 自动化测试
    UE(用户体验) 人工测试 自动化测试
    UI Diff 自动化分析

  • Controller 层常用分析方法(代码层)
    运行平台日志:log
    应用调试日志:debug trace hook profile

  • Model 层常用分析方法
    运行平台 log
    app 调试机制
    链路分析:代理抓包 嗅探抓包

  • 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 mitmproxy
    网络层协议 network: tcpdump wireshark

  • App View 层 Bug 分析

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

image-72

image-73

  • App Controller 层分析
    通过 logcat 分析 app runtime 日志

image-74
image-75

  • App Model 层分析方法
    运行平台 log
    应用:应用日志
    链路分析:
    代理抓包:charles fiddler mitmproxy
    嗅探抓包:wireshark tcpdump

  • Andorid Profiler 网络分析

  • 使用代理工具分析

  • 网络协议层分析

  • 性能Bug分析方法

H5 性能分析方法

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