企业级持续测试实施指南(下)
流程
最先进的测试管理必须和CI/CT/CD(持续集成/持续测试/持续交付)流水线集成在一起,配合高度数字化的技术团队,专注于测试和发布企业级软件应用。通过采取现代化的测试管理方法,企业可以更快地交付高质量的软件,以支持新的商业模式和客户体验,企业需要通过持续测试结果的集中管理、协调和利用来实现这一目标。这样做的目的是:
提供反馈。及时向利益相关者提供正确的质量反馈。
评估风险。及时了解候选版本是否具有可接受的风险水平。
理解软件变更带来的影响。确保软件变更不会对用户体验带来负面影响。
提供附加价值。优先考虑需求覆盖率和用户体验等相关指标。
评估用户体验。评估软件变更如何影响端到端业务的用户体验。
当你的团队能够正确地解释来自测试工具的数据时,就可以在及时向利益相关者们提供正确的反馈,还可以确保软件更新不会对用户体验产生负面影响。
测试自动化率、测试用例覆盖率和测试通过/失败率等 "经典 "度量指标可以让你快速了解一个给定软件版本的风险水平是否是否在可接受范围内。解释整个流水线中产生的大量数据有助于确保软件变更确实能够满足上线需要。
分享最佳实践。如果不能在组织里形成一种学习型文化,测试项目很难成功。你需要将一个团队的学习成果和成功经验传递给其他团队。你需要记录测试转型的成果,并分享给企业的其他成员。这可以激励其他项目提升效率,同时也向高层管理人员证明他们的投资没有白费。这样做的目的是:
获得认同。将转型的成功因素与具体的业务需求相结合。
记录转型成功之路。让别人了解你是如何实现你的目标的。
公信力。在所在的组织里增强转型成功的信心,通过被认可来推动大家对你工作的需要。
展示团队能力。分享成功案例,证明团队的行动力。
好的测试策略将帮助企业发展软件测试并提高企业对测试的重视程度,以满足快节奏的敏捷开发和DevOps的需要。
计划:需要测什么?清楚地了解在整个业务范围内需要测试哪些应用程序和验证哪些数据。
策略:如何准备测试数据?制定清晰的测试数据准备策略。简单来说,需要定义如何获得测试所需的数据。获得测试数据常见的方法包括:复制生产数据、对生产数据进行脱敏处理,以及生成混合数据。
分享:如何分享测试数据并保持其在端到端业务流程中的一致性?确保测试数据可以在分布式团队或环境中被共享、访问和管理。
持续测试的一个重要方面是尽快获得对待发布版本的业务风险的反馈。实际工作中,每次都运行所有的测试不但不切实际而且没有必要。在不同的测试阶段,选取适当的测试范围,快速获得质量反馈是更可取的。
测试执行策略定义哪些测试需要被执行,以及何时,何地,用什么测试数据来执行。该策略应确保所有需要的测试都被执行,保证适当的测试范围和风险覆盖,并确保团队不会因为执行多余的测试而浪费时间和资源。
需要创建一个测试环境策略,以确保测试环境在测试中的可用性和稳定性。对于每个团队来说,在任何情况下都搭建一套完整的测试环境是不现实的,因此服务虚拟化应该成为测试环境策略的一部分。你确保团队在一个简化的、严格受控的环境中进行测试,避免团队之间的测试活动互相干扰。
性能测试包括了所有的用于验证应用性能、稳定性、可靠性、容量的测试项,确保系统上线后达到预期的服务水平,并且具有优秀的用户体验。我们的目标是在性能测试过程中尽可能多地采用自动化。在未来,性能测试应该在所有软件开发生命周期的所有阶段都实现测试自动化。
测试自动化是使用软件对应用程序或系统的功能进行自动化验证的实践,当应用程序的代码中引入任何缺陷时快速通知开发人员。因为自动化测试由机器执行,不需要人工干预,开发团队可以将其无缝集成到测试活动中。测试自动化还大大减少了测试需要的时间。因此,测试自动化成为持续测试的核心,是搭建全自动的CI/CD流水线的关键因素。
服务虚拟化是一种最佳实践,通过模拟被测系统(SUT)所访问的真实系统组件的行为,使测试活动能够尽早开始,在软件开发生命周期(SDLC)的早期发现和修复缺陷更容易、成本更低。服务虚拟化涉及到创建服务,这些服务可以在不同的团队测试周期的所有阶段共享。服务虚拟化会对测试过程产生广泛的影响。
用户界面
API
测试数据管理
总结
The Continuous Testing Framework: Continuous testing for enterprises (https://www.tricentis.com/wp-content/uploads/2021/09/Tricentis-white-paper_Continuous-testing-framework.pdf) 2020年软件测试趋势报道:彻底实现持续测试(上) 2020年软件测试趋势报道:彻底实现持续测试(中) 2020年软件测试趋势报道:彻底实现持续测试(下)