查看原文
其他

企业级持续测试实施指南(下)

Tricentis 软件质量报道 2022-06-03

【译者按:本文出自Tricentis公司的白皮书:企业级持续测试框架(The Continuous Testing Framework, Continuous testing for enterprises),在人员、流程和技术三个方面提出了一个标准化的框架,为企业进行持续测试转型提供指导。】


流程


>>度量 
当你为持续测试框架建立了一致的、准确的度量体系时,你将获得对QA 活动的洞察力,你的团队可以向利益相关者提供有价值的反馈。
 
测试管理

最先进的测试管理必须和CI/CT/CD(持续集成/持续测试/持续交付)流水线集成在一起,配合高度数字化的技术团队,专注于测试和发布企业级软件应用。通过采取现代化的测试管理方法,企业可以更快地交付高质量的软件,以支持新的商业模式和客户体验,企业需要通过持续测试结果的集中管理、协调和利用来实现这一目标。这样做的目的是:

  • 提供反馈。及时向利益相关者提供正确的质量反馈。

  • 评估风险。及时了解候选版本是否具有可接受的风险水平。

  • 理解软件变更带来的影响。确保软件变更不会对用户体验带来负面影响。

  • 提供附加价值。优先考虑需求覆盖率和用户体验等相关指标。

  • 评估用户体验。评估软件变更如何影响端到端业务的用户体验。


度量指标

当你的团队能够正确地解释来自测试工具的数据时,就可以在及时向利益相关者们提供正确的反馈,还可以确保软件更新不会对用户体验产生负面影响。

测试自动化率、测试用例覆盖率和测试通过/失败率等 "经典 "度量指标可以让你快速了解一个给定软件版本的风险水平是否是否在可接受范围内。解释整个流水线中产生的大量数据有助于确保软件变更确实能够满足上线需要。

 
成功案例

分享最佳实践。如果不能在组织里形成一种学习型文化,测试项目很难成功。你需要将一个团队的学习成果和成功经验传递给其他团队。你需要记录测试转型的成果,并分享给企业的其他成员。这可以激励其他项目提升效率,同时也向高层管理人员证明他们的投资没有白费。这样做的目的是

  • 获得认同。将转型的成功因素与具体的业务需求相结合。

  • 记录转型成功之路。让别人了解你是如何实现你的目标的。

  • 公信力。在所在的组织里增强转型成功的信心,通过被认可来推动大家对你工作的需要。

  • 展示团队能力。分享成功案例,证明团队的行动力。

 
>>策略

好的测试策略将帮助企业发展软件测试并提高企业对测试的重视程度,以满足快节奏的敏捷开发和DevOps的需要。


测试数据策略

计划:需要测什么?清楚地了解在整个业务范围内需要测试哪些应用程序和验证哪些数据。

策略:如何准备测试数据?制定清晰的测试数据准备策略。简单来说,需要定义如何获得测试所需的数据。获得测试数据常见的方法包括:复制生产数据、对生产数据进行脱敏处理,以及生成混合数据。

分享:如何分享测试数据并保持其在端到端业务流程中的一致性?确保测试数据可以在分布式团队或环境中被共享、访问和管理。

 
测试执行策略

持续测试的一个重要方面是尽快获得对待发布版本的业务风险的反馈。实际工作中,每次都运行所有的测试不但不切实际而且没有必要。在不同的测试阶段,选取适当的测试范围,快速获得质量反馈是更可取的。

测试执行策略定义哪些测试需要被执行,以及何时,何地,用什么测试数据来执行。该策略应确保所有需要的测试都被执行,保证适当的测试范围和风险覆盖,并确保团队不会因为执行多余的测试而浪费时间和资源。

 
测试环境策略

需要创建一个测试环境策略,以确保测试环境在测试中的可用性和稳定性。对于每个团队来说,在任何情况下都搭建一套完整的测试环境是不现实的,因此服务虚拟化应该成为测试环境策略的一部分。你确保团队在一个简化的、严格受控的环境中进行测试,避免团队之间的测试活动互相干扰。

 
技术

>>非功能性测试
 性能测试

性能测试包括了所有的用于验证应用性能、稳定性、可靠性、容量的测试项,确保系统上线后达到预期的服务水平,并且具有优秀的用户体验。我们的目标是在性能测试过程中尽可能多地采用自动化。在未来,性能测试应该在所有软件开发生命周期的所有阶段都实现测试自动化。

 
>>功能测试
 测试自动化

测试自动化是使用软件对应用程序或系统的功能进行自动化验证的实践,当应用程序的代码中引入任何缺陷时快速通知开发人员。因为自动化测试由机器执行,不需要人工干预,开发团队可以将其无缝集成到测试活动中。测试自动化还大大减少了测试需要的时间。因此,测试自动化成为持续测试的核心,是搭建全自动的CI/CD流水线的关键因素。

 
服务虚拟化

服务虚拟化是一种最佳实践,通过模拟被测系统(SUT)所访问的真实系统组件的行为,使测试活动能够尽早开始,在软件开发生命周期(SDLC)的早期发现和修复缺陷更容易、成本更低。服务虚拟化涉及到创建服务,这些服务可以在不同的团队测试周期的所有阶段共享。服务虚拟化会对测试过程产生广泛的影响。


用户界面

UI测试是最直观的测试方法,测试人员利用自身的创造性、分析性思维来探索用户界面,重点应放在发现影响用户体验的问题。在测试左移中,只要开发团队设计出一个粗略的原型或模拟图,测试人员就可以开始实施UI测试。通过人工智能技术实现UI测试自动化,既像人一样聪明灵活,又像机器一样高效和可扩展

 

API

今天的企业正经历着转变,在平衡敏捷测试和端到端测试需求的同时,持续测试框架在API/消息层、基于微服务的应用等方面实现了测试自动化。测试自动化已成为跟上变革步伐的必要条件。
我们需要简化UI测试到API测试的过渡,允许测试人员从直观的业务UI界面快速创建API测试,然后将它们集成到端到端的测试场景中,这些场景可以跨多种UI:Web UIs、移动应用、企业应用等。


测试数据管理

有效的测试数据管理能力可以提高软件交付速度和质量,为测试用例提供满足特定条件的即时数据。在组织跨应用和跨团队的测试时,需要对测试数据进行一致性管理。深度集成的测试数据管理能够节省测试人员的时间,简化了缓慢和高成本的手动操作过程。通过有效地配置和管理测试数据,可以实现更高的投资回报率。

 

总结


实施持续测试可能是一个复杂的、多层次的过程,但不是一个令人畏惧的过程。通过总结很多大型组织转型过程中获得的经验教训,CTF为企业提供实施持续测试的指导。如果你对需要实现的业务成果有清晰的认识,就可以实施面向持续测试的转型。持续测试有利于在组织内促进协作,缩短交付周期,并提高整体产品质量。

参考文档

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存