bug 分析方法

测试的工作就是提bug,提bug的步骤:发现bug——定位bug——分析bug——通过bug特征进行批量追踪

1. 发现bug
测试的首要任务!判断是不是个bug,描述bug【必现,偶然(偶然的复现步骤)】
2. 定位bug
是什么bug【功能(业务流程是否正确)、性能(业务流程是否顺畅)、安全(是否存在漏洞,是否符合安全标准与规范)、兼容性、稳定性、用户体验…】是哪个环节产生的bug
3. 分析bug
形成原因,为什么会有这个bug
4. 通过bug特征进行批量追踪
看有没有类似的bug,并丰富测试经验

bug 分析方法

经典的MVC框架:Model业务模型层、View用户视图层、Controller 控制层,bug的定位依照MVC框架,分析MVC各层的运行平台、应用调试机制和链路

View用户视图层

web:UI HTML CSS
app:activity view

View 层常见的问题是 UI(User Interface)用户界面和 UE(User Experience)用户体验。目前常采用人工测试和自动化测试,通过人工校验为主自动化校验为辅的方式检验界面交互的准确性以及用户体验感受。此外利用 UI 的 Diff 对比分析界面变化,定位更深层次的问题。(其中人工测试能够发现未知特征的 bug,自动化测试可以断言常用功能是否正常,通过 UI Diff 可以发现界面结构细节的问题)

web:chrome 开发者工具的 elements 和 style

Controller 控制层

web:chrome、devtool
app:dalvik art objectc-runtime

Controller 层通过平台自主提供的日志(log)以及应用程序本身提供的应用调试日志(debug trace hook profile)分析代码层次的逻辑问题。

web:chrome 开发者工具的 console 和 source
app:通过 logcat 分析 app runtime 日志

Model业务模型层

模型的传递方式:http tcp rpc 串口
模型的形式:json xml binary
模型定义:schema

Model 层根据运行平台的 log、app 调试机制以及链路来具体分析问题。主要分析请求方式和数据传递方式与结构。链路分析使用代理工具 proxy,常用的有 fiddler、charles 和 mitmproxy 以及网络层的嗅探,常用的有 tcpdump 和 wireshark。

web:chrome 开发者工具的network 。
APP:根据平台本身提供的 log 或者运行平台的调试工具,利用应用的日志分析以及建立追踪模式分析链路的问题。

  • android profile 网络分析

  • 使用代理工具分析——charles

  • 网络层协议分析——通过 tcpdump 抓包,导入 wireshark 进行分析。

  • H5 性能——H5的性能问题通常对网页加载的过程进行分析,通过 w3c 定义的 performance api 对每个阶段发生的问题进行统计,需要各个浏览器支持对性能方面的分析。

  • 利用 chrome 分析 web 性能——例:JSON.stringify(performance.timing)——页面的性能指标数据JSON.stringify(window.performance.getEntries(),null,2)

  • 分析性能瓶颈——使用 profile 进行代码剖析,分析应用运行时代码的具体时间。

  • 代码覆盖率——jacoco 覆盖率测试

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

balahalalala

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值