Skip to content

bug 定位方法

简介

Bug 定位是软件测试过程中至关重要的一个环节,旨在识别和解决软件中的缺陷或问题。学习和掌握 Bug 定位方法对于软件开发和测试人员来说是不可或缺的,它不仅能够提升个人的技术能力,还能对团队和项目的成功产生积极影响。

todo 截图

bug 定位方法价值

  • 提高问题解决能力
  • 提升代码质量
  • 增强团队协作
  • 提高职业竞争力
  • 减少用户投诉

bug 定位方法

常见 bug 分类

todo 截图

为什么需要掌握 bug 定位

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

bug 展现层

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

todo 截图

技术架构层次

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

todo 截图

MVC 三层分析方法

  • View 层: 运行平台、应用调试机制、链路分析。
  • Controller 层: 运行平台、应用调试机制、链路分析。
  • Model 层:运行平台、应用调试机制、链路分析。
view 层常用分析方法
  • UI 人工测试 自动化测试
  • UE 人工测试 自动化测试
  • UI Diff 自动化分析
controller 层常用分析方法
  • 运行平台日志:log。
  • 应用调试日志:debug trace hook profle。
model 层常用分析方法
  • 运行平台log。
  • app 调试机制。
  • 链路分析:代理抓包 嗅探抓包。

web bug 分析方法

web ui view 层 bug 分析方法

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

todo 截图

todo 截图

web controller 层分析方法

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

alt text

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

  • 运行平台 log
    • chrome network
  • 链路分析
    • 代理 proxy: fddler charles
    • mitmproxy
    • 网络层协议 network:tcpdump
    • wireshark

todo 截图

app bug 分析方法

app view 层 bug 分析

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

todo 截图

todo 截图

app controller 层分析

  • 通过 logcat 分析 app runtime 日志

todo 截图

todo 截图

app model 层分析方法

  • 运行平台 log
  • 应用:应用日志
  • 链路分析:
    • 代理抓包:charles fddler mitmproxy
    • 嗅探抓包:wireshark tcpdump

Android profiler 网络分析

Android ProfilerAndroid Studio 中用于监控应用性能的工具,包括 CPU、内存、网络和电池使用情况。网络分析(Network Profiler)是其中的重要部分,帮助开发者监控应用的网络活动,诊断和优化网络性能。

todo 截图

使用代理工具

todo 截图

网络协议层分析

todo 截图

todo 截图

性能 bug 分析方法

H5 性能分析方法

todo 截图

利用 chrome 分析 web 性能

todo 截图

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

使用 Chrome DevTools 中的 Profiler 面板有效地进行代码剖析,识别并解决性能瓶颈,从而提升网页的性能和用户体验。

todo 截图

代码覆盖率分析方法

todo 截图

todo 截图

总结

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