请选择行业
请选择职位
请选择省份
请选择城市

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

时间: 2019-06-26 11:18   作者: 软件测试开发技术栈   点击次数: 
 

  新年伊始,这段时间先后完成了19年年度工作规划,作为一名测试开发工程师,同时也算是具备一两年面试经验,在此就目前软件测试岗位的现状结合18年的个人工作感悟,做一些以点及面的总结与思考,与大家分享、交流。

  软件测试行业供需现状

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

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

  基于当前现状,在18年初部门成立了测试学院,旨在提高测试人员基础水平,统一测试的基准认知,目前主要面向校招人员,提供各专项测试技术的岗前培训。

  软件测试行业的发展现状

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

  1.测试人员对需求分析的投入在逐渐增大,同时测试人员逐渐开始注重客户问题的分析,更关注用户体验和用户反馈。

  2.敏捷和类敏捷型项目已经占到了已经极高的百分比,而DevOps模式的使用已经持续数年稳定增长,DevOps正在成为软件交付的最佳模式 , 同时我们发现瀑布或类瀑布开发模式比重逐渐降低。

  3.较去年,自动化测试技术比例基本保持稳定且处在一个高占比的状态。不了解、不使用自动化的越来越少。同时令人兴奋的是,发现越来越多的测试人员将自动化技术应用于日志和数据分析、综合监测。

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

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

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

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

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

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

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

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

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

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

  ·做更多的有价值的测试(更深入的需求分析、测试设计或者对测试右移的投入)

  ·实现真正的缩减成本(减少或抽调人力投入)

  ·拥抱变化,适应开发模式的转变,比如类敏捷、devops模式下的频繁迭代/持续部署。

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

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

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

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

  延伸思考

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

  猜想:基础的功能测试由开发团队负责,测试人员更倾向于自动化测试开发、安全测试、测试建模、精准测试、性能测试、可靠性测试、灰度和监控等专项测试工作中,DevTestOps模式到来。

  2.测试行业选择Python开发语言如何

  猜想:近年人工智能,物联网、区块链、机器学习等热门技术应用都可以看到Python的身影,其影响及应用的广度和深度正在不断的扩散,很有前途。

打印本页 | 加入收藏

上一篇:反思一次羞愧的阿里面试经历    

关闭  
主要城市: 北京 上海 杭州 广州 南京 武汉 长沙
全部城市: