2019年软件测试行业调查报告(二)
昨天是元旦,我们出了第一份调查报告:
网友感叹,2020年的第一份报告来得这么快
今天继续分析2019年国内软件测试行业的调查结果。相比第一部分的内容,第二部分内容与您个人的关系更紧密。
7. 自动化测试算“测试左移”吗?
之前《2019年软件QA与测试八大关键词》、《真有人把“测试左移”的价值和实践说透了》等文章中介绍过“测试左移”,而且无论是互联网企业还是传统软件企业、无论是2B还是2C,测试左移的价值都存在,而且比测试右移的价值更大,而测试右移只是侧重为2C SaaS企业带来价值。本次调查(如下图所示)针对“测试左移右移”做了调查,发现题目出的不够专业(题目谁出的,不是很清楚
加强了需求分析:比去年增加了3% (去年是59.4%) 自动化测试反而弱了:比去年减少了7%(去年是71.1%)
按理说,测试人员最懂质量管理的,但调查结果显示不做测试评审的也超过30%,那就不用谈“设计评审、风险分析、代码评审的”,结果显示这方面比例更低。本以为每家公司都在做静态代码分析或code review,但现实很可怕,只有20%的团队在做。其实这里也充分显示了国内“测试左移”的现状,设计评审、代码评审明显不足。完全没有流程的公司也占了6.2%,在这些企业的测试人员,春节后可以考虑找一家新的公司工作,这更重要,否则不仅没有前途,而且会养成坏习惯。
这和之前的认知是吻合的,2019年软件QA与测试八大关键词 中第3个关键字就是“书单”,2020年刚来,咱们需要列出今年要读的书,等我有时间,看看能否给大家更新一个新的书单。
今天在线社区、论坛和博客 在测试学习上也发挥了主要的作用,之前本公众号也推荐了几位老师的课程:
大家不仅重视自动化测试(含编程)硬能力,而且也非常关注软技能(沟通能力、学习能力等),说明测试同学开始成熟起来了,不在一味追求技术。虽然没有提到测试思维,但这也同样重要,本公众号发了一系列文章,大家可以去读一读(一共有十篇,这里列出其中的四篇):
童鞋们也没有忽视测试方法的基础理论,这毕竟是测试岗位的基础。
借机插一个广告:测试方法的基础理论学习可以看我的书
性能测试的地位还是很高,远远高于安全性测试。这主要是因为性能测试是软件测试团队的工作,安全性测试往往不是测试团队的工作,而是相对独立的安全团队的工作。
业务方向深耕,占的比重低,只有36%,显示IT业其实比较浮躁,这很危险。前不久,去“平安智慧城市”参加活动,几位老总都特别强调研发人员(包括开发、测试人员)的用户思维、业务能力。这非常正确,无论是开发还是测试,对业务的理解是前提、是基本能力,不能忽视。
需求问题遥遥领先,又一次证明“需求不明确是软件研发中最大的问题”。之前,在其它会议上,讨论过这个问题:会议 | 2019金融业质量创新研讨会。随着不少团队对敏捷的误解越来越深,这个问题会更突出。希望未来,在我持续布道的影响下,那种误解会逐渐被消除
其次是开发代码质量差。我总是说,开发人员被娇生惯养,“不对自己所写的代码负责”成为许多开发人员的通病,而不少公司则对此不作为,有些管理者把线上出的问题一并归为测试人员的责任,其实是缺乏“质量管理”的常识。
虽然相信多数开发人员知道“质量是构建的”,但缺乏很强的意识把自己工作做好。上面单元测试、代码评审那么低的比例就很能说明问题。
测试环境、测试数据 都可以归为测试的基础设施建设,不少企业这方面还比较落后,不过,随着CI/CD/DevOps深入人心,人们会越来越关注容器技术,在基础设施建设上有更多的投入。
和去年相比,需求质量和代码质量更恶化一些(高出去年1~2%),环境问题有所改善,降了3%。
测试不仅要测好(测得准、测试充分),而且要测得快,那么如何提高测试效率呢?功能测试/回归测试成为被提升的No.1 环节,是很自然的,毕竟是日常测试中主要工作,而性能测试一直依赖强大的测试工具,而且它的影响面还比较小。
测试环境作为问题在上面排第三,在此改善列表中,却排在第二位。其实,自动化部署环境不应该太难,Cloud技术都很成熟,更何况虚拟机技术、容器技术?虽然某些业务环境配置比较复杂,想一想运维环境,总不能手工操作吧?测试环境比生产环境要容易吧?要善于(从运维那里)借力,以解决这个问题。基础设施即代码,看看Amazon是如何实现的,也许不少公司缺乏这方面人才,不能和Amazon这样的优秀公司相比较。测试环境和CI/CD关系密切,应该统一规划和实施。
和测试环境自动部署类似,测试数据构造、自动生成,的确是一个值得大家努力的方向。自定义脚本是指脚本封装吗?
人、流程、需求、代码质量等不考虑吗?不能只限于测试内部,需要跳出测试看测试,例如从需求入手,那样提升的效果会更明显。调查的题目有些误导,要让我设计这项,估计调查项差别挺大。
API自动化测试不仅容易实现,而且产品架构也趋向于基于接口来实现,从早期的CORBA、SOA架构到今天的微服务、Serverless等,API自动化测试自然成为一个重要的关注点。但话说回来,API测试完全可以归为单元测试、让开发自己来做。如果说是业务层API调用链的测试,其实不那么容易。
UI 自动化测试成为第二选项,其实是一个问题。如果按照那个金字塔模型,单元测试倒是需要优先考虑的。CI/CD/环境自动部署也是大家所关注的,结合前面两个调查项,其实容易理解。App专项测试的确容易自动化,甚至可以借助AI技术,彻底实现百分之百自动化测试。
没错,正如之前一些文章(如 “六化”——软件测试发展趋势、Gartner 2020年十大技术趋势之一:超级自动化 )介绍,智能化、云化依旧是测试未来发展的主要方向,再加上5G投入应用,物联网、区块链等也会成为重要的应用领域。从目前看,许多测试人员在这些方向上并没有做好充分的准备,缺少积累,所以加强自我学习才能应对变化、抓住机遇。
三分之二的人向技术管理方向发展,可能是上面薪水调查结果所导致的——只有坐上“测试总监”位置,才有可能拿到50+万年薪。但管理的职位其实越来越少,所以这样的局面还是很危险的,虽然有这样的说法——“不想当元帅的士兵不是好士兵”。今天的职业环境,其实不是“华山一条道”,比如向资深测试工程师、测试架构师、测试专家等技术深度方向发展。但从被调查者回答看,不少同学未来想从事测试咨询、培训讲师/教练,其实没那么容易,市场也不需要那么多测试咨询、培训讲师/教练。
本篇文章不短了,不宜展开讨论,考虑将来专门写一篇文章再来讨论“测试职业发展方向”这个主题。
上面的分析一定有不妥之处,敬请大家指正,也欢迎留言参加讨论。
其它参考:
2018年调查结果:https://testerhome.com/topics/18175