2019年软件测试行业调查报告(二)
发布时间:2020-02-13

2019年软件测试行业调查报告(一)


今天继续分析2019年国内软件测试行业的调查结果。相比第一部分的内容,第二部分内容与您个人的关系更紧密。


7. 自动化测试算“测试左移”吗?


之前有文章介绍过“测试左移”,而且无论是互联网企业还是传统软件企业、无论是2B还是2C,测试左移的价值都存在,而且比测试右移的价值更大,而测试右移只是侧重为2C SaaS企业带来价值。本次调查(如下图所示)针对“测试左移右移”做了调查,发现题目出的不够专业(题目谁出的,不是很清楚 我只根据收集到的数据进行分析 ),自动化测试/脚本 算“测试左移”吗?还是建议大家去Google一下“测试左移”或“shift-left testing”。其实,需求分析(需求文档维护)、技术文档维护都不能算“测试左移”,而“需求评审、设计评审”算,TDD/ATDD是更为彻底的测试左移。也有这样解释:“Test early and often”、“让开发做更多的测试”。如果结合去年的数据看,业界发生的变化:


◇ 加强了需求分析:比去年增加了3% (去年是59.4%)

◇ 自动化测试反而弱了:比去年减少了7%(去年是71.1%)


在调查结果看(如下图所示),前两项算测试左移,但比例比较低,显示国内开发现状还比较落后。即使许多企业没有做或做不到CD(持续交付),但持续集成(CI)应该去做的,十年前微软等国外公司CI已经做得比较好了,而国内到今天还不到30%。静态代码分析、单元测试(UT)也是研发中最基本的实践,也只有21%的团队做到,软件质量真让人堪忧。2018年初 国内软件测试现状调查分析报告(四)  也显示UT非常不好,要求UT 50%行覆盖率的团队/企业也只有25%~34%。而且互联网企业比传统IT企业差:要求UT 80+%行覆盖率的,互联网企业比传统IT企业合计低约10%,而对UT没有任何要求的,互联网企业要高出10%。如果这样的状态出现在物联网、区块链、工业4.0等领域,潜在的质量隐患非常让人担心。


在测试右移方面,大约四分之一的团队重视日志分析、用户反馈和在线测试,和去年基本持平,甚至低了1~2%,说明过去一年,测试右移也没有明显进展。DevOps如火如荼在推行,不知今年(2020年)测试右移会不会有更明显的进步?

1_副本.jpg

8. 居然超过四分之一的团队没有测试计划


需求分析与测试计划比较接近,这两件事经常是同步去做的,但为什么不是100%?居然有超过26%的测试团队(测试·人员)不做需求分析和测试计划,不可思议!需求评审也是非常重要的,居然30%的团队不做,而更糟糕的是超过60%团队不做项目回顾、复盘。项目回顾或复盘,可以理解为项目总结,是项目管理中重要环节,没有总结就没有提高,没有反思(复盘)也就没有进步,项目回顾或复盘是必不可少的环节。常常感到国内测试水平低,其实更低的是项目管理水平(意识)。这些基本的项目管理没有做好,别谈什么高大上的TDD/ATDD、CI/CD、DevOps等。所以,常说国内的团队没有学会走路(传统开发),就想着跑步(敏捷),那是更危险的。


按理说,测试人员最懂质量管理的,但调查结果显示不做测试评审的也超过30%,那就不用谈“设计评审、风险分析、代码评审的”,结果显示这方面比例更低。本以为每家公司都在做静态代码分析或code review,但现实很可怕,只有20%的团队在做。其实这里也充分显示了国内“测试左移”的现状,设计评审、代码评审明显不足。完全没有流程的公司也占了6.2%,在这些企业的测试人员,之后可以考虑找一家新的公司工作,这更重要,否则不仅没有前途,而且会养成坏习惯。

2_副本.jpg

9. 读书是能力提升的最主要方式


这和之前的认知是吻合的,2020年刚来,咱们需要列出今年要读的书,等我有时间,看看能否给大家更新一个新的书单。


今天在线社区、论坛和博客 在测试学习上也发挥了主要的作用。


当然企业内训、在线直播、线下沙龙等也是大家选择的几种学习方式,它们占比也不分上下。而培训机构课程、技术大会属于成本高的学习,常常不是主流,而是少数人选择的学习方式。


从调查结果看,学校专业课学习比重很低,说明大学在测试领域发挥的作用还很小,有较大的提升空间,希望能引起大学老师的关注,如何发挥大学这个最具实力和活力的平台的作用。

3_副本.jpg

10. 关注软技能,但关注业务很不够,这很危险


大家不仅重视自动化测试(含编程)硬能力,而且也非常关注软技能(沟通能力、学习能力等),说明测试同学开始成熟起来了,不在一味追求技术。


童鞋们也没有忽视测试方法的基础理论,这毕竟是测试岗位的基础。


性能测试的地位还是很高,远远高于安全性测试。这主要是因为性能测试是软件测试团队的工作,安全性测试往往不是测试团队的工作,而是相对独立的安全团队的工作。


业务方向深耕,占的比重低,只有36%,显示IT业其实比较浮躁,这很危险。前不久,去“平安智慧城市”参加活动,几位老总都特别强调研发人员(包括开发、测试人员)的用户思维、业务能力。这非常正确,无论是开发还是测试,对业务的理解是前提、是基本能力,不能忽视。

4_副本.jpg

11. 需求问题是软件研发中最大的问题


需求问题遥遥领先,又一次证明“需求不明确是软件研发中最大的问题”。之前,在其它会议上,讨论过这个问题。随着不少团队对敏捷的误解越来越深,这个问题会更突出。希望未来,在我持续布道的影响下,那种误解会逐渐被消除。


其次是开发代码质量差。我总是说,开发人员被娇生惯养,“不对自己所写的代码负责”成为许多开发人员的通病,而不少公司则对此不作为,有些管理者把线上出的问题一并归为测试人员的责任,其实是缺乏“质量管理”的常识。


虽然相信多数开发人员知道“质量是构建的”,但缺乏很强的意识把自己工作做好。上面单元测试、代码评审那么低的比例就很能说明问题。


测试环境、测试数据 都可以归为测试的基础设施建设,不少企业这方面还比较落后,不过,随着CI/CD/DevOps深入人心,人们会越来越关注容器技术,在基础设施建设上有更多的投入。


和去年相比,需求质量和代码质量更恶化一些(高出去年1~2%),环境问题有所改善,降了3%。

5_副本.jpg

12. 从功能测试、环境、数据等方面着手来提效


测试不仅要测好(测得准、测试充分),而且要测得快,那么如何提高测试效率呢?功能测试/回归测试成为被提升的No.1 环节,是很自然的,毕竟是日常测试中主要工作,而性能测试一直依赖强大的测试工具,而且它的影响面还比较小。


测试环境作为问题在上面排第三,在此改善列表中,却排在第二位。其实,自动化部署环境不应该太难,Cloud技术都很成熟,更何况虚拟机技术、容器技术?虽然某些业务环境配置比较复杂,想一想运维环境,总不能手工操作吧?测试环境比生产环境要容易吧?要善于(从运维那里)借力,以解决这个问题。基础设施即代码,看看Amazon是如何实现的,也许不少公司缺乏这方面人才,不能和Amazon这样的优秀公司相比较。测试环境和CI/CD关系密切,应该统一规划和实施。


和测试环境自动部署类似,测试数据构造、自动生成,的确是一个值得大家努力的方向。自定义脚本是指脚本封装吗?


人、流程、需求、代码质量等不考虑吗?不能只限于测试内部,需要跳出测试看测试,例如从需求入手,那样提升的效果会更明显。调查的题目有些误导,要让我设计这项,估计调查项差别挺大。

6_副本.jpg

13. API自动化测试是当前最主要的提效方式


API自动化测试不仅容易实现,而且产品架构也趋向于基于接口来实现,从早期的CORBA、SOA架构到今天的微服务、Serverless等,API自动化测试自然成为一个重要的关注点。但话说回来,API测试完全可以归为单元测试、让开发自己来做。如果说是业务层API调用链的测试,其实不那么容易。


UI 自动化测试成为第二选项,其实是一个问题。如果按照那个金字塔模型,单元测试倒是需要优先考虑的。CI/CD/环境自动部署也是大家所关注的,结合前面两个调查项,其实容易理解。App专项测试的确容易自动化,甚至可以借助AI技术,彻底实现百分之百自动化测试。

7_副本.jpg

14. AI、大数据、物联网、Cloud是大家看好的一些方向


没错,正如之前一些文章介绍,智能化、云化依旧是测试未来发展的主要方向,再加上5G投入应用,物联网、区块链等也会成为重要的应用领域。从目前看,许多测试人员在这些方向上并没有做好充分的准备,缺少积累,所以加强自我学习才能应对变化、抓住机遇。

8_副本.jpg

15. 测试人员发展空间很窄吗?官本位思想作怪吗?


三分之二的人向技术管理方向发展,可能是上面薪水调查结果所导致的——只有坐上“测试总监”位置,才有可能拿到50+万年薪。但管理的职位其实越来越少,所以这样的局面还是很危险的,虽然有这样的说法——“不想当元帅的士兵不是好士兵”。今天的职业环境,其实不是“华山一条道”,比如向资深测试工程师、测试架构师、测试专家等技术深度方向发展。但从被调查者回答看,不少同学未来想从事测试咨询、培训讲师/教练,其实没那么容易,市场也不需要那么多测试咨询、培训讲师/教练。

9_副本.jpg


文章来源:网络 版权归原作者所有

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8103),我们将立即处理。

相关阅读
/