软件测试之BUG分析定位概述(QA如何分析定位BUG)
你是否遇到这样的场景?
QA发现问题后找到DEV说:
不好了,你的程序出问题了!
DEV(追查半小时之后):
唉,是你们测试环境配置的问题
唉,是你们数据不一致
唉,是你们**程序版本不对
唉,是**产品线的问题
当时的日志呢?
当时cpu有异常么?
可以复现么?
这里就应该是这样啊!
你是否期待这样的场景?
QA发现问题后,经分析判断,胸有成竹的找到DEV说:
你的程序出bug了,初步断定是XX类的XX判断分支有问题,应该把某某的判断一改就好了!——==定位精准==
你的程序出bug了,过去某某产品线就曾经出现过类似的问题,都是某某函数用错了,导致前端某某输入的情况下,会导致某某异常,你检查一下吧!——==经验丰富==
你的程序出bug了,应该是某某的问题。页面截屏、日志、系统资源情况、复现步骤我都记录在bug系统了,请尽快修复——==有理有据==
RD说:
赞,和你合作很愉快!
QA做BUG定位的意义是什么?
明确一个“问题”是不是真的是“BUG”
——问题:与预期不符,表象
——BUG:代码错误,实质
避免来回扯皮,提高测试修复效率
——误报降低、原因明确
有助于理解产品内部逻辑流程
——知其然,也知其所以然
提升DEV对QA的信任度
——靠谱!
QA做BUG定位的几个误区:
心态误区:不明觉厉,与己无关
—— BUG定位没那么高大上,三板斧会用就行
手段误区:定位必须看代码
——大部分定位还用不上代码能力
目标误区:所有问题都该被当做BUG定位
——问题不一定是BUG,即便是也得考虑性价比
分工误区:DEV不需要帮助QA的bug定位
——大家目标是一致的,DEV需提供可测性支持
QA定位BUG的大体流程:
BUG定位经验建议:
碰到问题,别忙定位,首先请:
——保存犯罪现场(截图)
——确认能复现
先排除QA低级问题,避免被鄙视:
——被测程序版本/配置项/网络环境,是否ok?
——是不是自己理解错误,本来就该如此
手段多样化,别钻牛角尖,注意性价比:
——多观察日志,多熟悉工具,搞不定就放
建设自己的BUG历史知识库:
——有助于温故而知新
小版本的新BUG,可通过代码diff定位:
——代码DIFF的部分是罪魁祸首,很快
要求DEV提高可测性
——合理的debug日志、中间结果dump
——方便可控的逻辑开关
BUG定位手段:
普通青年
——日志、返回码、异常值
文艺青年
——各种非侵入式观察工具
NB青年
——代码走查、JPDA远程调试
WEB项目BUG定位
明确是浏览器端问题还是服务端问题
—— 用Fiddler/Firebug看HTTP内容是否正确
—— 到这一步,其实就可以算阶段性结论了!
浏览器端问题:
—— 用Firebug做进一步定位
服务端问题:
—— 通过观察日志和接口内容缩小怀疑范围
—— 高级手段:JPDA远程调试
一般系统的定位调试
浏览器端常见问题
是否是浏览器设置问题?
是否是浏览器兼容性问题?
用其他数据是否可以复现?
是否是cookie相关的问题?
是否正确发出了请求?
是否得到了正确的应答?
是否是网络硬件原因?
是否是JS跨域问题?
是否是前后台接口不一致问题?
是否是字符编码带来的问题?
使用Firebug 和 Fiddler
Firebug教程视频:
http://www.56.com/u13/v_NjQzMjcwMzQ.html
Fiddler教程:
http://wenku.baidu.com/view/32b6052f6c85ec3a87c2c5af.html
后台服务定位手段
输入条件构造
网络通信包(驱动、桩、真实的上下游模块)
数据文件
配置文件(包括词表,黑白名单等)
共享内存
输出检查
网络通信包
数据文件
日志(尤其是异常日志)
监控:
系统监控:cpu、句柄、IO、内存
模块级监控:内存结构体信息
调试DEBUG
JPDA打断点
后台服务常见问题
自顶向下排查(从系统入口模块开始)
是内部逻辑问题还是下游数据问题?
是否是某些配置下发生的问题?
日志中是否发现线索?
系统资源情况中是否发现线索?
是否是边界值、并发等问题?下游模块是否交互正常?
是否是多线程下的问题?
是否是大压力下的问题?
是否是不同模块间接口的定义不一致?
是否和服务器软件版本及设置有关?
自底向上排查(从系统末端模块开始)
最底层的模块是否正常收到了请求?
是内部逻辑问题还是上游请求问题
NB青年必备:JPDA
参见:http://blog.csdn.net/kaka1121/article/details/51008195
相关博客:
http://blog.csdn.net/nancybaocool/article/details/38960945
相关文档:
http://wenku.baidu.com/link?url=Fd_n31TBT5JqggblSpohGOP9-BAuq-QkctQu3O6x0jjDfnXwE4lj1usH0CBznax0GqDXYTPfsfembvil5JpExWb08xzJI8yNZoZuKkNSn9C
软件测试之BUG分析定位概述(QA如何分析定位BUG)的更多相关文章
- 软件测试之BUG分析定位概述(QA如何分析定位BUG)【转自 https://blog.csdn.net/kaka1121/article/details/51538979】
你是否遇到这样的场景? QA发现问题后找到DEV说: 不好了,你的程序出问题了! DEV(追查半小时之后): 唉,是你们测试环境配置的问题 唉,是你们数据不一致 唉,是你们**程序版本不对 唉,是** ...
- 《Google软件测试之道》【PDF】下载
<Google软件测试之道>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382198 内容介绍 每天,Google都要测试和发布 ...
- 《Google软件测试之道》摘录
以下是最近看的一本书<Google软件测试之道>里的一些摘录,收获很多. 1.讨论测试开发比并没有什么意义,如果你是一名开发人员,同时也是一名测试人员,如果你的职位头衔上有测试的字样,你的 ...
- 《Google软件测试之道》基础
<Google软件测试之道>,一直听朋友讲起这本书,出于琐事太多,一直没机会拜读,最近部门架构觉得我们IT部门的技术太low,就给我们挑选了一些书籍,让我们多看看... 个人的一种学习习惯 ...
- 《Google软件测试之道》简介
<Google软件测试之道>,一直听朋友讲起这本书,出于琐事太多,一直没机会拜读,最近部门架构觉得我们IT部门的技术太low,就给我们挑选了一些书籍,让我们多看看... 个人的一种学习习惯 ...
- 《Google 软件测试之道》摘录
最近刚刚看完<Google 软件测试之道>,受益颇多,遂记录下: 只有在软件产品变得重要的时候质量才显得重要 第一章:谷歌软件测试介绍 角色介绍 SWE(Software Engineer ...
- google软件测试之道--读后笔记
看完google软件测试之道,以前有认真看过一次,今天又重新看了一遍. 在google,测试人员严格区分为SET和TE.SET前期深度参与项目的开发,推动开发人员的自测,从破坏者的角度寻 ...
- 小课堂week14 Google软件测试之道
读<Google软件测试之道> 在IT领域,Google是一面旗帜,是一家非常善于思考善于尝试的公司.随着面临挑战的不断增大,传统的测试开展方式也越来越力不从心,这本书讲述的就是一次完整的 ...
- google软件测试之道读后感(一)
这几天在抽空读一本新书,久负盛名的<google软件测试之道>.之前在网络上一点一点地看过它的英文版,很受触动,还做了很长的读书笔记,现在看到了中文版,才恍觉之前的好些理解存在不恰当的地方 ...
随机推荐
- [C#]设计模式-抽象工厂-创建型模式
介绍了简单工厂与工厂方法之后,现在我们来看一下工厂三兄弟的最后一个 -- 抽象工厂. 那什么是抽象工厂呢? 抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相 ...
- 接口自动化测试:python+json+requests+数据驱动
接口测试是单元测试的一个子集,但又不等同于单元测试.从测试的角度来看,接口测试的价值在于其测试投入比单元测试少,而且技术难度也比单元测试小.一般来说,接口测试的粒度要比单元测试更粗,它主要是基于子系统 ...
- Ubuntu 16下安装64位谷歌Chrome浏览器
Ubuntu 16下安装64位谷歌Chrome浏览器 1.将下载源加入到系统的源列表 在终端中,输入以下命令: sudo wget https://repo.fdzh.org/chrome/googl ...
- 用js来实现那些数据结构10(集合02-集合的操作)
前一篇文章我们一起实现了自定义的set集合类.那么这一篇我们来给set类增加一些操作方法.那么在开始之前,还是有必要解释一下集合的操作有哪些.便于我们更快速的理解代码. 1.并集:对于给定的两个集合, ...
- Python 内置方法
1. abs() 取绝对值函数 #!/usr/bin/env python # _*_ coding: UTF-8 _*_ # Author:taoke i = 100 print(abs(i)) i ...
- 使用Nwjs开发桌面应用体验
之前一直用.net开发桌面应用,最近由于公司需要转为nodejs,但也是一直用nodejs开发后台应用,网站,接口等.近期,需要开发一个客户端,想着既然nodejs号称全栈,就试一下开发桌面应用到底行 ...
- [ZJOI 2007]Hide 捉迷藏
Description 捉迷藏 Jiajia和Wind是一对恩爱的夫妻,并且他们有很多孩子.某天,Jiajia.Wind和孩子们决定在家里玩捉迷藏游戏.他们的家很大且构造很奇特,由N个屋子和N-1条双 ...
- [Codeforces 864A]Fair Game
Description Petya and Vasya decided to play a game. They have n cards (n is an even number). A singl ...
- ●洛谷P3687 [ZJOI2017]仙人掌
题链: https://www.luogu.org/problemnew/show/P3687题解: 计数DP,树形DP. (首先对于这个图来说,如果初始就不是仙人掌,那么就直接输出0) 然后由于本来 ...
- 【BZOJ1026】【SCOI2009】windy数
Description windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道,在A和B之间,包括A和B,总共有多少个windy数? In ...