0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Bug定位的过程

电子工程师 来源:全栈软件测试在线 作者:全栈软件测试在线 2022-08-08 16:11 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

身为测试工程师,总有一道绕不过去的坎就是定位bug,这其实是非常花费时间的。 也许有很多人不以为然,觉得无非就是发现bug后提交bug管理系统,描述操作步骤,预期结果和实际结果哪里不一致,然后继续测试。并不是说这样做的不对,只是说这样做的不够好,看似节约了测试时间,实则对于项目的进度没有起到应有的推动作用。

1

web前端

Web前端就是通常说的网页。互联网公司的前端一般包含如下内容:JavaScript、ActionScript、CSS、HTML(..ML)、HTML5、Flash、交互式设计、视觉设计

web前端测试可能发现的问题——版面设计、交互设计、文字、性能、功能

bug定位通用思路:现象-->原因-->验证手段-->结论-->现象

21ffc746-16c1-11ed-ba43-dac502259ad0.jpg

测试bug定位原因归类:

测试环境相关

是否安装了flash及flash的版本——可能导致部分页面显示出问题,目前常用的版本诶flash10

是否开启了浏览器插件——插件可能导致浏览器行为的变化,除非测试要求,否则一律禁用插件

是否开启了安全软件——可能会截包、弹窗拦截、防钓鱼等

浏览器相关

不同浏览器的支持标准——不同内核的浏览器对js及各种标准的支持不同,因此页面解析出来的效果可能不同。Firefox:gecko;Chrome:webkit;IE:trident;Safari:webkit。

浏览器的设置——禁用js;禁用弹窗;禁用cookie等

浏览器cache策略——js,css,图片等都有可能被cache住。ctrl+F5强制刷新请求

cookie——跨域,过期

网络相关

是否发出了正确的请求——请求url、参数变量。content数据

是否得到了正确的应答——http的返回值:200-正确;302-对象已移动;304-对象未修改;404-没有找到页面。返回的数据体

是否性能问题——异步请求的数量过多;网速过慢

字符编码相关

页面乱码——百度后端存储基本是使用的GBK编码,前端提交可能是UTF-8编码,后端对于非GBK编码一般采用实体存储。可能出现编码没有转换。转换的时候没有判断半个汉字(转掉了半个汉字导致雪崩)。

url错误——url路径中汉字编码使用的是utf-8编码,参数中使用系统默认编码,flash脚本中使用的都是uft-8编码。

安全相关

Xss漏洞——输入一些特定字符页面出现错乱或有恶意代码被执行,RD未对特殊字符转义完整

性能相关

图片数量——页面中同一个域的图片的数量控制在16个以下,IE会控制同一个域下图片并行的下载数量

页面抖动——异步请求的数量过多

加载失败——限速情况下,超时

bug定位常用工具

Firefox——firebug、web developer、live http headers、http fox

IE插件——httpwatch

第三方工具——fiddler、charles

慢速网模拟工具——firefox throttle、fiddler、charles

2

web后端

后端包含运行在服务器上的程序,脚本和服务。比如:各种各样的逻辑处理系统,数据存储系统等。

后端可能发现的问题——逻辑的,数据的,策略的,接口的,性能的等

测试bug定位原因归类:

数据流相关

上下游模块是否连接正常——模块的ip和端口的配置,白名单黑名单配置,session授权

模块的数据发送接收是否正常——日志是否有滚动,是否显示发送了数据或接收到数据,数据是否完整,跨机房,负载均衡算法(从哪些机器获取到的数据)

非socket的数据传输——共享内存(是否分配,key的配置等),cache(是否创建,脏数据等),数据库(配置,连接,表,触发器,存储过程),文件(大小,访问权限)

模块之间的接口——协议的一致性(mcpack1,mcpack2等),字段的一致性(一个按signed解析,一个按unsigned解析),字段复用

处理逻辑相关

程序的各种配置——功能是否开启/关闭,词表是否加载,各种阈值的配置,超时配置

程序日志——日志级别,交互的流程,处理的流程

各种边界——数据边界(int,long),文件边界(空文件,分文件的边界),时间边界

各种资源并使用——Cache是否遗留脏数据,并发和死锁

系统和环境相关

系统资源——Cpu,io,句柄,内存,网络状态,数据库状态,数据库连接数

环境资源——程序版本,内核版本,网络(外网)访问权限,系统动态库不一致

程序和代码相关(常用验证手段)

确认问题出现的位置——日志中的代码行,gdb中的代码行,抛出异常显示的代码行

获取当时的运行时信息——Gdb core文件,gdb attach到进程,查看堆栈,查看寄存器,设置breakpoint,watchpoint,查看内部数据

获取程序和系统信息——Strace查看系统调用,系统状态获取(ps,top,/proc/pid/*,vmstat,netstat)

更深入的手段——反汇编,查看寄存器,gdb高级应用

后端测试bug定位

日志查看命令

查看压力——tail -f as.log | grep '^NOTICE' | awk '{print $3}' | uniq -c

·排除日志中的特定内容——grep -v 'pattern' as.log

·只输出感兴趣的内容——grep -o 'proctimed+' as.log;grep -o 'proctimed+' as.log | grep -o 'd+ ';grep -o 'proctimed+' as.log | grep -o 'd+ ' | sort -n | uniq -c

·将wf日志归类——grep -o 'w+.(cpp|h):d+' as.log.wf | sort | uniq -c

gdb常用命令

bt——查看堆栈信息

print——打印某变量值

break——设置断点

x/i——翻译当前指令为汇编

info thread——查看所有线程,星号*标记的是当前线程

thread num——切换到线程号为num的线程

set scheduler -locking on——锁定在线程:输入continue命令以后,当前线程继续执行,其它线程不执行

set scheduler-locking off——这是默认设置,输入continue命令以后,所有线程都继续执行

3

性能测试

旨在获取系统在特定一种或多种环境下,在不同的外部输入压力(包含极限)的条件下的系统各项指标的测试

常用命令

进程相关——ps,top,/proc/pid/*

系统相关——vmstat,top,iostat,sar,df,lsof

网络相关——netstat

bug定位原因归类

压力工具相关

工具的功能和性能——能否达到预期压力,启动压力的机器性能,压力工具是否有异常连接关闭,压力工具如何处理异常,长连接短连接,并发的个数

工具运行环境——压力机器的带宽,是否跨机房

被测系统相关

机器性能——系统所在机器性能,机器网络带宽,机器的内存,sd卡,硬盘

系统本身——系统的下游模块的性能,系统的配置,系统的数据量,系统的特点状态(充cache,dump,merge),系统的部署,程序的bug

环境相关

操作系统相关—— 是否和线上一致,内核版本,刷脏页时间,有没有调用directIO

查看系统状态——Ps,top,/proc/pid/*, vmstat,netstat

正确的思路+丰富的业务知识+丰富的技术背景知识+较好的调试和开发能力= 强大的bug定位能力Bug定位的过程是能力提升的过程

Bug定位的过程也是境界提升的过程

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5590

    浏览量

    129093
  • 代码
    +关注

    关注

    30

    文章

    4942

    浏览量

    73160
  • BUG
    BUG
    +关注

    关注

    0

    文章

    156

    浏览量

    16225

原文标题:你真的会软件测试bug分析定位嘛

文章出处:【微信号:全栈软件测试在线,微信公众号:全栈软件测试在线】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    GPS定位和地磁定位有什么区别?

    GPS定位和地磁定位是两种原理完全不同、应用场景也差异巨大的技术。简单来说:GPS定位是绝对定位,告诉你“你在世界的哪个经纬度”。地磁定位
    的头像 发表于 11-19 12:01 193次阅读
    GPS<b class='flag-5'>定位</b>和地磁<b class='flag-5'>定位</b>有什么区别?

    电缆故障定位装置选择需重点关注的内容

    十分广泛的一种技术应用。 快速定位故障点通过检测电缆的阻抗变化、行波信号或电磁场异常,精准确定故障位置,从而缩短停电时间。如高压电缆故障定位装置可在故障发生后迅速锁定位置,有效避免传统人工排查的耗时
    的头像 发表于 11-09 17:26 394次阅读
    电缆故障<b class='flag-5'>定位</b>装置选择需重点关注的内容

    LuatOS下GNSS定位开发实战:初识定位、NMEA解码与位置追踪上报

    云端的完整过程。 一、GPS 概述   GPS 最先来自美国,1978 年,美国发射了第一颗 GPS 卫星,发明和实践了卫星定位技术。卫星定位技术原理是,覆盖全球的多颗定位卫星连续发射
    的头像 发表于 10-29 16:03 176次阅读
    LuatOS下GNSS<b class='flag-5'>定位</b>开发实战:初识<b class='flag-5'>定位</b>、NMEA解码与位置追踪上报

    蓝牙定位手环:可支持普通蓝牙定位,同时支持AOA定位

    YT9智能蓝牙定位手环,即可支持普通RSSI蓝牙定位,同时支持蓝牙AOA定位。它既能满足日常大范围、低精度的定位需求,也能在部署了专用基站的区域实现亚米级的高精度
    的头像 发表于 10-11 17:01 647次阅读
    蓝牙<b class='flag-5'>定位</b>手环:可支持普通蓝牙<b class='flag-5'>定位</b>,同时支持AOA<b class='flag-5'>定位</b>

    STM32CubeMX初始配置冲突的BUG怎么处理?

    发现了一个BUG,比如我们在使用开发板进行板载按键中断配置的时候,如果开启板子资源初始化配置,我们再自行配置一下后,产生了一个不识别的外部中断处理函数
    发表于 07-22 08:02

    HarmonyOS实战:高德地图自定义定位图标展示

    前言 地图定位功能基本上已经成了日常应用程序的必备功能之一,在日常开发地图定位的功能的时候难免会遇到很多意想不到的问题,本篇文章记录日常开发过程中的细节与完整的流程,帮助更多的开发者避免遇到类似
    的头像 发表于 06-09 14:59 511次阅读
    HarmonyOS实战:高德地图自定义<b class='flag-5'>定位</b>图标展示

    航空复杂曲面工件泓川科技激光位移测量机器人自动定位打磨系统实施过程解析

    航空复杂曲面工件激光位移测量机器人自动定位打磨系统实施过程解析
    的头像 发表于 05-04 09:56 687次阅读

    改装宝马车钥匙,增加AirTag定位芯片

    前几天给一个网友改装宝马车钥匙,增加AirTag定位芯片。 他说改装不成功没关系,车钥匙弄坏他承担,嘿嘿。 记录下改装过程 (另:自制AirTag定位器教程 看我之前的帖子《自制AirTag,支持安卓/鸿蒙/PC和Home As
    发表于 04-24 14:51

    基于 Wi-Fi 的定位服务

    以下捕获使用 location_wifi_get 函数请求 Wi-Fi 定位服务。该事件的总功耗为 125.85mC,日志显示精确度为 30.0m。 Got location: method
    发表于 04-17 15:16

    移动端设备上稀奇古怪的前端问题收集(一)

    作为一名开发者,bug 往往是我们最怕遇见的东西;而比遇到 bug 更可怕的事情,是定位不到 bug。作为一名前端开发者,与业务逻辑相关的 bug
    的头像 发表于 01-24 15:41 617次阅读

    仓储人员定位哪种定位技术好?

    在快速发展的仓储物流行业中,人员定位系统的精准性、实时性和成本效益成为了衡量其优劣的关键指标。随着技术的进步,传统的单一定位技术已难以满足复杂多变的仓储环境需求。那么仓储人员定位哪种定位
    的头像 发表于 12-25 14:24 860次阅读

    厂区人车定位用哪个定位方案好

    厂区人车定位不仅是保障生产安全、优化资源配置的基础,更是推动智能制造、提升运营效率的关键环节。但传统的人车定位方案往往难以全面满足厂区复杂多变的需求,存在诸多缺陷。本文将深入讲解哪个定位方案厂区人车
    的头像 发表于 12-19 10:36 786次阅读
    厂区人车<b class='flag-5'>定位</b>用哪个<b class='flag-5'>定位</b>方案好

    蓝牙人员定位系统功能有哪些,电厂人员定位作用

    蓝牙人员定位系统针对化工厂人员定位的实际需求,采用蓝牙人员定位方案,同时结合定位大数据分析,系统在使用过程中不断自我优化和学习,解决了传统
    的头像 发表于 12-13 14:42 755次阅读
    蓝牙人员<b class='flag-5'>定位</b>系统功能有哪些,电厂人员<b class='flag-5'>定位</b>作用