软件测试工程师如何提高提BUG逼格
某个周四早上,沏好一杯茶,刚要坐到座位上,就听开发说,你们测试怎么提的Bug,给个截图能说明啥?截图上面显示的奔溃,如果是必现还好,如果不是必现,那么我们怎么去定位?至少给个日志吧?当时我的内心活动是,昨晚你们下班走了,留下我们测试,5分钟找出两个奔溃,这两处奔溃是用户必须去操作的两个按钮,你们打完包居然连点都没点就直接发布了,说好的自测,说好的版本质量呢?但是嘴上却说,你们要日志,你们早说呀,那不能我们随便给个日志给你吧?日志是什么类型?总得有约束吧......
我叫皮皮,是一名软件测试工程师,上面的经历是我真实的经历。之所以出现上面的问题可以说是项目中没有明确的规范或者说项目有明确的规范但是没有按规范去执行。我相信这也是部分公司的通病,又或者说是部分开发人员和测试人员的的通病。而通病产生的原因有很多,其中一点可能是彼此的心照不宣。比如开发人员看到测试人员提的奔溃性Bug,内心可能已经绝望,我擦?又没日志?算了,我先自己复现一波吧,然后通过不懈努力,出现两种情况,一是复现出来,并且把Bug单提给测试人员,告知已解决。二是复现不出来,并且把Bug单提给测试人员,告知未复现。测试看到第一种情况后回归一波,果然被解决了,高高兴兴的把Bug单关闭了,测试看到第二种情况后,我擦?这都复现不出来?说完拿过手机,经过不懈努力,最终没有复现出来,然后仰天长叹,这么神奇吗?最后这个Bug单被测试关闭,关闭结果是未能复现或已解决。最终陷入一个死循环,测试依旧按照习惯提Bug,开发依旧按照习惯解Bug,毕竟社会主义的和谐,需要我们每个人的努力~
有的朋友会说,不应该呀,一般像这种错误日志不都会直接传到数据库或者存在本地吗?我们先说第一种情况,如果某个应用需要在弱网下甚至是无网情况下测试,这个时候恰巧程序出现错误,可以确保日志文件插入到数据库吗?弱网有几率,但是无网多半没有几率。我们再说第二种情况,Log日志存在本地,存在本地一般有两种做法,第一种是手机自带存储日志功能,第二种是开发人员在程序中写入可以捕获错误日志的方法,并且保存在本地。第一种情况我们先不讨论,因为这个跟手机系统有关系,没有绝对的方法去控制。我们来讨论第二种,第二种确实是解决问题的方法之一,但是也有一种情况是公司不希望用户看到相关日志信息,这就需要开发人员在测试环境和线上环境做隔离。这种方法较为推荐。但是我们身为测试人员,还应该想到,你把手机送往开发的途中,手机进水了呢?哈哈哈哈.....
那么除了开发人员帮助我们生成日志,我们测试人员应该如何去捕获日志呢?答案有很多种,Android studio、SDK下面的monitor.bat、adb命令等等等等。对于这些,相信绝大多数人都听说过,或者说是非常熟悉。一开始我尝试过用Android studio和SDK下面的monitor.bat去捕获Log日志,但是打开Android studio和monitor.ba时,感到一阵头疼,因为全是英文,后来也就捡起了最常用的adb命令,用了之后再也没想换过。哈哈哈哈....
为什么选择adb命令?我选择的原因相对简单,第一是adb命令较为简洁,第二是adb命令可以帮助测试人员进行monkey压力测试,第三是adb命令可以帮助我们捕获某个activity的Log信息。下面介绍一些adb常用命令。
- 查看设备
adb devices
- 安装、卸载软件
adb uninstall <软件名>
adb uninstall -k <软件名>
3. 进入设备或模拟器的shell环境
adb shell
- 打印log信息
adb logcat
............
关于adb命令太多,百度上都有答案,这里就不一一举例,我们说回今天的主题。如何获取Log日志。这就需要用到上面的第4个命令:adb logcat。如果直接使用adb logcat,基本是打印所有的Log日志,这样不方便我们去排查,所以我们做了一个简单的优化,使用adb.exe logcat | find "xxx" >E:/1.txt。这里面的xxx是你的包名,如果你不知道你的APP包名,推荐使用一个APP叫做包名查看器,这个软件可以查看你手机的所有包名,如果你是测试手机的,可以查看你手机里的比如设置、时钟这些包名。反正用了都说好,哈哈哈哈....后面的E:/1.txt是把获取到的Log信息保存在你的本地。一般执行操作是,电脑先装adb环境,然后手机打开USB调试(注意,我说的都是Android手机~苹果的相关adb命令百度也有),然后打开cmd输入adb.exe logcat | find "xxx" >E:/1.txt,这个时候如果你手机没打开这个程序是不会有日志产生的,当你打开的时候,所有Log只记录当前程序的Log。比如你运行adb.exe logcat | find "xxx" >E:/1.txt这行命令后,打开你要测试应用,出现奔溃,这个时候你可以按ctrl+c终止Log输出。这个时候你这个1.txt就记录了奔溃的信息(注意1.txt这个文件可以不用创建)。那么我们测试人员需要看Log里面的哪些信息呢?毕竟可能是几十K甚至几M的文件。我一般会在Log搜索error、crash、ANR这几种情况(当然还有很多种,也可以百度)如果你的日志里面有这些相关字样,那么恭喜你,你的这个日志可以交给开发了,当然如果你希望能够读懂相关日志信息,可以学习java和Android相关知识。
最后,想起一个事情,有次下班问开发,为什么还不走?开发说,我再写几个Bug....我的心愿是,世界和平。adb下载及安装地址 链接:链接:http://pan.baidu.com/s/1c2CPpQC 密码:7uu4
软件测试工程师如何提高提BUG逼格的更多相关文章
- 2020软件测试工程师面试题汇总(内含答案)-看完BATJ面试官对你竖起大拇指!
测试技术面试题 1.什么是兼容性测试?兼容性测试侧重哪些方面? 参考答案: 兼容测试主要是检查软件在不同的硬件平台.软件平台上是否可以正常的运行,即是通常说的软件的可移植性. 兼容的类型,如果细分的话 ...
- 年薪50W京东软件测试工程师的成长路——我们都曾一样迷茫
这两天和朋友谈到软件测试的发展,其实软件测试已经在不知不觉中发生了非常大的改变,前几年的软件测试行业还是一个风口,随着不断地转行人员以及毕业的大学生疯狂地涌入软件测试行业,目前软件测试行业“缺口”已经 ...
- 软件测试工程师简历要怎么写,才能让HR看到
作为软件测试的从业者,面试或者被面试都是常有的事. 可是不管怎样,和简历有着理不清的关系,面试官要通过简历了解面试者的基本信息.过往经历等. 面试者希望通过简历把自己最好的一面体现给面试官,所以在这场 ...
- 考满分软件测试工程师(实习)面试&软达启航面试
考满分软件测试工程师(实习)面试 从这学期秋季开学的时候开始准备找工作,一边学习看书,一边完善简历海投:九月下旬的时候在年级实习群里看到考满分发的宣传海报马上就加了hr的微信,hr要了我的简历,并给技 ...
- 给国内知名大厂提BUG有感:安全是一种意识
前言 本周一(2019.07.22),给某知名手机“大厂”提了个安全BUG,默默修复了后,周五回复我“已忽略”,此处省略上千字的心理活动..... 做安全的朋友说这都小事,国内氛围本来就不太好,hac ...
- 软件测试工程师入门——Linux【使用说明书】
先来说一下linux是什么? linux 是一个开源.免费的操作系统,其稳定性.安全性.处理多并发已经得到业界的认可,目前很多中性,大型甚至是巨型项目都在使用linux. linux 内核:redha ...
- 51Testing丛书新作《软件测试工程师面试秘籍》
51Testing又有好消息告诉小伙伴了!51Testing软件测试网作品系列重磅推出全新丛书<软件测试工程师面试秘籍> 此次我们邀请到知名互联网企业测试专家李江(G.li),整理并撰写软 ...
- 提bug
大多数公司都是用bugzilla来管理bug,也有的公司使用内部开发的bug管理平台.这里以bugzilla为例,我最不爽的是提bug的时候既要选择severity(严重级别)又要选择priority ...
- 创造101:如果软件测试工程师组团出道,怎样才能站C位?!
作者 C位出道的华华 虽然华华是一个软件测试技术宅,可以连续七七四十九天加班不重样,心里除了上班工作学习写代码就没有别的爱好了,但是各种潮流资讯啊狗血剧啊娱乐综艺啊,从来没有错过. 比如说现在大火的& ...
随机推荐
- Python基础一(格式化输出、流程控制)
(1)格式化输出(%% 第一个% 转译) # 格式化 输入 输出 name = input("Name:") age = input("Age:") job = ...
- MySQL replace 和 replace into 的用法
mysql replace实例说明: UPDATE tb1 SET f1=REPLACE(f1, 'abc', 'def'); REPLACE(str,from_str,to_str) 在字符串 st ...
- js对div取值与赋值
js对div取值与赋值 因为JavaScript运行时,id="test1" 的那个div元素可能还没解析和加载,js加载是有顺序的.只需把 js 整个搬到 后面即可. 还有一个特 ...
- 【消息中间件】kafka
一.kafka整体架构 kafka是一个发布订阅模式的消息队列,生产者和消费者是多对多的关系,将发送者与接收者真正解耦: 生产者将消息发送到broker: 消费者采用拉(pull)模式订阅并消费消息: ...
- 【lua学习笔记】——环境配置
1 开发平台 windows7 64位 2 下载链接 http://www.lua.org/download.html 3 安装完成-环境配置 4 运行 WIN+R 运行 cmd 运行lua,显示配 ...
- 什么是AngularJs?特点是什么?和JQuery什么区别和联系
什么是AngularJs? AngularJs是js框架,集中操作数据,不关注Dom操作,适用于以数据操作为主的的SPA(单页应用). 它的特点 采用MVC模型 双向数据绑定 依赖注入 模块化 与jQ ...
- redis的快速机制与数据类型
想一下 redis 的高并发和快速 单线程模型 - 避免了不必要的上下文切换和竞争条件(锁) Redis客户端对服务端的每次调用都经历了发送命令,执行命令,返回结果三个过程.其中执行命令阶段,由于Re ...
- tdom中selectNodes的使用
tdom中selectNodes的使用 */--> pre.src {background-color: #002b36; color: #839496;} pre.src {backgroun ...
- Socket传输中文乱码
最近在学习Socket的时候,遇到了中文乱码问题,在网上找到了一个说的很透彻的,这里分享一下:http://helloworlda.iteye.com/blog/1270703 现在问题是这样的: 打 ...
- ASE19 团队项目 alpha 阶段 Frontend 组 scrum7 记录
本次会议于11月11日,11:30 在微软北京西二号楼13158,持续15分钟. 与会人员:Jingyi Xie, , Ziwei Wu, Jiaqi Xu, Jingwei Yi, Hanyue T ...