大概是2014年的时候,我开始接触面试工作,就是从应聘者转为面试官,记得印象深刻的是面试了一位做了8年的测试。对方气场很足,嗯,毕竟那时的我还只是一个3、4年经验的小测试,相反,印象深刻的并不是对方的气场,也不是精湛的测试技术(其实对方面没什么测试技术,就是对自己公司的业务比较熟悉),只是因为对方面做了8年测试,是的,那时我并没有见过什么世面,遇到的都是做了5年以下的测试。可是,转眼间我已经在测试行业8年了。不过,我要说的并不是8年的测试应该怎样。
随着行业的发展,越来越多的测试会走到自己的测试十年。刚好,我最近有幸面试了一些十年以上的测试人员,毕竟,我离10年也不远了,毕竟你们早完也会做到十年,来看看他们的能力和现状对我们来说具有很好的参考价值。
技术能力
十年以上的测试无疑测试技术一定要是全面的,根据项目的现阶段所面临的问题选择最合适的测试技术。
自动化测试:这是测试绕不开的技术,能够深刻的理解自动化测试的价值与优缺点,独立设计自动化测试框架,根据项目的特点适当的选择自动化方案。比如,我在面试其中一位测试人员时,她跟我详细的描述了他们项目的背景,以及工作中面临的问题,找出影响测试效率的原因,并提出改进的方法,这其中用到了少量的自动化测试。这一改进确实有效提高了整体的测试效率。
自动化真正变成了为我所用的工具,而不再是为了自动化而做自动化。
性能测试:性能测试不再是关注JMeter或LoadRunner的使用。做性能测试之前要清楚的知道为什么要做性能测试,以及达到的预期效果,这中间应该是如何设计性能场景,如何做好系统的监控,以及系统的部署和调优。我曾面试过一位性能测试,他为了模拟线上非必现的一个性能bug,深入分析线上重现场景,用Java自己实现了一个性能工具,并不是使用一下多线程那么简单,具体细节我记不太清了,总之,那种情况单定位问题都花了很久。他告诉我最难实现的部分是性能测试数据的收集。收集间隔太大得到的数据不精确,收集间隔太短本身也产生一定的性能,以及收集之后的数据如何统计与展示。
学习性能测试的重点不是学习性能测试工具,站在略高于开发的角度理解整个项目架构,才能真正的测出和解决性能问题。
测试平台:测试平台并不是一定要做的,测试平台是为了更方便的服务于更多的测试和开发人员。比如测试和开发频繁操作而又步骤一样的一些事情,就可以集成到平台中。这样可以让他们一个按钮搞定。
我目前所开发的测试平台,使用最多是开发人员用的接口管理功能,和以及测试人员用的一键创建测试环境(我们的测试环境用docker管理)。
编程能力:这是一个隐含技能,以上所介绍的技术,没有一样是可以离开编程能力,甚至要求不亚于开发水平。所以,不懂开发,或开发能力很弱,这将是最大的硬伤。
管理能力
无一例外,超过十年的测试都担任过管理角色,管理其实也是需要学习的软技能,然而,却常常被我们忽视。
最重要是角色的转变,从专注于自己手上的工作,变成关注于整个团队的工作。对上,如何利用现有资源提升产品质量与测试效率。对下,帮助每个人的成长,发挥每个人的优势。
说来非常简单,做起来你会碰到各种各样人和事,这都需要你有很强的沟通能力和处理问题的能力。
以上,希望对你有帮助。