如果你问别人QA工程师是做什么的,大概率会得到一个熟悉的答案:“测试软件、找Bug。”
这种看法很普遍。公平地说,找Bug确实是工作的重要组成部分。但如果你在现代软件团队待上几周,很快就会意识到,这仅仅是QA工程师实际工作的一小部分。
过去十年,软件开发发生了翻天覆地的变化。团队不再等上几个月才发布新功能。许多机构每周、每天甚至一天之内就会多次部署更新。应用程序变得越来越复杂,云服务、API、微服务、移动应用以及第三方集成在后台协同运转。
软件在进化,QA的角色也随之一同进化。
如今的QA工程师,在某个功能进入测试阶段之前早就参与其中了。他们帮助评审需求、识别风险、明确业务期望、验证API和数据库、执行自动化测试、排查生产环境的问题,并在整个开发生命周期中与开发人员密切配合。
换句话说,QA不只是软件构建完成后再找问题。它的核心在于,帮助团队从一开始就避免这些问题的发生。
无论你是正在考虑成为QA工程师,还是想从手动测试转向自动化测试,或仅仅出于好奇想了解今天的质量工程面貌,理解这一角色的演变历程,都是至关重要的第一步。
接下来,我们将深入探讨QA工程师真正在做什么、这一职业为何不断发展,以及在如今快速迭代的开发环境中,构建可靠软件所必需的技能都有哪些。
在过去,许多软件团队遵循着一种简单的流程。业务分析师收集需求,开发人员构建应用,开发完成之后,软件才被移交给QA部门进行测试。如果发现缺陷,应用会返还给开发团队,最终再进行发布。
在那种模式下,QA通常被视为投产前的最后一道关卡。测试在大多数重要技术决策已经做出之后才进行。
当软件发布一年只有几次的时候,这种方法是相当有效的。团队有足够的时间完成开发、进行数周的手动测试、修复缺陷,并为既定发布时间做好准备。
而如今的软件开发,面貌已截然不同。
许多机构采用敏捷开发方法、持续集成和持续交付。团队不再每隔几个月交付软件,而是在短开发周期内持续添加功能、修复错误、发布改进内容。
因为开发节奏快得多,质量不能再被当作项目的最后一个环节来对待了。
取而代之的是,QA工程师与开发人员、产品负责人、业务分析师、用户体验设计师以及DevOps工程师并肩工作,从项目伊始就参与其中。
热门跟贴