新闻中心

2020-21年软件测试中的重要趋势及应对措施

时间: 2023-08-25 18:17:35 作者: 新闻中心

  凯捷(Capgemini)与软件公司Micro Focus在2020年11月份联合发布的 World Quality Report 2020-21 (全球质量报告)。来自32个国家、10个行业的1750名QA/测试经理、首席信息官和其它IT高管参与了这次关于测试发展的新趋势的调查。

  《2020-21年全球质量报告》中总结出目前测试领域的6个主要趋势,包括:

  总的来说,今年在测试中采用敏捷和DevOps的趋势相比去年没有大的变化,只比去年上升了1个百分点。这表明企业在逐步的将敏捷和DevOps方法集成到自身的测试实践,而并非以重大变革的方式。其中,52%的收房的人说他们总是尽可能早地准备和执行测试(测试左移)”,51%的收房的人说他们总是最大限度地实现测试自动化”。

  50%的受访者认为,在将测试应用于敏捷开发时,最常见的挑战是为自动化测试选择适当的工具。42%的收房的人说敏捷团队缺乏专业的测试知识和技能。

  在被问到哪一些原因是决定敏捷和DevOps转型成功的基本因素时,65%的受访者认为相应的技术栈是最基本、最重要的决定因素,55%的受访者认为管理层的支持是最基本的决定因素,如下图所示。

  随着软件开发相关的风险和复杂性明显地增加,为如何保证产品的高质量带来了更大的压力。与此同时,如何更快、更高效的完成测试比以往更重要。因此,QA团队需要采用合适的工具集和技术、专业技术人员和适当的流程来获得正确的结果。目前的趋势是,既需要具备研发人员技能的测试工程师,又需要他们保持质量思维和以业务和用户为中心,这显然对测试人员提出了更高的要求。很多企业也在尝试不同的QA组织架构、不同的QA工作模式,以及针对QA人员的技能培训。

  敏捷和DevOps强调团队协作,因此 质量不应该只是QA/测试人员的责任,而应该是整个团队共同的责任 。

  质量不只是QA团队的责任,也不只是IT部门的责任, 整个组织都有必要了解它的重要性 ,从而帮助IT部门做正确的事情。

  IT部门(包括QA/测试人员)需要更加贴近业务 ,掌握业务相关的技能,理解企业的业务目标。

  更多的和客户沟通、 倾听客户对于产品质量的反馈 ,以此来降低业务风险、改善用户体验。

  和去年一样,人类对于AI和机器学习给软件测试带来的好处仍然非常期待。然而,尽管AI和机器学习在软件测试中被应用的比例在增加,但并没有取得明显进展。部分原因是因为新冠疫情的到来影响了在这方面的投入。然而人们的热情并没有减退,88%的受访者表示AI会是软件测试最大的增长领域,他们相信AI技术能够帮助降低测试成本,减少对手工测试的依赖,缩短产品上市时间。

  去年以来,我们看到一些公司在无监督学习、自然语言处理(NLP)和计算机视觉技术的量化宽松应用方面进行了尝试,出现了一些新的应用实例,例如,对生产环境中的事件和应用日志进行分析不仅有助于进行深度智能的假设分析,还有助于预测软件的质量,并在开发和测试活动中进行相应的规划,通过智能的方式将产品的实际使用模式计划到测试中。再例如,使用AI生成和管理测试数据。同样的方法也成功地应用于合成数据的创建,例如遵守GDPR规则。

  对于人工智能如何影响产品质量和测试策略,受访者普遍表现乐观。在调查中,75%的受访者表示,他们目前的测试策略只需要小的改变,这可能表明他们中的一些人还没有意识到人工智能的真正潜力。

  除了AI在软件测试中的应用,我们也面临如何测试AI系统。目前对AI系统进行测试的成熟度比较低。企业已经意识到需要新的技能对AI系统进行测试,并且已经开始尝试。例如,一些医疗设备企业开发了AI算法的验证流程;汽车行业在辅助驾驶系统(ADAS)中对AI算法进行虚拟验证。68%的受访者认为测试AI系统需要新的测试策略。

  在被问到AI和机器学习会如何改变对测试的技能要求时,34%的受访者认为软件开发工程师的测试技能是欠缺的,另外34%的受访者认为需要了解人工智能对业务流程的影响。

  AI是否是选择QA解决方案时的一个关键指标?对于这一个问题,86%的受访者给出了肯定的回答。

  持续学习,不断在测试技能方面寻求突破,在测试领域中每年都会有一些新的技能需要学习。对于AI来说,不仅是指AI技术本身,还包括在软件开发生命周期中如何应用AI技术。

  鼓励团队持续采用包含AI功能的工具集。投资云解决方案,为团队快速失败和学习提供所需的资源。构建通用工具集和数据库,这样开发基于AI的测试策略会更容易。

  测试AI系统是一项挑战,需要制定相应的测试策略。可以从学习现有的优秀实践中入手,例如汽车行业的实践。

  持续学习,不断在测试技能方面寻求突破,在测试领域中每年都会有一些新的技能需要学习。对于AI来说,不仅是指AI技术本身,还包括在软件开发生命周期中如何应用AI技术。

  鼓励团队持续采用包含AI功能的工具集。投资云解决方案,为团队快速失败和学习提供所需的资源。构建通用工具集和数据库,这样开发基于AI的测试策略会更容易。

  测试AI系统是一项挑战,需要制定相应的测试策略。可以从学习现有的优秀实践中入手,例如汽车行业的实践。

  在测试数据和测试环境方面我们依旧面临很多挑战。虽然这方面有一些积极的趋势出现,比如利用云计算和一些测试数据管理(TDM)、测试环境管理(TEM)工具,但就如何有效地利用云和TDM工具,仍然不够成熟。测试环境和数据的整体治理是比技术本身更大的挑战。测试环境和测试数据的终极目标是在成本、环境的及时可用性和数据之间取得适当的平衡。当团队采用自动化测试优先、持续测试的方式时,这些挑战会进一步加剧。被测试系统如何与其它系统(包括第三方系统)集成来模拟真实场景并执行端到端的测试,持续测试仍然是一项具有挑战性的工作。

  在本次调查中,29%的收房的人说他们仍然采用传统的本地部署的测试环境。但值得注意的是,相比前两年,这一比例在缓慢下降。同时,采用基于云的,按需部署的测试环境的比例在持续上升。采用Docker容器或相似技术的容器化测试环境的比例也在上升。如下图所示。

  在被问到“组织更满意QA团队实现与测试环境相关的哪方面目标?“这一问题时,49%的受访者认为是健壮的测试环境;47%的受访者认为是及时获得正确的测试环境;47%的受访者认为是测试环境的现代化,例如云和容器;33%的受访者认为是团队有充足的设施来使用和管理测试环境;29%的受访者认为是可用的测试环境的良好可见性。这表明大家更偏重于选择技术方面的因素而非管理方面。

  在测试数据管理方面的调查结果有些令人吃惊,多达61%的收房的人说,他们的团队能够管理测试数据集的规模和复杂性。这也许是因为,一些受访者仍然将测试数据等同于复制和过滤生产数据。但随着持续测试的发展和对软件应用性能和安全性的更高要求,这可能还不够。测试的复杂性在不断增加,测试数据管理方面的解决方案可以部分的解决这方面的问题,客户购买TDM工具用来过滤生产数据,但是过滤后的生产数据并不能为测试、开发人员提供足够的测试数据。

  敏捷测试与测试数据的部署。在被问到”组织是如何为多次测试迭代提供和生成测试数据的?他们在多大程度上使用了每种方法?”,90%的受访者选择了“我们为测试维护专门创建的测试数据集”;87%的受访者选择了“我们使用清洗的生产数据副本”;82%的受访者选择了“我们运行每次测试时都使用自动数据生成工具”,结果如下图所示。

  另外, 64%的收房的人说他们他们使用专门的测试数据支持团队提供测试数据服务,这是符合预期的:随着组织向敏捷转型,TEM和TDM确实更可能成为一种共享服务,为多个不同的敏捷团队提供服务。

  总之,根据调查的最终结果和平时积累的经验,测试数据和环境管理仍然是比较复杂的领域,大家的测试环境处于不同的阶段和状态,很多QA团队认为二者是目前测试中比较突出的问题。一些客户在采用测试数据管理和测试环境监控的解决方案,但这些方案并没有明显提高测试数据或环境的质量。

  建立一个共享的测试数据和环境管理团队来满足组织内部的需求 。这个团队制定管理规则和流程、TEM托管策略和工具使用策略。根据特定的组织动态,该团队可以为所有TEM和TDM需求提供服务,也可以去中心化。但是,如果成熟度比较低,我们提议开始采用集中管理的方式。

  从工具投资中获得尽可能多的价值 。集中精力计划和实现这些工具提供的各种功能,培训小组成员,并定期度量和报告成果。

  实行强有力的治理。 对测试数据和环境的生命周期采用成熟的管理方式。QA团队和集中的测试数据和环境管理团队协同工作,预测需求并实现可用资源的可见性。

上一篇:Abi月聚| 软件主动化测验之接口测验

下一篇:人工智能对于汽车有什么影响