测试基本功 | 定位Bug的要求和方法
一、要求:
首先确定是界面显示问题还是功能问题,
如果是界面问题,如贴图错误,文字错误,样式错误,则需要截图
如果是功能问题:
控制台的问题至少定位到:www的问题还是数据库问题,如果是www问题至少要定位到是前端还是后端问题;如果是数据库问题至少要定位到是服务端接口问题还是中间件问题
客户端的问题至少定位到:哪个dll模块或者逻辑出的问题
服务端的问题至少定位到:什么接口出的问题,导致数据库哪里不对
二、方法
先说我们领导给我们讲的经验,主要针对于大数据报表项目:
1,Web项目的特点:portal+server、portal server,
2,Web项目开发分层:前端UI 即表示层、业务逻辑层、数据访问层
3,Web项目测试分层:前端UI合理性验证、前端业务逻辑验证、后台接口数据传递、调用,模块间关联(涉及表关联):对DB进行数据完整性、一致性验证,
4,Web项目bug定位分析方法:
1)抓包分析
2)后台日志分析
3)查询DB分析
4)排除法分析
抓包分析
常见工具:wireshark、Fiddler
Wireshark:能将客户端与服务器相关业务场景融合在一起,通过抓包分析API接口之间逻辑调用、数据传递,功能模块数据的关联性、错误处理;能准确分析定位Bug供开发参考。
Fiddler:能模拟Android客户端/Web 平与服务器的http/https请求,监视,设置断点,修改输入/输出数据。本地构造测试桩结合业务场景模拟调用API获取response
后台定位
排除掉前端的问题之后,需要逐层分析,从后台服务来进行分析定位,当然,定位分析问题的前提条件是,需要对业务流程非常清楚,清楚各模块之间的交互;假如后台服务的平台为linux,则需要对linux的一些常用命令进行掌握,采用tail -f 、 more , grep ,等命令来跟踪日志,最终定位到具体模块的错误信息,或者接口请求、返回结果
查询DB验证
适合场景
1)Web前端内容add或update, 需检查后台DB是否也add或update
例:天猫 下订单,前端已表示 订单OK,但后台DB未记录
天猫 取消订单,前端已表示 取消OK,但后台DB实际保留这条订单
天猫 变更订单,前端已表示 变更OK,但后台DB实际未update
2) Web前端与后台DB的一致性验证
排除法分析
1、前端定位分析:
是否是浏览器设置问题?
是否是浏览器兼容性问题?
是否是cookie相关的问题?
是否正确发出了请求?
是否得到了正确的应答?
是否是网络硬件原因?
是否是前后台接口不一致问题?
2、后台定位分析:
自顶向下排查(从系统入口模块开始)
是内部逻辑问题还是下游数据问题?
是否是某些配置下发生的问题?
日志中是否发现线索?
是否是边界值、并发等问题?
是否是不同模块间接口的定义不一致?
是否和服务器软件版本及设置有关?
自底向上排查(从系统末端模块开始)
最底层的模块是否正常收到了请求?
是内部逻辑问题还是上游请求问题
注:网上看到的比较全面的文章: