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