如何进行前端bug定位

前端bug主要分为3个类别:HTML,CSS,Javascript三类问题

给个最大的区别方式方法:

  1. 出现样式的问题基本都是CSS的bug
  2. 出现文本的问题基本都是html的bug
  3. 出现交互类的问题基本都是Javascript的bug

现在以淘宝的前端人员工作为例进行相关bug定位的剖析

判断前后台问题的区分方法:

FF, 打开错误控制台

  1. 区分前后台交互:查看网络请求

a) Html中如果有链接,有相应的情况下,基本可以定位到是属于前端的问题

b) 如果为空,或者有出现error错误信息,我们就可以定位到属于后台开发的问题

  1. TMS对应的VM模板,出现的一些截断控制,转换功能都属于前端的问题

一、HTML

最常见的HTML的问题—就是标签的问题了,最常见的排查和解决办法就是查看页面源代码,然后通过检查标签的工具,现在暂时提供idea.exe进行检查,有其他更好的工具再进行推荐。

常见问题类别:

  1. 标签闭合—表象,页面中出现大范围的混乱,就是少了标签的情况,导致标签未闭合
  2. 标签浮出—例如鼠标移动到文本位置,浮出全名的这种浮出形式都属于标签浮出的问题
  3. 标签在不同的浏览器的一种解析方式的不同导致的前端bug例如如下结构

该部分可以看做为一个大的框即是标签<a> 内嵌标题的标签<p>,里面再有这些个内容<ing>,那么在不同的浏览器中,可能ie和FF的解析会产生不同,假设IE解析 为<a><p><ing></ing></a></p>的一种形式,但在FF 下可能解析为

<a><ing></ing></a>

<p></p>

的两行的形式从而导致前端在复古鞋/板鞋这块ing里面的格式产生混乱

结构可看为:

  1. 页面定点的问题:最明显的前端功能,在于点击某个链接将页面位置定位到对应的位置

a) 我们可以通过右键,查看元素的工具进行定位到毛点所定位到的位置,如果出现问题这种问题很直观,并且能通过这种方法直接定位到问题

  1. 页面的跳转,也属于html的问题,大家在出现点击未跳转或者跳转方式不正确的问题,直接可以定位到跳转属性的问题,找到对应的跳转对应的块提供给开发人员即可

二、CSS,产生样式问题。例如:排版,布局,颜色,背景等

css的bug主要分为:兼容型bug 、业务性bug 和 内容型bug

  1. 兼容型bug

a) 表现:仅在少数几个浏览器上出现

b) 原因:浏览器的解析不一致

c) 解决:根据实际情况进行前端代码的通用性

d) 类别:

  1. 脚本兼容型问题:在出现对应交互的问题就基本可以定位到脚本兼容型bug,例如DIV的显示和层结构。实际可以参考聚划算的几个商品鼠标移动到小图的时候,对应大图展示的功能。
  2. 页面样式兼容型问题:直接表象在样式上,都是基于框架的页面展示错误,很容易定位
  3. 业务性bug

a) 表现:在所有浏览器下都有该问题

b) 原因:对业务不熟悉

c) 解决:根据需求进行修改达到业务要求

该类型的定位,主要在和实现的要求不一致,最直接表现在页面的友好型,用户的可用性的bug,可以定位为该类型

  1. 内容型bug

a) 表现: 前端自测正确,但在填入内容后,出现的错误,内容消失等

b) 原因: 扩展性未考虑周全

c) 解决: 进行overflow test

输入内容的长度限制等功能可定位为内容型bug

三、Javascript

最直接的判断方法,刷新页面,出现滞后显示的一些模块基本都为脚本的输出块。该部分的一些问题可以参照兼容型bug中类别的脚本兼容型bug。

  1. 有产生交互类的问题,大多数都可以定位到是属于javascript产生的问题,该部分大多不会报错
  2. 有错误提示类的。页面左下方有出现javascript的错误提示;有弹出错误信息提示的bug;浏览器返回的一些错误弹出框都属于javascript的bug
时间: 2024-08-28 10:57:09

如何进行前端bug定位的相关文章

软件测试的BUG定位

bug定位即有足够的"证据"去证明DOV(开发人员)的代码存在问题,不是单凭自己认为是bug就是bug,最好可以定位到DOV的某行代码,某个函数的问题,最好保留日志截图并且可以保证重现. 定位顺序:UI --> 中间件 --> 后台 -->代码 -->database 一.web前端的bug分析定位. 测试内容:页面布局.用户功能.易用性.兼容性 测试方法:模拟用户输入,在浏览器页面上进行输入.点 击等行为 定位之前需要思考的问题:是否是浏览器设置问题?是否是浏

前端BUG总结

关于margin的BUG,参考http://www.poluoluo.com/jzxy/201206/167007.html IE6中双边距Bug:发生场合:当给父元素内第一个浮动元素设置margin-left(元素float:left)或margin-right(元素float:right)时margin加倍.解决方法:是给浮动元素加上display:inline;CSS属性:或者用padding-left代替margin-left. 原理分析:块级对象默认的display属性值是block,

程序bug定位

最近又犯老毛病 碰到新功能没有能耐心地花时间去思考方方面面和细节 而是 直接动手开始实现单一核心功能 然而 bug连连 =======分割线============== 出现bug了...... 用户发现bug,反映到运营 运营没能执行bug上报流程找到测试(目前也没有什么bug上报流程) 测试没能确定bug详情 告知我有闪退之类的bug “你看,怎么又闪退了...” “代码缺少健壮性!” =======分割线====== 于是我开始准备定位闪退原因 以下为“世界观”+“方法论” 1.bug能不

web前端css定位position和浮动float

最近做了几个项目:配资公司,ecmal商城等,客户对前台要求都很高.所以,今天来谈谈css的基础,以及核心,定位问题. div.h1或p元素常常被称为块级元素.这意味着这些元素显示为一块内容,即“块框”.与之相反,span和h3等元素称为“行内元素”,这是因为它们的内容显示在行中,即“行内框”. 在这种情况下,这个框称为无名块框,因为它不与专门定义的元素相关联. 块级元素的文本行也会发生类似的情况.假设有一个包含三行文本的段落.每行文本形成一个无名框.无法直接对无名块或行框应用样式,因为没有可以

[笔记] 几个前端bug的解决方案

jQuery UI下被拖动的元素上飘 症状出现在几乎所有浏览器里.使用 1.10.x 的draggable,在滚动栏下移(即非处于页面顶部)的时候拖动draggable的元素,它会向上跳一段距离.解决办法是将jQuery UI 1.10.x的_convertPositionTo() 和 _generatePosition() 换为1.9.2的或者设置父元素的position为absolute以外的值.(应该是父元素为absolute时计算offset又逗比了……) 参考:Jquery UI 1.

前端bug记录---不定时更新

在项目的开发中难免遇到各种各样的bug,我觉得还是有必要记录一下的,方便日后查询. safari window resize  为满足日常轮播需求,做一个符合当前业务的轮播插件,其中需要考虑window变化的情况,所以绑定了resize事件用来做相应的处理.safari中scroll(上下滑动)操作会触发window的resize事件,暂且叫bug吧. demo就不写了,你们顺便弄弄就好了,这里说下解决思路. 一般绑定window的resize事件,都是为了处理视窗的width的变化,那我们就可

记录一个前端bug的解决过程

人在江湖飘,哪能不挨刀. 我挨了重重一bug.严格来讲这可能是我职业生涯以来的首个悲惨经历,因为凭我的知识储备和经验,基本上任何可重现的bug都是可解的.然而这个bug却困扰了我三个月之久,它具有以下生理特征: 后台日志能统计到异常,偶发.低频 报异常的用户设备不具有规律性,什么手机都有 我们自己无法复现,任何设备.任何环境都没复现 打电话回访报异常的用户,确实存在问题 客服未接到用户主动反馈这个异常 此bug并不是js报错,而是一个业务逻辑的错误.表现是,用户提交的数据莫名缺失.场景是以下这个

前端基础——定位

1.绝对定位 如果所有的父元素都没有显式地定义position属性,那么所有的父元素默认情况下position属性都是static.结果,绝对定位元素会被包含在初始块容器中.这个初始块容器有着和浏览器视口一样的尺寸,并且<html>元素也被包含在这个容器里面.简单来说,绝对定位元素会被放在<html>元素的外面,并且根据浏览器视口来定位.也可以理解成定位的元素现在相对于<body>元素. 2.z-index z-index 值影响定位元素位于该轴上的位置:正值将它们移动

记一次Bug定位的过程

问题1 工作需要出bug的芯片不详细说明,该芯片的CPU含有32个中断源,一般来说,以stm32为例,中断向量表定义在startup_stm32f40_41xxx.s中,写为: ; Vector Table Mapped to Address 0 at Reset AREA RESET, DATA, READONLY EXPORT __Vectors EXPORT __Vectors_End EXPORT __Vectors_Size __Vectors DCD __initial_sp ; T