在讲述软件测试的多种可能性之前,先来了解现在所知的开发模式中,软件测试行业还会继续存在吗?很多做测试的朋友问过这样一个问题:“现在敏捷开发模式中,自动化测试那么流行,而且连开发人员都开始做测试了,是不是以后就没有测试人员了?”
其实测试工作并不会消失,而且敏捷开发模式带给我们新的机遇和挑战,那对于测试人员来说,职业发展的方向又有哪些呢?
测试人员的职业选择
首先我们需要明确一个想法,如果想通过软件测试作为跳板,去做开发类或者管理类工作,不在我们的探讨范围内。
很多测试人员在选择软件测试作为职业的时候,其实更优先选择的是软件开发的职位,可能由于种种原因而与开发职位失之交臂,只好选择了软件测试作为自己的职业。
一旦有了合适的机会,他们会选择成为开发人员。另一类测试人员对于软件测试其实没有热情,有且仅仅把软件测试作为养家糊口的工作,希望通过工作年限的增长增加自己的薪水,更多希望工作时间短,不用加班,这样可以保证更好的家庭生活。
还有一类测试人员,希望通过短期的软件测试工作中突出表现,得到管理者的赏识,从而进入管理层。
测试人员的技能发展
其次我们现在所知道的最近代也是最流行,甚至可以说最先进的软件开发模式是敏捷开发模式,所以我们对于测试人员的职业技能发展在基于敏捷开发模式下来进行分析,如果有更新的开发模式出现,这些分析和定义也许会失效。
测试职业发展方向
在知悉这两点之后,那我们认为对于测试人员来说,在保证测试人员的独特性,也就是做好测试用例设计的基础上,职业发展大致可以分为以下几类方向:
1)偏向于需求方面的测试人员。
在敏捷开发模式中,测试前移,测试人员会更多的接触需求分析,从需求分析阶段尽可能地发现和预防问题。
在这一方面现在已经有行为驱动开发和实例化需求等方法,协助测试人员深入需求分析并扩大自己的影响力,与此同时测试人员也需要更深入了解产品所在的行业以及业务知识,成为业务专家,才能使得测试分析更有洞见。
2)偏向于开发辅助的测试人员。
在敏捷开发模式中,开发人员不仅需要编写单元测试的代码,有可能还需要编写自动化测试代码,所以为开发人员提供好的工具,使他们能更快速、更准确、更全面地添加和执行测试也是测试人员可以发展的方向之一。
3)偏向于自动化测试的测试人员。
正如上一条所说,开发人员有可能编写自动化测试,同时测试人员也是可以自己进行编写的。
而且对于自动化测试,测试人员不仅需要分析项目的架构和技术栈,选择最适合项目的自动化测试框架和编程语言,还需要从头开始搭建自动化测试框架,并完善相关的自动化测试配套内容,诸如测试数据管理、测试并发执行、测试方法封装、测试脚本的设计等内容。
4)偏向于运维的测试人员。
测试不仅需要前移到需求分析阶段,还需要覆盖产品交付和线上监控及分析,以便快速发现问题和指导下一阶段的开发。这就需要我们要了解更多和环境以及监控相关的技术以及工具,例如亚马逊AWS,New Relic,Splunk和PagerDuty等。
我们不仅需要熟练使用这些技术和工具,更重要的是分析从这些技术和工具得到的数据,形成有意义和目的的协助开发团队提高的行动计划。
5)偏向于专项测试能力的测试人员。
测试人员不仅需要在知识的广度得到发展,还需要深入特定的技术,称为某项技术的测试专家,例如前端测试、数据库测试、性能测试、安全性测试和可用性测试等等。
这样测试人员就不局限于某个特定的项目,而是变成了可以跨越项目的具备特定测试技术的技术专家。
6)偏向于测试咨询的测试人员。
测试人员通过在敏捷开发模式中测试深入开发的整个流程和细节,在具备了丰富的项目经验和技术能力后,可以输出对于软件测试甚至整个开发过程的总结及认识,帮助更多的团队解决当前的问题,提高团队测试技术能力和意识,进一步优化产品的质量。
这也是测试人员实现更大的自我价值的一种途径。
7)偏向于测试能力建设的测试人员。
在上一条发展路径的基础上,测试人员还可以进一步升华成为使开发团队具备或者提高测试能力,进行测试转型,甚至团队转型的关键性指导人物。而且通常这种测试人员会同时负责多个团队,而且人数一般很少。
总结
也许你认为前几种测试人员相对来说更偏向于技术,容易在团队内实现,而后几种更像是给广大的测试人员画饼,并不一定能实现,只是描述一个可能性而已。其实这几种测试人员的发展之路是根据我们实践的测试人员的规划得出的,也就是说我们是有真实的人物发展作为依据的。
作者:test_二黑