2026/4/5 13:46:55
网站建设
项目流程
页面效果华丽的网站,全国文明城市创建工作,自己电脑做网站用备案,福建省建设资格管理中心网站01 定位问题的重要性
很多测试人员可能会说#xff0c;我的职责就是找到bug#xff0c;至于找原因并修复#xff0c;那是开发的事情#xff0c;关我什么事#xff1f; 好#xff0c;我的回答是#xff0c;如果您只想做一个测试人员最基本最本分的事情#xff0c;那么可…01 定位问题的重要性很多测试人员可能会说我的职责就是找到bug至于找原因并修复那是开发的事情关我什么事好我的回答是如果您只想做一个测试人员最基本最本分的事情那么可以这么想。但是如果您想要在测试甚至开发的道路上长足发展就要知其所以然。那么为什么定位问题如此重要1、可以明确一个问题是不是真的“bug”。很多时候我们找到了问题的原因发现这根本不是bug。原因明确误报就会降低。比如我们团队的大梅同学全年500个bug中没有一个无效的。2、找到bug原因后可以明确地指给某个开发防止他们打太极推来推去提高缺陷的修复速度。3、让开发人员能够佩服你提升开发对测试的信任度。4.自己在这个过程中能学到很多东西有助于理解产品内部逻辑对架构的理解以及数据流是怎样的走向。随着对业务架构逻辑的理解反过来又会促进对问题的定位。5.可以降低缺陷率。这个可以说是最重要的。在bug系统中我们会要求开发人员记录bug产生的原因。只有我们自己对bug有一个较全面的认识才会判别出开发写的是不是真正的原因也才能有助于我们后续对bug进行分析归类根据bug分析有针对性地未雨绸缪进而提升产品质量降低缺陷。所以定位问题很重要。接下来我们就来探讨下有哪些定位问题的方法和技巧。02 问题定位技巧首先定位问题有一个总的思路而这个思路是和数据的走向一致的。大致是这样首先当系统出现bug时一定要将bug现象进行录制保留保留现象是为了证明这个bug出现过如果bug是固定重现还好说如果该bug无法重现那么保存的截图都是你直接证据要养成良好的保存现场的习惯提BUG这块还是要体现出测试的专业性标题简洁、问题环境标识清楚、问题详细描述清楚、系统错误表象贴图、接口传参返参贴图、必要时贴服务器日志总结来说不该少的bug标签一个不要少一. 小型产品前后端一人统筹一些小型程序例如前后端都用node、php语言开发的整个系统前后端是同一个开发的时候那么小编可以自信的给你说系统出现问题时bug大胆的提往猝死的提责任人错不了二. 常规系统多人开发协同前置测试之前该测试人员对系统、业务、环境部署、开发人员等较为熟悉在测试之前打开对应浏览器的F12直接开个新页签或者使用抓包工具等系统呈现出问题时查看对应的请求、日志信息等我们才能去全面的定位是前端还是后端人员的问题具体给大家介绍以下几个常用方法1. 分析问题场景进行预判先查看页面表象根据问题表像判断问题可能出现的原因进行缩小范围并且准备好录制工具录制问题系统页面无法正常访问的提示5开头的找后端4开头的先检查请求地址或者对应的权限进入系统页面正常打开提示异常代码错误的直接找后端进入系统页面展示异常图片视频相关提示Flash等相关信息进行安装Flash如若还不行找前端界面UI展示兼容性错误找前端如若系统访问正常进入操作页面功能性报错信息就进入下面环节抓包查看对应请求体看日志等2. 关注请求体的状态码4**开头的状态码一般都是客户端前端的问题例如常见的404确认下是否是请求的地址有错403确认是否有权限访问具体可百度5**开头的状态码一般都是服务端后端问题例如常见的500则表示是服务器内部错误503网络过载导致服务端延时502服务器崩溃等具体可百度3.关注请求的入参与响应数据通过访问报错的页面加载错误请求时我们通过F12进行分析请求包查看对应的入参以及响应数据例如请求入参错误那么该bug属于前端的错误入参标准可以根据前端页面的输入的内容或者选择的内容进行核验入参格式以及是否必填等可以对应接口文档去进行分析或跟开发确认例如请求未响应或者响应数据错误那么该bug就属于后端的错误一般是数据库查看报错例如删了某个表查询报错误空指针等如果请求的入参或者响应数据都没问题可以跟开发反馈是不是浏览器解析的问题可以换个浏览器测试4. 查看日志针对服务端类型的报错我们可以进行登录日志平台或者服务器对应Log目录下查看打印出的日志常用查看日志命令tail ,/error进行快速检索关键词接口名等相关内容拿到对应的日志,将日志文件贴进bug单指派给后端提高专业性测试人员也要养成看日志的习惯看着看着就懂了5. 经验法则在系统前端页面当碰见服务器配置相关报错的信息例如Nginx或者代码以及SQL相关的提示报错信息直接找后端处理例如JAVA* 、.PHP、SQL等异常报错前端字符校验、格式校验、等浏览器界面UI兼容性以及插件或者APP、小程序类调用手机相关功能拍照、语音无法正常调用直接找前端下面我们就来说说测试人员定位问题的N板斧。1、让子弹飞一会儿碰到问题先别忙定位首先请保存犯罪现场并且确认能复现。然后排除QA的低级问题 。为什么要保存现场如果以后复现不了就证明不了问题的存在。有哪些QA的低级问题常见的就是hosts不对网络不通以及操作姿势不正确等等。这个其实就是上文提到的用户层面问题这里的用户就是QA人员。经常有QA人员发现问题后就赶紧叫开发过来看开发这时候幽幽地说句“host对吗”一看不对岂不是很尴尬。还有一类问题就是脏数据我们有时候会遇到服务端报500错误查看日志后报空指针那么很有可能就是数据库中关联表的数据被人为删掉导致的。还有的问题是由于工具的影响导致的例如fiddler。所以发现问题您别慌让子弹飞一会确认不是自己的问题再说。2、直观查看页面表现这个就是上文提到的对Web页面的观察。不再赘述。3、看状态码4xx状态码一般表示是客户端问题当然也有可能是服务器端配置问题比如发生了401那么要看下是否带了正确的身份验证信息发生了403则要看下是否有权限访问404则要看下对应的URL是否真实存在。而5xx一般表示服务端问题。比如发生了500错误则表明是服务器内部错误这个时候要配合服务器log进行定位发生了502则可能是服务器挂了导致的发生503可能是由于网络过载导致的发生504则可能是程序执行时间过长导致超时。4、看服务器日志如果发生5xx问题或者检查后端接口执行的sql是否正确我们最常见的排查方法就是去看服务器日志比如tomcat日志开发人员一般会打出关键信息和报错信息从而找到问题所在。测试人员要养成看日志的习惯。并且如果将来进行开发也要养成打日志的习惯否则发现问题真不知道到哪哭去。5、接口的请求和返回以及js执行是否有报错在第3点中我们说了状态码的问题明确了4xx和5xx的问题所在。那么如果接口返回了200就一定正常吗假设有这么一种情况要测试一个翻页控件翻到第二页的时候发现内容和第一页完全一样接口请求返回的是200。这个时候你会怎么排查这个时候就要看前端发送的参数正不正常后端返回的内容正不正常即接口的请求和返回。我们来看翻页控件的问题。我们看接口的请求F12控制台查看网络请求或者抓包工具一般根据开发的习惯会有pn、ps参数看看传值是否正确。如果请求参数不正确那么就是前端的问题。如果正确那么就看response看看返回的内容对不对以此就知道到底是前端问题还是服务端问题。如果发现js执行报错了那就是前端有问题比如跨域问题。请求URL不正确是前端bug传参不正确是前端bug响应内容不正确则是后端bug。如果是响应内容不正确的后端问题那就要继续深挖是接口吐数据的时候出错了还是数据库中的数据就错了还是缓存中的数据错了如果用到了缓存的话。经常见到后端开发人员有的负责接口有的负责写入数据库有的负责维护缓存所以如果发现是后端的问题可以更进一步确认下是哪块的问题。6、看需求文档有时候前端和服务端的交互都正确但是从测试的角度看不合理。这个时候我们应该翻翻需求文档如果没有的话就直接抛出这个问题。如果和需求文档不符那么就要看下谁改合理是前端改还是服务端改或者两者都得改。这里有一个原则就是前端尽可能少地去承担逻辑只负责渲染展现。当然不要以为需求文档就全部正确它也可能会有错误我们也应该去发现需求文档的bug然后再去协调PM敦促FE或者RD进行修改。在这点上不得不说有的开发做的比较好他会有自己的思想在开发的时候就能发现需求文档的错误而有的开发则是无条件无脑执行。7、后端生成页面问题后端生成页面最常见的就是类似于jsp、php、python的某些前后端不分离的框架这种比较特殊常见于单人开发的项目这种项目的问题排查和其他项目总的思路也一样只不过前后端bug的修改可能都是同一个人而已。8、开发提供可测性支持有时候涉及到多方面合作不太好测试的情况下需要开发提供可测性支持。比如要查看接口给另一个接口发的请求是否正确可以让开发打印出完整的请求log。还有一些逻辑开关、修改页面数据条数等都属于可测性支持的范畴。9、配置的问题很多时候bug不是代码问题而是tomcat配置、nginx配置、jdbc配置等的问题。在这个层面上测试人员最好能够了解下它们的各项配置在发现问题后可能就会想到这方面的问题。10、经验法则太阳底下没有新鲜事有经验的人早就遇到过相同的问题。高手往往能够一眼看穿表面现象内部的问题然后直奔主题迅速报告或者解决留下别人在风中凌乱……11、其他常见的可能还有构建的问题比如代码本身都没错但是合并代码到主干后出问题了常见的就是代码存在冲突时手动解决的时候。所以我之前有一段时间喜欢问开发在合并代码时有没有冲突如果有冲突那是什么地方有冲突就得重点对待了。另外定位到问题后还要考虑下具体情况根据开发人员的心态来决定要不要告诉他具体原因。有的开发不够open会觉得你抢了他的饭碗。而对于open的开发你们会因此配合的更加默契。当然我们在发现问题或者定位到问题原因后一定要进行一步就是再次确认问题。所谓确认问题就是弄清楚问题是否每次都发生还是概率事件或者是工具相关的问题比如换个浏览器是否依然出现如果换个浏览器不出现的话很可能就是前端的兼容性问题。比如翻页控件我们待测的系统有很多页面都有翻页控件那么就要看下是否每个页面都会出现这个问题进而报bug时进行统一说明也更加方便开发人员批量处理防止漏改。总结感谢每一个认真阅读我文章的人作为一位过来人也是希望大家少走一些弯路如果你不想再体验一次学习时找不到资料没人解答问题坚持几天便放弃的感受的话在这里我给大家分享一些自动化测试的学习资源希望能给你前进的路上带来帮助。软件测试面试文档我们学习必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有字节大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。视频文档获取方式这份文档和视频资料对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你以上均可以分享点下方小卡片即可自行领取。