测试和安全一直是DevOps实践中及其重要的环节,但是由于在于ROI不能短平快地看到效果,在具体地实施中往往是被绕过或者是列为远期规划的事情。
在上月底,Capgemini发布了2018年的世界质量 告,借着这份 告,我们来看一下测试相关的现状,同时试图讨论一下趋势和最佳实践。
WQR 2018
WQR是测试领域一份较为权威的 告,在2018年也在1700份CIO以及资深技术人员的反馈基础上得到的 告,含括32个国家的多个行业和角度。
1700 份调查
这1700份调查中,中国部分的数据为85份,占到调查数据的5%。
涵括行业
调查涵括金融/健康医疗/公共服务/制造/运输/高科技/通信/能源等十个行业。
发布者
- 安全强化
- 客户体验强化
- 提升软件解决方案质量
- 提升业务需求响应速度
- IT成本优化
- 云端迁移
- 敏捷或者DevOps实践
- 输出强化
- 三方SaaS结合
IT主要趋势
虽然这是一份聚焦于测试的 告,但是从数据的分析上还是能够看到当今IT的主要趋势:
IoT/BlockChain/AI等新技术在不断地被采纳
新的技术不断地涌现,在企业层面上也体现了对这些技术的倾向性,调查对象中的企业中包含IoT相关实践或者计划的企业从83%上升到了97%。
云计算的普及以及安全策略强化的需求
根据WQR的调查反馈中,有76%的应用已经布置在云端,云计算的普及带来了对安全的强烈需求,安全增强成为WQR 告中用户最为关注的领域。
新技术的推广导致在测试领域对相关技能的人员需求不断增加
云计算/区块链/物联 等不断地进行扩展和推广,但由于这些技术仍然在不断的发展和更新中,当前在测试中仍然需要有这些知识领域的相关技能的专家进行支持,这也导致了对拥有这些知识和技能的人员的需求不断增加。
人工智能与测试
根据调研显示,57%的受访者表示他们已经有项目靠考虑或者即将这接下来的12个月中在测试中使用AI的技术。最新的WQR的 告认为,人工智能和测试是能够相互影响和促进的
- 首先:人工智能使得企业从传统的测试方式到自创建/自运行/自适应的测试方式
- 其次:人工智能的发展也需要新的方式去验证和检验
当然使用AI在测试领域仍然是一个比较前沿的问题,但是这将会是近几年企业会考虑的策略性的方向。在此之前,建立比较成熟程度的自动化的测试更显的现实和重要
测试团队去中心化的双刃剑
根据反馈,接近99%的受访者承认他们至少在一部分项目中已经在推进DevOps。高举着“又好又快”的大旗的敏捷和DevOps的实践使得实践者不得不作出一些改变进行适应。而在适应的过程中,很多情况下测试团队被打散到各个项目中以适应“一个团队”的文化和组织结构的需要。测试团队的去中心化给各个项目带来快速适应变化的益处的同时,这把双刃剑引入了新的问题:
- 测试更加依赖于Scrum团队成员的能力
- 测试团队的专业知识以及最佳实践的积累和利用变得更加困难
- 重复制造轮子的情况也不断涌现
所以在这种情况下,很多组织的对应策略是在保持整体测试团队去中心化的同时,保持一个非常精简的中心化团队用于知识和最佳时间等的积累,在测试之外的其他领域也是同样。
自动化
自动化测试一直是测试领域在不断实践的领域,在最近的自动化测试的实践中,也不断进行扩展:
- 自动化的范围:从测试用例的自动化执行扩展是使用建模工具进行用例的自动生成
- 自动化的目标:伴随着DevOps的Quality at Speed的口 ,自动化也将缩短测试时间和更有效地使用测试用例两者均作为聚焦的内容
虽然一直在努力推进,但是自动化测试的整体推挤程度一致很低(占到整体的大致14-18%),而自动化测试也成为目前企业在测试方面的重要瓶颈。根据调查结果,这么低的自动化测试水平也是事出有因:
- 61%的受访者由于在每次发布中应用的变化过大导致在推进自动化测试时非常困难,变化很大意味着整个自动化测试的解决方案应该是健壮的而且是能够进行适应的,在现有的技术下非常困难。
- 48%的受访者受困于如何创建稳定可预期可重用的测试环境和测试数据
- 46%的企业指出缺乏自动化测试经验和技能也是导致难以推进的原因
自动化测试的现状不能令人满意,但是企业还需要做到的更多,必须需要在测试自动化中进行更多一些的端到端的自动化测试,所以,WQR认为未来的测试解决方案应该是前文所提到的能够自适应和调节的方式,毕业于AI这个专业的我对于此项2-3年内AI自动测试能够大行其道的预期抱悲观态度。但是不可否认一旦成真,必定将会是下一个颠覆性的技术。希望技术的推进啪啪的来打我们的脸,那也应该是一种幸福。
测试环境和测试数据
整体来说测试环境和数据的自动化仍然处于起步状态,根据调查,58%的受访者表示仍然在使用手动的方式生成测试数据。测试环境和数据已经成为敏捷开发对测试影响的最重要的挑战之一,这也是自动化测试推进过程中的另一个重要瓶颈。很多企业已经在这个方面做了很多有效的实践,比如通过容器化的方式来解决测试环境的自动生成以及一致性的问题。
成本
测试是软件生命周期中的重要一环,花费在这一环节的费用占整个IT预算的比率,根据WQR的调查,结果如下
2015 | 2016 | 2017 | 2018 |
---|---|---|---|
35% | 31% | 26% | 26% |
数据需要通过两个方面来看,测试的自动化提升了效率节省了成本,但同时为了进行这些自动化,为了使用敏捷开发,在基础架构/工具/组织变更/流程更改等所带来影响导致了一波支出,所以在2015和2016年正是这个投资阶段,然后整体的成本逐步下降而趋于稳定。
同样可以预期的是在未来的2-3年内,随着测试环境的虚拟化/测试数据管理/测试自动化/测试环节数据的智能分析的引入会导致一波新的超过30%的预算投入,然后随着技术的引入产生的效率提升会有另外一段稳定期的出现。
主要发现
终端用户满意度首次成为测试环节的关键因素
终端用户满意度从去年的34%上升到42%,占到相同比重的还有“增强用户体验”,仅仅落后于“安全增强”的47%,首次将终端用户满意度提升到测试环节的关键因素。
自动化工具的使用得到提高
在调查中发现,79%的受访者计划或者正在使用自动化工具用于测试环境的创建,77%的用户考虑或者正在使用自动化工具用于测试数据的创建。
人工智能/机器学习将会测试领域的变革提供颠覆性的驱动力
在未来的2到3年内,人工智能和机器学习等技术将会成为驱动测试领域变革的巅峰性力量。调查显示围绕人工智能和机器学习很多试验性的实践已经暂开,企业IT预算的22%作用用于人工智能相关的项目,而达到57%的受访者表示他们正在使用或者在12个月内有计划使用AI技术用于测试质量保证。
自动化进展缓慢/测试环境与数据的挑战成为测试效率的瓶颈所在
99%的受访者表示他们在项目中实践DevOps,但是由于自动化发展仍然处于初步阶段,加之测试数据和测试环境如何有效合理地重用等问题,是的自动化测试成为主要瓶颈之一。在敏捷开发的项目中,根据受访者的反馈,测试所碰到的最大挑战是:
- 缺乏合适的测试环境和数据:从去年的46%上升到今年的53%
- 测试自动化水平较低: 从去年的41%上升到今年的50%
另外,在问及应用开发的技术挑战,有55%的受访者对“缺乏从构建到部署的端到端的自动化”给出了最高的权重。
43%的受访者认为“测试流程过慢” 是当今应用开发的主要挑战之一。
测试所需技能正在发生变化
测试的方式正在发生变化,一方面是由于新的框架和技术的推广所导致,另一方面敏捷开发的推广也在导致测试团队和实施方式的变化,在这个过程中会有很多新的角色出现,在2017年的WQR 告中提到了测试团队对于那些测试团队中的开发工程师(SDET)成为需求之一,而2018年,则更多地围绕于技术领域,比如具有AI或者IOT相关技能的人员。
根据调查:
- 42%的受访者称他们在测试中缺少相应的知识和技能
- 36%的受访者认为随着AI的到来,他们应该对AI有更多的了解
- 30%的受访者认为他们需要更多功能测试自动化技能
- 29%的受访者认为他们需要更多测试环境/TDD/BDD相关知识和技能
重要建议
测试自动化分阶段推进
测试自动化成为关键瓶颈,推动其发展成为当务之急,但是这个目标不是一蹴而就的,需要循序渐进逐步推进,建议使用如下三阶段方式推进:
- 第一阶段: 测试优化
- 第二阶段: 基本自动化的实现
- 第三阶段: 实现智能的自适应的测试自动化
综合考虑测试环境和测试数据的配置和实现
有53%的受访者承认在敏捷开发过程中他们喷到了测试数据和环境的挑战,测试环境和数据的配置和准备拖慢了整个的进程,使之前的其他努力化为乌有。这是我们需要重点关注的问题,推荐的方式则是使用中心化的解决方案,组织必须从整体生命周期上去考虑自动化,而不是分裂开来的自动化,比如测试环境和测试数据配置一起考虑自动化的实现,而不是分别进行。
而这种中心化的解决方案能使得最佳实践/工具/技术能更好地得到利用,整个基础架构也能得到更好的重用,整体得到更好的效率。同时,测试环境的管理也必须考虑到更加“智能”,比如,能根据特定需求创建/配置/监控/恢复环境等。
测试知识技能重建
随着敏捷/Devops/云计算/物联 /区块链/人工智能等的发展,对测试人员的需要也不仅仅只是要求测试人员能够会一些开发了,基于这些挑战,WQR建议组织应该采取如下四个步骤来推动测试团队的知识与技能的重建。
- 步骤1: 首先需要保证敏捷团队测试成员相关的测试技能以及自动化技能,建议所有测试团队的成员都具有自动化相关的技能。
- 步骤2: SDET必须要具有更高级别的自动化技能,百合测试能力,开发能力等
- 步骤3: 确保足够的小众的测试技能比如:安全/非功能性因素/测试环境/数据管理等相关
- 步骤4: 测试专家具有人工智能相关的技能,比如深度学习概念/算法/决策树/分类器/神经 络/高级统计知识/数据优化等技能。
跟踪支出并不断优化
精确地跟踪/理解/优化测试相关的花费,对于投资回 比进行确认,建议组织对于预算和花费进行细粒度的确认,并形成跟踪机制确认预算花费在哪里并且是如何花掉的,这样的机制能保证在测试所投入的成本得到较好的回 。
人工智能解决方案的测试方法
人工智能正在如火如荼地发展,调查显示企业IT预算的22%作用用于人工智能相关的项目,而达到57%的受访者表示他们正在使用或者在12个月内有计划使用AI技术用于测试质量保证。
但是被问及如何测试这些智能应用时,57%的受访者回应他们正在试验新的方法进行测试,45%的受访者称他们正在调查合适的测试方法。随着人工智能时代的到来,相关的测试方法必须尽早提上日程。
参考文章
https://www.sogeti.com/globalassets/global/wqr-201819/wqr-2018-19_secured.pdf
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!