一、软件测试岗位有哪些?
在企业中,软件测试领域的几个典型的职位有:功能测试工程师(也叫手工测试)、自动化测试工程师、性能测试工程师、测试开发等。
1、功能测试(手工测试)工程师
主要工作内容:
· 需求分析
· 编写测试计划和测试方案
· 设计测试用例
· 执行测试用例
· 跟踪BUG
· 编写测试报告
2、自动化测试工程师
主要工作内容:
设计自动化测试的脚本,主要涉及到:
· 单元测试
· 接口测试
· UI测试
3、性能测试工程师
主要工作内容:
针对系统进行性能测试,包括:
· 使用工具
· 编写性能自动化脚本
4、测试开发工程师
主要工作内容:
根据项目的特点来开发一些自动化测试的脚本或工具
二、测试职业的发展方向
通过测试作为跳板,去做开发类和管理类等工作不在本文的探讨范围内。
职业发展大致可分为七类:
1、偏向于需求方面的测试人员
在敏捷开发模式中测试前移,测试人员会更多地接触需求分析,从需求分析阶段尽可能地发现和预防问题。
现在已经有行为驱动开发和实例化需求等方法协助测试人员深入需求分析阶段并扩大自己的影响力。
测试人员也需要更深入了解产品所在的行业以及业务知识,成为业务专家,才能使得测试分析更有洞见。
2、偏向于开发辅助的测试人员
在敏捷开发模式中,开发人员不仅需要编写单元测试的代码,有可能还需要编写自动化测试代码。
所以为开发人员提供好的工具,使他们能更快速、更准确、更全面地添加和执行测试也是测试人员可以发展的方向之一。
3、偏向于自动化测试的测试人员
开发人员有可能编写自动化测试,同时测试人员也是可以自己进行编写的。
对于自动化测试,测试人员不仅需要:
· 分析项目的架构和技术栈
· 选择最适合项目的自动化测试框架和编程语言
· 从头开始搭建自动化测试框架
· 完善相关的自动化测试配套内容,诸如测试数据管理、测试并发执行、测试方法封装、测试脚本的设计等内容。
4、偏向于运维的测试人员
测试不仅需要前移到需求分析阶段,还需要覆盖产品交付和线上监控及分析,以便快速发现问题和指导下一阶段的开发。
这就需要我们要了解更多和环境以及监控相关的技术以及工具:
· 例如亚马逊AWS,New Relic,Splunk和PagerDuty等。
· 我们不仅需要熟练使用这些技术和工具,更重要的是分析从这些技术和工具得到的数据,形成有意义和目的的协助开发团队提高的行动计划。
5、偏向于专项测试能力的测试人员
测试人员不仅需要在知识的广度得到发展,还需要深入特定的技术,称为某项技术的测试专家:
· 例如前端测试、数据库测试、性能测试、安全性测试和可用性测试等等。
· 这样测试人员就不局限于某个特定的项目,而是变成了可以跨越项目的具备特定测试技术的技术专家。
6、偏向于测试咨询的测试人员
测试人员通过在敏捷开发模式中测试深入开发的整个流程和细节,在具备了丰富的项目经验和技术能力后,可以输出对于软件测试甚至整个开发过程的总结及认识,帮助更多的团队解决当前的问题,提高团队测试技术能力和意识,进一步优化产品的质量。这也是测试人员实现更大的自我价值的一种途径。
7、偏向于测试能力建设的测试人员
在上一条发展路径的基础上,测试人员还可以进一步升华成为使开发团队具备或者提高测试能力,进行测试转型,甚至团队转型的关键性指导人物。而且通常这种测试人员会同时负责多个团队,而且人数一般很少。
三、职业规划相关
· 测试的核心
思考什么是测试的核心,是自动化测试、测试用例设计、测试报告、亦或是探索性测试?
· 业务测试VS测试开发
质量部门一般可大致分为两个岗位:业务测试工程师 & 测试开发工程师 。最多再加上小组Leader ,以及质量部门Leader (性能测试工程师 & 安全测试工程师,暂不谈)。
自动化测试实际上基本可以交由各业务测试工程师来搞定,而不是交由不懂业务的自动化测试工程师,来为了自动化而自动化测试。
业务测试一直会被误解成,就是手工测试,感觉好像手工就是不动脑子。业内人士常常自嘲是点点工程师 。长久以来,软件测试工程师群体内部认为测开是代表技术的,而业务不需要技术。
重新来定义一下业务测试的范畴。
一个完整的业务测试应该包括且不止:
· 质量标准的制定
· 质量流程的搭建
· 业务的深度理解
· 引入技术手段改进效能,帮助产品成功。
这些不需要技术吗?
优秀的业务测试工程师应该是什么样的?
· 具备非常熟练的业务知识。这个项目,业务方面,你应该是最了解的(甚至超过产品经理)。
· 有相关技术背景,能自己看得懂服务器上的Error信息,以及部署架构 。
· 数据库知识是必须的。数据是业务系统的重中之重。
· 自动化测试知识、工具也是必须的。通过自动化手段,可以提升业务测试的效率(测试开发团队提供的工具,或者成熟的开源 / 商业工具)。
· 问题推进能力。
· 资源协调能力。
· 超强的学习能力。毕竟每天都有新知识、新业务、新场景。
发展路线:
三大核心发展要素:管理技能、测试技能、业务技能。
· 专注于研究某种测试,比如网页,app,安全,性能,接口,自动化。等到一定阶段,对研究的领域有了自己的见解,就可以称为这一领域的专家。
· 各种领域都有所狩猎,知识面广,某个东西出来立马就会有方案。这种可以去做测试leader。
· 对测试规范有一定的掌握,写文档整理表格能力非凡,管理层非你莫属。
· 对整个项目有宏观和微观的把握,能从各个角度去寻求方案,对各个测试技术也有一定的把握,走向技术主管的路线。
· 如果业务精通,沟通良好也可以转售前支持或者产品。
作者:黑黑白白君