测试管理 关于软件测试行业现状的一些思考

织梦 · 2019年06月13日 · 最后由 applepen 回复于 2019年06月14日 · 3060 次阅读

软件测试行业供需现状

随着敏捷、DevOps 等模式的引入以及大数据、人工智能、微服务等技术的发展应用。软件交付周期逐渐缩短,技术复杂度不断提升对测试人员提出了越来越高的要求。因此,对校招、社招人员的要求也是在不断提高的。一方面响应基础功能需求的手工测试人员基本饱和,另一方面懂测试的测试开发岗位面试达标者比例过低。

通过校招来看(可能比较片面),本科应届生中通过参加机构培训来提高测试能力的比例逐渐上升,但由于机构培训内容全面性和深度以及技术的时效性与行业实际要求匹配度较低。硕士应届生中女生应聘者较多,对于社招相当一部分人员只是在公司参与测试工具、平台部分代码开发工作,重复开发情况居多,或者仅仅是已有测试平台、框架的使用(外包公司),同时并不太关注当前行业内测试技术的发展,几乎二三十名应聘者中,一般只有一两个达标。

软件测试行业的发展现状

之前写过《2018 年度软件测试行业现状报告》的解读以及对软件测试左移与右移思考的文章,其中总结了以下几点:

  • 测试人员对需求分析的投入在逐渐增大,同时测试人员逐渐开始注重客户问题的分析,更关注用户体验和用户反馈。
  • 敏捷和类敏捷型项目已经占到了已经极高的百分比,而 DevOps 模式的使用已经持续数年稳定增长,DevOps 正在成为软件交付的最佳模式 , 同时我们发现瀑布或类瀑布开发模式比重逐渐降低。
  • 较去年,自动化测试技术比例基本保持稳定且处在一个高占比的状态。不了解、不使用自动化的越来越少。同时令人兴奋的是,发现越来越多的测试人员将自动化技术应用于日志和数据分析、综合监测,同时通过测试技术驱动研发内建质量。

敏捷及 DevOps 模式的应用,对测试人员提出了不同于以往的要求(以前测试基本上都在开发阶段之后和产品上线之前完成),使得测试人员在开发阶段之前加大了对需求分析等测试分析和设计的投入(测试左移)、同时不断提高自动化测试技术的投入和应用、促使测试技术多样化(如,日志和数据分析、综合质量运营监测)发展(测试右移)。

同时,敏捷一直强调 “团队为质量负责”,测试不再是测试人员的专属,这里我们需要重新思考下,质量由整个团队负责,那么测试的价值如何更好的体现——最直接的就是如何提高测试效率。

DevOps 模式更是对测试、尤其是自动化测试、编码开发、设计能力提出了更高的要求。

功能测试人员发展的局限性

从实习算起,大概做了将近两年的功能测试,一方面功能测试的深度广度的潜在延伸性很强,另一方面想突破传统功能测试思维的确很难。在软件测试左移的思想中,测试人员对需求分析的投入在逐渐增大,这里的难点就是如何突破传统认知的测试设计深度、广度问题,而不是进行一些重复、冗余的测试投入。

大多数功能测试人员,半年工作经验可以基本的了解软件测试相关流程,但因专注于功能需求的分析、验证、容易出现忽略功能需求背后的业务需求、用户需求的情况,对产品整体的质量把握不到位,容易出现得此失彼的问题,也能难将功能测试做成一个闭环。

功能测试的深度和广度的延伸性不仅仅体现了功能需求本身,还包括产品架构设计、开发技术栈、服务内容与模式、用户群体等等。

自动化测试方向认知的片面性

谈到自动化测试,很多人认为这是测试人员职业发展的一个方向,但对这个方向的认识并不都是充分的,比如,当面试的时候问到自己设计的自动化测试用例的优缺点,自动化测试框架选择的合理性体现在哪里时,很难有清晰的回答。这些情况在现在的面试过程中很常见,而如果仅仅是这样的话,只是依赖一些现成的工具、框架来进行用例的转化,这还无法说明具备自动化测试能力,只能说明会使用了某些工具。如何围绕产品质量提高测试效率,不仅仅是把手工用例转变为自动化用例这么片面,其中还包含了自动化测试策略、框架的选型、自动化的可维护性、可扩展性、可持续性等等方面的诸多考虑,比如,如何有效解决自动化代码量随着用例数量的增加而增长的问题?一个难以维护、扩展的自动化测试实践,是失败的。

“围绕产品质量,提升测试效率,通过不断的技术创新、应用,不断提高测试整体流程能力(单位时间能够提供多少服务)。” 这是我之前对测试开发岗位的描述,其中自动化测试工程师作为其中一角色同样适用,那么关于效率提升的目的是什么呢?假如一个测试团队的人数相对固定、测试时间充足,他提升效率的目的又是什么呢?从这种角度来思考,个人认为测试效率提升的根本意义在于:

  • 做更多的有价值的测试(更深入的需求分析、测试设计或者对测试右移的投入)
  • 实现真正的缩减成本(减少或抽调人力投入)
  • 拥抱变化,适应开发模式的转变,比如类敏捷、devops 模式下的频繁迭代/持续部署、内建质量。

除此之外,测试人员具备代码能力,的确是目前未来测试行业的基础要求。

资深测试专家、测试架构师稀缺

测试能力分层建设,旨在培养专项的测试技术人才,不断扩展专项测试技术的深度。这是很多公司人员组织架构或人员培养的一种方式,我们部门也在尝试测试能力分层建设。这种建设的背后还有另一个隐藏的原因:一专多能的测试技术人才稀缺或者培养一专多能的测试人才成本非常高。

软件测试分为很多类,比如大家熟知的功能测试、自动化测试、性能测试、可用性测试、除此之外还包括用户行为分析、数据分析、包括逐渐兴起的算法测试等相关工作,都是围绕产品质量提供不同测试技术服务。资深测试专家、测试架构师通过对产品架构、设计的理解,通过测试策略的设计,可以有效的多维度保障产品质量,避免测试遗漏或过度测试。

延伸思考

1.国内软件测试行业未来会产生哪些变化呢。

猜想:通过测试左移过程中的内建质量(策略 + 技术驱动),基础的功能测试成本逐渐降低,并由开发团队负责,测试人员更倾向于自动化测试开发、安全测试、测试建模、精准测试、性能测试、可靠性测试、灰度和监控等专项测试工作中。


共收到 1 条回复 时间 点赞
织梦 关闭了讨论 06月13日 23:38
织梦 重新开启了讨论 06月13日 23:38

赞同。测试行业对技术和大局观的要求越来越高。越来越专业,也越来越难。
测试的壁垒的存在会局限测试从业人员的测试发展(测试和开发,测试和产品,测试和运营)
真正把公司通过 DevOps 进行打通的公司很少,所以造成测试从业者只能窥探到产品的局部从而造成个人发展的局限性。
加之薪资方面,测试人员编码能力和分析问题的能力都达到一定的水平。大多转开发了。高级测试从业人员的流失。
人员不流失的基础上无论是功能测试还是其他方面的测试,如果想要到专家的级别。必须要知道从产品的设计,开发等全流程
的掌握并对各项技术栈掌握的很透彻。这个难度可想而知,真的少。
以上都是个人想法。有分析不正确的妄指正。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册