软件测试工程师应该怎样提高自己?
1、熟悉对应功能的需求,因为经常有些问题自己也不确认是不是问题。熟悉了需求,了解了为什么需要这个功能,给客户带来的价值是什么。
2、看研发的设计文档,学习里面的业务逻辑,这样发现一个bug后就能够大概判断是怎样产生的,然后也能够更快的复现以及必现这个bug。
这个阶段经历了1年多的时间,而且也经历了很多痛苦的过程,比如:因为需要学习和自己尝试去排查问题,导致很多非必现的bug最后重现不出来了,还因此被老大说了几次;另外就是因为文档看不懂去厚着脸皮找开发被鄙视和拒绝了很多次(作为一个有自尊的人心里还是很难受的);还有就是加班比以前更多了。
不过,付出终有回报。一年后,基本上80%的bug开发都不再找自己了,更重要的是得到了开发的认可,这个开发的认可应该是一年来得到的最大收获吧。因为得到开发的认可后,感觉后面整个测试工作都非常轻松了,开发也愿意配合。人总是贪婪的,在尝到甜头后,总是想得到更多,小b也不例外;于是,小b想是不是可以做的更多一点呢?要是能自己去排查和定位问题原因的话,应该更爽吧!而且前面学习了一些业务知识后,对于产品也有了一定的理解。为了达成这个目标,小B又做了如下事情:
1、自己发现的每个问题都尝试去定位,并且对自己的定位过程全部记录下来。定位不下去了再去找对应的开发(已经有了上面的一些排查和重现问题的基础),开发也很乐意(因为节省了开发定位问题的时间)。一边看着开发定位,一边跟开发去请教(虚心的请教大部分开发也是很乐意赐教的 )。然后将开发的定位过程同时记录下来,等开发确认原因后。再跑过去跟开发一起回顾下整个定位过程,看看自己因为缺失什么技能而没有定位出来。
2、缺失的技能就主动去学习,其实无非就是对业务更加熟悉,然后掌握对应开发的一些调试方法。同时也跟着开发一起去看代码(庆幸的是测试能够去看开发的代码,以及跟开发的关系搞好了)。
3、下次碰到类似的问题就将以前总结的一些方法用上;
4、定期的梳理和总结自己的定位问题方法,形成自己的一套完善的定位问题过程,并且增加熟练度。
这个阶段又经历了一年多,过程同样的痛苦的,很多次想要放弃,特别是需要自己去硬着头皮看代码还看不懂的时候。而且时间花费的比以前更多了。坚持下来后,结果自然还是不错了。30%的bug自己能直接告诉开发大概是哪块出问题了,比如:某个地方的返回没有判断,内存没有释放等等一些基本的问题。当然,万事开头难,经过一年多后自己至少养成了自己去定位问题的习惯,而且在不断的进步中(这个算是经历的第三个阶段吧)。
能自己定位一些问题,这些已经开始让团队的其他人员开始羡慕了,内心自然也开始膨胀,人性的贪婪也再次在这里体现出来,小B居然开始想去自己修复bug。这是不是越界了?不过既然是他自己的选择,我们暂且不去关注有没有必要,一起看看小B接下来又干了什么事情吧!
1、深入学习开发的语言,并且用该语言写一些小的测试工具来提高测试效率,通过具体的任务来学习编码知识。
2、学习整个设计架构,并且尝试用自己的理解对整个架构进行分析。
3、去分析和审核开发对应修改的代码,并且试图找出开发修改不合理的地方。
4、对于自己定位出来的bug,自己去主动给一些修复的建议,并且最后看看开发修改bug的思路跟自己的差别是什么?
5、自己在另外的地方去写fix的代码,然后跟开发进行对比,不断的找差距。
这个过程经历了差不多两年的时间,过程的艰辛估计只有小B自己知道,感兴趣的同学可以自己去体验下。不过总算是小有所成,小B自己也亲自fix了5个bug(直接将自己修改后的代码发给开发),其中只有1个bug是修改的有问题的(我们将这个阶段称为第四个阶段)。