说是测试工程师,其实也不好意思说出来,因为入这个行业仅一年半,但是就我接触到的广度和对测试的深度,我完全有信心说我是一枚测试工程师。
下面这张图大概是一个测试人员要走的路以及规划。
在第一家公司系统的学习了测试的基本知识,包括怎么写case,怎么样的是bug,怎么报bug,怎么找bug,自动化。培训一个月,对测试有了一个心理感知,对于自动化这玩意,我当时就产生了浓厚的兴趣。正式入职后,运气比较好,一直做了差不多大半年自动化。当时用的是ruby+cucumber。后来项目结束以后,调到其他项目组,开始功能测试,那个时候才开始正式进入一个项目写case,报bug,跟开发商讨,发测试报告。这些事其实并不简单。case,是对需求最基本的的解析以及深入的见解,一份好的case既要简单明了,又要表达合理,更要让任何一个项目人员,包括开发,leader,PM看懂。对于你抱的bug,一定要有重现步骤,最重要的是一定要重现率70%以上,bug就是bug,不能因为开发说并不是,你就要否认,因为你站的位置是用户的位置,你思考的角度也是用户的角度。测试报告,包括测试人,测试时间,发版需求,bug列表,是否通过本次测试等;测试报告一定要体现出你对本次测试负责的程度,那些测了,那些没测,没测到的讲明原因,是时间问题,还是代码没改动,还是这部分根本没涉及到。
对于自动化测试,其实就是搭个环境,把一些基本的case用脚本写出来,当项目要上线时,跑一下smoke。自动化对于项目稳定性依赖特别大,付出多,但是回报少。基本很难用自动化测出来bug。但是为什么自动化还这么火热呢?这就主要考验的是一个测试人员是否可以对基本代码掌握以及case的设计。对于比较稳定的项目,不管是application,还是web页面,还是app,只要项目处于稳定阶段,那么自动化就可以起到特别大的作用。当脚本量到了一定程度,基本的smoke,功能测试人员就可以直接略过,然后去关注比较重要而且极端的功能。这就是自动化最主要的作用。要想做自动化,前提是你一定得懂一门语言。我建议先学会java,然后其他语言,比如ruby,python学起来就会比较简单。
以上大概就是所有测试要做的最基本的事,至于自动化测试,性能测试,接口测试,安全测试等我将在后续写出来。