能想象到一个在社会上被逼疯的社会小青年!出校门前不单单没找到对口的专业,还被迫做了些闲杂的工作!要不是一个偶然的聊天交谈中说到程序员薪资特别的高,挣扎进入IT行业!还不知道现在做的是啥工作!
我是从各种网站自学入职了最简单的测试点点点。那时的测试工程师是真正的朝阳行业,熊猫级别的国宝,一些二线城市都没有软件测试工程师这个岗位,甚至一些二线的开发工程师都不知道软件测试工程师是干什么的?(毫不夸张)!一些有实力的公司为了过CMMI5级软件质量体系认证,高薪聘请测试工程师,只要会一点点测试在一线都能轻松过万,一个公司能请到几个软件测试工程师做软件质量把控不管是在政府的项目投标还是商业谈判软件开发业务都有巨大的优势。当时的测试体系基本还没有太多的流程化和规范化,是真正的点点点君。
但是:随着和开发的交集越多,这让我认识到后台逻辑对于测试工作的帮助,编程语言的能力将决定你测试能力的高度和深度
大概在2012年的时候,那时候还是JAVA为王的时代,随着软件测试和人工智能的发展,Python语言慢慢开始流行,当时的自动化测试才刚开始萌芽,还不成熟,各个公司就争先恐后的部署自动化,我们公司也不例外,我们所在的【P2P创新事业部】也要求我们使用Python和Selenium来尝试开展自动化测试。结果不了了之。主要原因归结于:
1.自动化测试技术不成熟。
2.自动化测试流程不规范。
2.测试人员的技能还达不到标准。
弄得当时很多的互联网公司的测试工程师焦头烂额,随之都暂停自动化业务,自动化就像是一阵风吹过,只留下一地鸡毛。
随着整个互联网在自动化方面的投入,虽然有不少失败的案例,但是确促进着整个自动化产业链的飞速发展!
同时:我也嗅到了自动化测试必然是以后的趋势!所以我就在有计划的往这一块学习。留下过足迹的网站包括:
Python菜鸟教程,CSDN,知乎,B站等等!不懂的就在论坛发帖!各种找资料!
长期的测试工作让我对软件测试有了比较深入的了解。但是如今工作上仍然偶尔会犯错误,离一个优秀的测试工程师还有一段很长的距离,道路且长来日可期,脚步慢一点也无妨。下面总结一下我的工作心得。
1、熟悉业务需求说明书
测试工程师的主要工作体现在测试报告和测试用例上,只有熟悉掌握项目的业务需求,才能设计出全面,覆盖率高,多异常流的测试用例,有一些细节甚至要比产品经理还要考虑细致。只要遇到任何不清楚的、有疑问的地方,就一定要找产品经理确认。
2、熟悉开发详细设计
很多测试工程师可能觉得开发的详细设计不需要了解,只要这个软件的功能做出来了就行了,具体是怎么做的,不需要关心,这种想法是不正确的。了解开发的详细设计后,你才知道这个业务的整个流程是怎么样的,你才知道开发有没有把所有的场景,异常流都考虑进来,是不是真的理解了这个业务需求。
3、把自己当用户来测试
把自己当成用户来测试这个软件,模拟用户可能会操作的所有行为,牢记软件的每个页面,每个功能。遇到问题提bug时,标题和内容要描述清楚,简洁,没有歧义,写上重现的步骤,最好附上问题的截图。每次测试完成后,一定要写测试报告,把自己遇到的问题或者认为不合理的地方归纳总结出来,逻辑要清晰,字数要简洁。
4、不断学习,了解软件的基础知识
如果不了解软件的基础知识,测试永远只会停留在表明上,只会在页面上点点点,不知道后端是如何运转的,前后端是如何联系的,甚至连开发在说什么都听不懂,开发的详细设计看了也只是按着他的来,不会带着质疑的精神来提疑问。最少要知道软件是由什么语言来写的,用的什么框架,用的什么数据库,只有懂得了基本的软件知识,和开发人员沟通起来才不会鸡同鸭讲。
5、保持工作的激情和兴趣
测试工作是一遍又一遍的重复性工作,一个用例可能执行了很多遍。每次项目升级,都要求回归测试一次,把原来上百条的用例再执行一次,需要耗费大量的时间和精力,过程是非常枯燥的,如果能保持激情和兴趣,每一次执行就当做是第一次执行那样有新鲜感,工作起来就会容易得多了。
工作的时候,总结了一下我的一些测试小技巧。
1、按F12,查看调试界面,分析bug归属于前端还是后端
在测试的时候,有时候会遇到一些问题,不知道是前端还是后端的问题,有时候提bug分派错了,会直接影响解决bug的进度,有时候测试一些列表数据时,发现查询列表数据不符合,就不好判断是前端问题还是后端问题,这个时候就可以按F12,进入调试界面,选择Network界面,这里的Headers可以看到前端请求地址和请求参数,Respons可以看到后端返回数据。
这里举一个例子来说明一下,前端展示有一个数据列表有一个查询条件是状态,状态分为:全部、成功、失败。
当查询成功状态时,前端列表展示的数据却是失败的。这个时候可能会想是不是前端展示错误了,首先按F12,查看调试界面,看后端返回的数据是不是成功状态的,结果一看,后端是返回了失败状态的数据,这个时候可能会想是不是后端错误了,别急,最后还要查看Headers里面的请求地址和参数,这个时候,发现请求参数错误,不是状态成功的参数,而是状态失败的参数,这样就可以确定是前端的问题了。
2、查看后端日志
在做测试时,一定要打开后端日志,当在前端页面操作时,突然弹出一个报错提示时,如何分析是前端还是后端错误时,可以从日志里面体现出来,如果后端日志没有报错,则考虑是前端的问题,如果后端有日志报错,则考虑是后端的问题,把日志截图出来贴到bug详情里面,可以方便开发查看问题,操作的时候,查看日志的SQL语句写得是否正常,是否符合操作的要求,都可以自己简单分析一下。
3、查看数据库
在做测试时,一定要检查数据库中,各个模块对应的哪些表,表字段是否符合要求,表设计是否合理,有没有索引,有没有唯一键,表与表之间如何联系,当表数据很多时,有没有做旧数据移表处理,这些都需要检查一遍。
4、照数据
在做测试时,有时候需要查询列表的很多页,需要很多数据,手动去添加的话,如果添加一条要花20秒,添加200条岂不是要1个小时,有时候测试数据导出功能,超过1万条数据时,走异步,添加1万条的话岂不是要几天,非常浪费时间和精力,这个时候,你可以自己去数据库中照数据,直接对需要使用的表格插入数据,写一个for循环就可以轻松搞定了。
5、录制脚本
在做测试时,每次项目升级时,都要来一遍回归测试,可以使用一些工具来辅助,达到事半功倍的效果,我就是使用的badboy,首先录制我要操作的一些动作,比如对列表的一些增加,删除,修改,录制完成后保存为jmeter格式,然后使用jmeter打开这个脚本,运行就可以了,当然了,有时候运行得不太顺利,就需要手动修改一下脚本,也可以添加一个“监听器-查看结果树”来判断运行的结果状况。
真正学习和实践自动化测试有两年了,收获了一些,下面总结一下我的一些自动化测试的想法。
1、自动化测试的优点
①降低回归成本
②提高回归覆盖率
③提高回归效率
④提高回归的稳定性
2、自动化测试的缺点
①自动化更适用于回归和冒烟,难以发现BUG
②不是所有系统、所有功能都适合做自动化测试
③自动化的脚本编写和维护时间长
3、什么项目适合做自动化测试
①项目的需求稳定,变动不大
②项目的周期长,可持续迭代
③项目支持的平台多,如多浏览器兼容性测试、手机多系统版本测试等
④通过手工测试无法实现的测试活动,如压力测试
4、自动化测试分类
①接口自动化测试
②UI页面的自动化测试
最开始,我也是从接口自动化做起,因为当时工作的项目都是以数据查询、统计为主的,UI页面的自动化测试不知如何下手,后来就去网上看一下其他人是如何来做的,发现很多人都是说像这种统计数据的项目,基本上无法做UI自动化测试,后面就想着就算是统计数据的一个列表,也不用每一条,每一个字段都来检查,只要检查某一些字段就可以了,如此一来就简单多了,首先我会去获取页面上的一个列表的第一条的第一个字段,然后再去连接数据库,获取此字段的值,两个值对比一下是一样的,那就没有问题了。
自动化虽然不能完全代替手工,但是却省去了手工的反复,工作中可能一些项目不好操作,只要灵活运用,就没有做不了的自动化。要想做好自动化,必须要拥有编码能力,至少要熟悉自动化工具/框架的代码语言,最好有一定的编码能力,同时代码逻辑要清晰,否则不仅不能保证用例的逻辑性、业务性与健壮性等要素,也不能保证效率。
2014年,经过近两年的技术沉淀以及互联网公司的摸索发展,自动化技术已经日渐成熟,我也是在有计划的跳槽到这方面的岗位,很幸运的,当时入职了一家做Python2.7+Selenium2的UI自动化公司,后来也开始尝试使用过RobotFramework框架。
2016年我开始做自动化全栈工程师,和团队一起从零开始搭建一整套UI自动化+接口自动化一体化框架平台,目前一体化框架平台已经在公司得到应用。
选择适当的时候,尽量发挥好自己的优势。“长江后浪推前浪,前浪死在沙滩上”,我相信肯定还有不少的软件测试工程师站在“十字路口”迷茫,无助,找不到自己的方向,一切的迷茫都是因为想得太多而做得太少,每位测试从业者也都能意识到目前自己的窘境,但是能顺应时代做出改变的人还是田少,多数人都是"泰山崩于前而面不改色",眼睁睁的看着自己被行业所淘汰?下面是我整理编写的自动化测试工程师的发展规划路线:希望对你有帮助!会给你带来方向和灵感!
1、编程语言Java&Python以及前端技术,以Python为例:
4、移动端App自动化
上面就是我为大家整理出来的一份自动化测试工程师发展方向的知识架构体系图,希望大家能在这里收益良多,可以说,这个进阶的过程会让你很难受,但是只要你熬过去了,以后的生活就轻松很多了,所谓万事开头难,只要迈出了第一步,你就成功了一半。
最后: 可以关注公众号:伤心的辣条 ! 进去有许多资料共享!资料都是面试时面试官必问的知识点,也包括了很多测试行业常见知识,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!喜欢我们自动化的小伙伴们,可以加入我们的技术交流扣扣群:914172719(里面有超多学习资料免费分享哟)
转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!
面试经:一线城市搬砖!又面软件测试岗,5000就知足了…
面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…
什么样的人适合从事软件测试工作?
那个准点下班的人,比我先升职了…
测试岗反复跳槽,跳着跳着就跳没了…