[心得] 测试开发工程师成长之路

不懂业务基础,做手动测试就是瞎做。自动化测试也是如此。

随着测试在软件开发周期中越来越受到重视,BAT大部分开始取消了测试工程师职位,全部变成了测试开发职位。需要在具有测试能力的基础上兼备开发能力;另一方面自动化测试成为趋势,利用开发的技巧解决测试中的问题以提高测试效率,降低QA与RD的人力比。

潜意识里面测试的技术含量没有开发高。客观地说,在软件编码方面测试开发的技术含量确实不如纯正的开发职位,更不用说测试职位了。如果希望在测试的职业生涯上有所发展的人,先参与几年的研发工作,毕竟那才是软件工程中的主体,然后在开发过程中培养测试意识,这也是程序员的职业素养。现在许多测试理论,无论白盒测试还是黑盒测试,无论单元测试、集成测试还是系统测试,大部分的方法论都是开发人员提出来的。再一次证明,不参与软件主体的研发工作是不可能深入理解测试的。

测试开发工程在公司一般有两种,一种是单纯为测试团队开发测试工具或者系统。另一种就是在测试过程中发挥主观能动,利用自动化把重复劳动降至最低,比如开发适用于特定场景的测试工具、测试脚本和测试用例。

测试可以涵盖的方面很多,但人的精力毕竟有限,测试开发工程师也必须拥有自己的核心竞争力,选定一个方向是个不错的做法,致力成为某方面的专家,比如单元测试(不要认为是开发人员做的,很多开发人员没有单测意识和技巧)、性能测试、安全测试。

测试开发工程师需要培养自己的大局观,这个是在职业过程中有意培养的,公司现阶段的任务是什么?侧重点是什么?在大公司需要顺势而为,QA的本职工作是保证质量,需要借助与流程、工具和其他外部资源,所以在工作的时候尽量与大方向契合。比如公司去年是QA内部水平提高的一年,需要QA具备单元测试、Code Review方面的能力,今年是保证质量的前提下,提高软件发布周期,主推持续集成。

2V(Validation和Verification)是QA的基本职责,即保证两点:Validation,软件按照既定的需求开发,没有偏离产品方向;Verification,软件在满足需求的基础上保证其正确性,从功能、性能、安全等各个方面验证。

软件背后是人,是PM制定的需求,是RD进行开发的, 那测试背后实际上测的是人而不是软件。人总是可能存在思维漏洞的,人总是可能犯错误的,所以永远会有bug,但有些人心细,有些人负责,自己开发完后会自己进行单测、功能测试,以致后续能发现他的bug已经很少了。

无论在大公司还是小公司,大家都有压力,都要发展,心态就很重要了,以创业者而不是打工者的心态来工作看待很多问题就截然不同了。

自动化测试的技能塔:
核心驱动是创新意识
平台架构能力是调试能力,框架设计能力和设计模式
再下一层是代码,数据结构和算法基础
再下一层是测试能力,设计,执行,流程和业务
最底下一层是细心,责任心,沟通和学习能力

学过的东西或解决过的问题,要善于经常性地把它总结和记录下来,否则时间久了就忘了。

高质量的自动化测试脚本所必备的能力。
良好的代码功底、数据结构和算法,可以开发出高质量的自动化脚本,这会极大地减少后期自动化脚本的维护成本。

roadmap:
应届工作3年:打测试基础,学脚本编程
换1份工作坚持2年:中级升级到高级的关键时期
再换1份工作坚持3年:解决更难问题
再换1份工作坚持3年:深入钻研技术

也就是10年磨一剑,养成一个牛X的测试开发工程师。

展开阅读全文

没有更多推荐了,返回首页