测试工程师成长之路
踏入测试行业也有好几年了,都很少做过大的总结,借着这个机会,“流水线”一样的总结一下这几年的测试历程,学到的东西以及存在的困惑。给即将步入职场的新人小白们一些参考。
用一个简单的图来展示现在所处的几个阶段,往后的历程还要慢慢摸索经历:
第一阶段:奠定理论基础,缺少实践
2011年大三时期选择了测试专业,对测试的大概印象只在于老师课堂上的讲解以及一些小实验的操作,总体来说即理论知识的了解,实践的机会很少,还不具备有QA的思维。
1.当时的选择:
当时为啥会选测试呢,综合考虑,对于一个大学才接触计算机学科,迷迷糊糊的接触各种计算机语言,然后又想以后工作对口的女生来说,毫无疑问的选择了软件测试。
2.当时学到的东西:
就像打怪升级一样,这个阶段就像是新手,在课堂上了解“测试技能”的理论知识,基础知识以及相关的项目流程等。
借用这个博客中的知识总结下:http://blog.csdn.net/txx9010/article/details/8529318
里面罗列了测试的基础概念,术语概念等,从不同的角度进行划分测试,讲解的很详细,对于巩固知识有很大的帮助。
3.当时的困惑:
测试到底是干什么?测试和开发真的是“死敌”?没有真正的实践,不知道真正实践中是什么阶段用什么测试方法(单元测试,功能测试,集成测试,系统测试等),什么模式用什么模型(例如V型,W型等)。
4.当时的参考资料:
书籍:《软件测试》《软件测试的艺术》
图书馆
老师
第二阶段:实践锻炼,巩固基础
2012年8月,进入大四实习阶段,这个时候才算真正的进入了解了测试这个行业。
1.当时的选择:
通过了和公司合作的企业的面试(印象深刻啊,当时是师兄师姐和技术部们的部门老大给我们的面试,是一个团队合作的面试题,按每个人的角色来完成一个项目),涉及的是web测试,现在回想起来很感谢当时的导师,师兄师姐们,开发人员们,对我的指导以及帮助。
就像游戏中的升级换装备的阶段,不断的和团队合作解决每一次产品的提出来的需求,达到release的阶段,不断的强化自己的装备(即测试技能)。
2.当时学到的东西:
(列举了测试方面,项目流程,软技能,还有一些个人觉得可以借鉴的经验,理念等)
1)项目流程中,QA参与的越早,越容易发现问题,当流程很规范,加上对老功能的熟练了解,能在需求阶段就发现各种不合理并提出疑问,建议,保证各种角色对需求的理解是一致的,减少了后期的各种不必要的“坑”(这个流程其实是所有角色都需要注意的,Ps:要给当时的团队点赞,需求人员很专业,有改动,即时更新文档,并且是用批注的方式标注;不管是哪种角色,有任何变动都会邮件通知相关人员)
2)善总结错误,懂发散思维,懂反向思维(例如遗漏的bug)
3)善借鉴同事的经验(例如借鉴bug,处理问题的方式等)
4)善用工具(ps:能提高自己效率的工具都是好工具,例如xmind,snagit等)
下图简单的罗列了测试阶段会使用到的一些工具,当然这些工具在其他地方也是适用的,下面也会有些地方使用到这些工具。
5)“善用”开发人员,提高自己的技能(例如了解技术方案,开发工具的使用诀窍)
举个“栗子”:
修改bug的时候,开发给出了修改的范围,修改的技术方案,那么我们验证的时候就不单单验证这个问题,我们还会把相关的地方,有涉及到的区域也验证一下,说不定就会发现了另一个问题。
6)沉淀文档,分享对业务的整理,有益于后来者(当然相对的,还需要文档存放路径的规范,新来者一目了然)
下面是曾经整理过的归档规范的一种想法,下面也使用到了xmind,snagit工具。
7)邮件的规范用法
8)各种培训(例如:业务专业术语的培训,技能的培训,内部工具的使用等)
3.当时的困惑:
1)测试人员的职业生涯;
2)手工测试和自动化测试的pk;
4.当时的参考:
1)公司文档
2)导师,同事的培训,指导
3)51testing,CSDN,博客园(虫师,贺满等人写的博客都不错,最近在看jmeter的资料,可以学习学习)等博客
第三阶段:接触不同区域,扩大知识面
2015年到现在,从web测试踏入了app测试,涉及过社区,电商,金融等,在每一个不同的地方都能学到很多东西,不管是技能方面还是其他方面,要感谢这个过程中对我们有所帮助的同事和领导们,是他们“逼着”我们进步的(哈哈开玩笑的)。
1.当时的选择:
为什么会进入app测试呢,机缘巧合+时势变迁,越来越多的手机应用出现在我们面前,为了不让自己被“时局”淘汰,就这样冲入了app测试大潮中。
2.学到的东西:
1)app测试和web测试的区别:例如手势操作,横屏操作,网络测试,安装测试,交叉事件测试等
这里列举了一些主要的相同点和区别点
2)抓包工具的使用fidder/charles,现在慢慢养成一个习惯,测试的时候都连着,随时可以了解情况,同时结合后端的日志
再举个“栗子”(图片粗略展示):
测试app前端时,可以使用Charles(Mac使用)查看调用的接口,检查是否后端是否有返回字段,可以简单区分前后端问题,如有返回,则检查是否前端展示正确;如无返回,就可以去了解是否是后端的问题,然后在结合后端日志,就可以帮助开发快速定位。
3)jmeter的学习使用中,接口测试的实践中
这里有大神贺满jmeter博客的传送入口:http://www.cnblogs.com/puresoul/p/5092628.html
4)使用工具时,学会总结或者记录相应的步骤以及遇到的问题,帮助后续其他同学
5)借鉴同事的方法:例如测试方法,编写用例的思维方法,或者是处理问题的方法,综合成适用自己的方法
3.参考:
1)公司测试周报,同事的培训等
2)各种测试公众号:例如软件测试部落,光荣之路灯
3)51testing,博客,知乎app
虽然这个总结有点流水账,其实我只是想说一点,不管是多小的东西,即使还不是很精通,但是愿意学,对比一点都不懂,一点都不愿意尝试来说,这就是一种进步。
这个过程中遇到的困惑,有些已经有答案了,有些也许还是一知半解,有些可能这个阶段还没办法解决,就说这个从读书阶段老师们就提到的问题:测试和开发真的是“死敌”?曾经在下班的路上,不断的思考这个问题,其实,我觉得彼此都是为了产品的质量,都是彼此应该做到的责任,也许有时候是因为一些外在的情况引起的纠纷,(例如开发的绩效评分是bug数,QA是的绩效标准之一也是bug数,只是一个为多,一个为少),也有可能是彼此站的角度不同,理解的方式不同,沟通的方式不同,才会导致所谓的“死敌”称号。但是其实也有很多时候会出现大家为了这个产品质量,互相探讨如何解决,不care bug数量,只care bug质量,开发解释方案,QA提供建议。当然开发需要提高开发质量,QA也需要增强测试能力,让彼此都能理解彼此,达到特殊意义上的“死敌”,而不是真正意义上的死敌。
作为QA,后面的路程还长着,该学的东西还多着,可以在以后的路程中解决自己的困惑。