碰着问题时,先别急着去定位缘故原由。

1、保存bug产生的记录:

首先要做的是保存bug产生的记录,担保可以复现。

jsp翻页控件碰到bug的解决方法测试再也不背锅了 Angular

为什么要保存记录?由于如果往后不能复现,那就不能证明bug的存在。

2、打消低级问题:

然后是打消QA的低级问题,常见的低级问题:

【hosts不对】hosts文件紧张是加快某个域名或者网站的解析速率,从而达到快速访问的浸染,也可以屏蔽网站。
hosts非常可能会导致部分网页无法访问,能够加载,但是网页无法正常显示。
【网络不通】:抓包、ping工具的影响导致的,例如fiddler以及操作姿势禁绝确等。

3、打消数据问题(脏数据):

有时候会碰着做事端报500缺点,查看日志后,报空指针,那么很有可能便是数据库中关联表的数据被人为删掉导致的。

脏数据:从目标中取出的数据已经由期、缺点或者没故意义,这种数据就叫做脏数据脏读:读取出来的脏数据就叫脏读

二、定位问题的思路

排查顺序:

用户环境层面 -> 展示层面 -> 逻辑掌握层面 -> 做事层面 -> 数据库层面

1、用户环境层面

紧张是指根本环境是否可以利用。
比如:

网络是否ping通ip和端口配置是否精确jdk版本是否符合标准有可能是由于jdk版本不兼容导致系统运行非常,这种问题根据实际情形来决定要不要兼容。
网络设了代理弱网(如js/css未加载完备、要求超时)浏览器不支持系统版本不支持数据库被删除测试环境脏数据项目配置开关测试环境切了分支等

检讨完成后,可以转到第二步

2、用户展示层

用户在利用过程中,通过查看等操作创造的一些问题:

页面样式(css样式问题)交互过程中js的提示(js交互问题)终端掌握的提示信息文本的展示(html文本问题)

3、逻辑掌握层

用户操作过程中,业务的处理逻辑有没有按照前期的设计履行。
或者中间环节涌现非常,比如缓存做事器(如redis)、中间件(如rabbitMQ)、数据存取中间件等。

4、做事层

做事层每每检讨做事器的配置,如可能是tomcat配置、nginx配置、jdbc配置等的问题。
测试职员最好能够理解下它们的各项配置。

5、数据库层

可能涌现测试环境和正式环境数据库版天职歧,前后端数据格式、长度限定不同。
用户操作完成后,交易流程非常顺畅,这样也不代表全体交易没有问题,还须要测试职员检讨数据库登记的表和字段是否精确

如果创造登记的字段与预期的结果不一致,则可以查看日志,检讨要求报文送的字段是否精确,是否与前台填写的同等有的一个操作会登记多张表,以是要检讨多张表登记或者更新的是否精确,测试职员也须要对被测系统的数据表构造熟习

6、履历法则

有履历的测试职员对付有部分bug已经见过多次,能够很快找到根源,直奔主题,迅速报告或者办理bug

7、其他

常见的bug可能还有构建方面的缘故原由

比如代码本身没错,但是合并代码到主干后涌现了问题比如代码存在冲突时手动办理的情形

三、定位问题的方法

1、常用的定位策略:

常用的定位策略分为三类:原始类(brute force)、回溯类(backtracking)、打消类(causeeliminations)

原始类定位方法

原始类定位方法是最常用也是最低效的方法,只有在万般无奈的情形下才利用它,紧张思想是“通过打算机找错”。

回溯法

回溯法能成功地用于程序的排错

方法是从涌现bug征兆处开始,人工地沿掌握流程往回追踪,直至创造出错的根源,不幸的是程序变大后,可能的回溯路线显著增加,甚至人工进行完备回溯到望而不可及。

打消法

基于归纳和演绎事理,采取“分治”的观点

首先确定所有与bug涌现有关的所有数据,设想一个导致bug的缘故原由,用这些数据证明或回嘴它。
或者一次列出所有可能的缘故原由,通过测试逐一打消。
只要某次测试结果解释某种假设已呈现倪端,则立即精化数据,乘胜追击

2、查看状态码

4xx状态码:一样平常表示是客户端问题(当然也有可能是做事器端配置问题),比如:

发生了401,那么要看下是否带了精确的身份验证信息发生了403则要看下是否有权限访问404则要看下对应的URL是否真实存在

5xx状态码:一样平常表示做事端涌现问题。
比如:

发生了500缺点,则表明是做事器内部缺点,这个时候要合营做事器log进行定位发生了502缺点则可能是做事器挂了导致的问题发生503缺点可能是由于网络过载导致的问题发生504缺点则可能是程序实行韶光过长导致超时

3、查看做事器日志

如果发生5xx问题,或者须要检讨后端接口实行的sql是否精确,我们最常见的排查方法便是去看做事器日志,比如tomcat日志。
开拓职员一样平常会打出关键信息和报错信息,从而找到问题所在,以是,测试职员也要养成看日志的习气。

4、检讨配置

很多时候,bug不是代码的问题,而是tomcat配置、nginx配置、jdbc配置等的问题。
在这个层面上,测试职员最好能够理解下它们的各项配置,在创造问题后可能就会想到这方面的问题。

5、查看需求文档

有时候,前端和做事真个交互都精确,但是从测试的角度看不合理。
这个时候,我们该当翻翻需求文档。
如果和需求文档不符,那么就要看下改什么比较合理,是改前端,还是改做事端,或者两者都要改。

这里有一个原则,便是前端尽可能少地去承担逻辑,只卖力渲染展现。
当然,不要以为需求文档就全部精确,它也可能会有缺点,我们也该当去创造需求文档的bug,然后再去折衷PM,敦促FE或者RD进行修正。

6、向开拓寻求可测性支持

有时候,涉及到开拓过程的一些测试,也须要开拓供应可测性支持。

比如,要查看接口给另一个接口发的要求是否精确,可以让开发打印出完全的要求log,还有一些逻辑开关、修正页面数据条数等,都属于可测性支持的范畴。

四、bug定位常用工具

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

IE插件——httpwatch

第三方工具——fiddler

慢速网仿照工具——firefox throttle

五、如何区分前端/后端bug

为什么要区分前端/后端BUG?

如果是一个多人开拓的系统,不能明确定位到这个bug是谁造成的,随意马虎提交给缺点的开拓职员。
同时提交给前后端开拓职员,每个人都会有依赖生理,bug会像皮球一样被开拓踢来踢去,延误开拓办理bug的韶光。
其余,如果团队规模较大,或者由各地的项目组拼凑而成,势必会增加沟通本钱,这更须要我们在类似禅道或者Jira等项目管理软件中提交bug时,先指明是谁的bug,避免相互踢皮球的征象。
以是测试必须要自己学会区分出是前端还是后端bug,经由bug分类处理,全体团队的效率都会有所提高。

前后端BUG各有什么样的特点?

1、利用抓包工具来进行剖析

一样平常有httpwatch,firebug,fiddler,charles等抓包(数据包)工具。

httpwatch,firebug都是浏览器的插件,须要额外下载fiddler,charles也须要额外下载安装包另行安装还有一个大略实用的抓包工具,那便是浏览器的F12调试器

2、定位前真个bug

前真个bug常日是功能、界面和兼容性等有关,涉及到jstl,jsp,js,css,html方面比较多。
bug紧张有两块:

JS干系页面

3、定位后真个bug

后台涉及到servlet,jms,ejb,还有很多框架struts,hibernate,spring,ibatis等

bug 比较难改,但是好找,紧张便是看掌握台报错,然后定位缺点行号。
如果配置文件没有问题,那么一样平常的报错便是空指针,或者是数组下标越界。
看附近变量,看方法的参数基本上都可以定位缺点。

六、定位完问题后

在创造问题或者定位到问题缘故原由后,一定要进行一步,便是再次确认问题。
所谓确认问题,便是弄清楚问题是否每次都发生,还是概率事宜,或者是工具干系的问题:

比如换个浏览器是否依然涌现?如果换个浏览器不涌现的话,很可能便是前真个兼容性问题。
比如翻页控件,待测的系统有很多页面都有翻页控件,那么就要看下是否每个页面都会涌现这个问题,进而在报bug时进行统一解释,也更加方便开拓职员批量处理,防止漏改。

末了,如果你对软件测试感兴趣,欢迎百度搜索“特斯汀软件测试腾讯教室”或关注"大众年夜众号“特斯汀软件测试”,里面涵盖很多精彩免费视频或干货知识