性能工程是主动、持续和端到端的应用程序性能测试和监控。它通过持续的反馈回路实现团队、工具和流程之间的无缝协作。在这里,负责质量保证的不仅仅是测试人员,还有开发人员、性能工程师、产品负责人和业务分析师。
通过利用从开发人员到性能工程师的合适工具,性能工程实现了性能测试的左移和应用程序性能监控的右移。如果不了解经典的性能测试,就很难理解性能工程与传统性能测试的区别有多大。
传统的性能测试实际上是性能工程的一个子集。它通常需要运行一轮负载测试,作为开发后质量保证(QA)周期的一部分。性能测试包括检查应用程序在预期工作量下的速度、可靠性、可扩展性、稳定性、响应时间和资源使用情况。在了解性能工程与性能测试之间的区别之前,我们首先来看看孤立的性能测试,以及为什么性能测试本身已不再具有可持续性。
现在,让我们深入探讨一下性能工程与性能测试之间的主要区别。
通过以下概念,DevOps 和性能工程可提供一致的生产性能结果,使客户能够更有信心地高效部署应用程序,并推出满足用户期望的高性能、稳定的软件。
端到端优化
性能工程通过持续的测试和监控流程实现端到端的系统优化。这就将性能和负载测试转移到了开发过程中。这与传统的性能测试不同,传统的性能测试是在功能测试稳定和代码发布后进行的。
一旦代码发布,性能工程部门就会利用应用程序性能监控 (APM) 工具跟踪生产中的应用程序。
由绩效利益相关者组成的跨职能团队
性能工程可促进从业务分析师到开发人员等项目利益相关者之间的协作。保持高性能水平以提升客户体验、跟上业务发展的步伐以及管理端到端性能,使得每个人(不仅仅是质量保证/性能工程师)都成为产品性能的管理者。具体方法如下
卓越检测中心
卓越测试中心(CoE)是值得信赖的测试顾问和最佳实践的守护者。卓越测试中心支持不同的业务部门、不同的测试方法(如 DevOps 和敏捷),并可根据需要灵活推荐性能测试和测试工具。为了建立更好的测试模型和提高测试质量,CoE 是整合和重用多个业务部门长期以来生成和收集的测试数据的单一点。
性能工程师
性能工程师对开发过程中的所有代码进行全面审视,以确保性能测试标准全面、涵盖全局,并考虑到开发过程中所有不同的代码片段。性能工程师是性能测试工具的主要用户,在编写脚本、设计、运行和分析测试结果方面拥有丰富的专业知识。性能工程将性能工程师带入开发的早期阶段,他们可以提供性能指标和代码准备发布所需的场景。早期参与意味着性能工程师可以确保解决方案满足开发初期设定的性能预期。他们还能确认架构和设计在整个开发过程中保持一致。
软件开发人员
开发人员是编码方面的专家,但在功能测试和性能测试方面往往比较薄弱。他们在集成开发环境 (IDE) 中工作,倾向于使用自己喜欢的工具,很少愿意学习新工具。性能工程将性能测试转移到软件开发人员的职责范围之外。在性能工程师的帮助下,软件开发人员可以在编写代码的同时进行性能测试。在通过性能测试标准之前,开发人员不会发布他们的代码。
开发测试员
由于软件开发人员和性能工程师之间有明确的区别,因此在传统的性能测试中并不存在开发人员。在性能工程中,开发人员成为连接性能工程和开发人员团队的利益相关者。他们拥有扎实的编码和测试技能,虽然与开发人员和性能工程师的专业知识水平不尽相同,但他们在两者之间架起了一座桥梁。他们可以快速运行测试,在根据需要使用不同工具方面比开发人员具有更大的灵活性。
业务分析师和应用工程师
性能工程将测试工作转移到业务分析师和应用工程师身上。这样就能确保将定义用户体验质量的业务和应用程序性能要求纳入性能标准。这两个角色负责监控生产中的应用程序,以确保始终保持一流的应用程序性能。
性能工程正在改变着软件开发的格局,也改变着所有参与其中的人员的工作内容。由于现在涉及的角色越来越多,因此比以往任何时候都更需要工具和技术来简化流程。性能工程需要从右到左、从左到右的端到端集成和协作,以及实时洞察和分析。传统的性能测试供应商没有足够的能力应对这一混乱的变革浪潮。OpenText 拥有成熟的经验和技术解决方案,可将测试混乱转化为工程秩序。
OpenText 性能工程开放式架构支持在任何开发环境中对任何协议和应用类型进行测试。它允许利益相关者(从开发人员到业务分析师)使用众多供应商和开源工具,以便大规模实现完整的 CI/CD 集成。OpenText 工具集成提供了快速消除开发等待时间和减缓应用交付的测试的能力。OpenText 性能工程解决方案以现有的内部部署或云基础设施为基础,促进资产的重复使用,以利用现有投资。这有助于快速扩展,以满足企业内多个应用程序的性能测试需求。
传统的性能测试直到功能测试完成后才开始,直到性能测试结束后才开始确定缺陷和根本原因。OpenText 性能工程需要对缺陷进行持续的端到端测量和分析,以便在性能测试结束前实时确定根本原因。性能标准包含在 "完成 "的定义和要求中。OpenText 实时分析可帮助性能工程师快速向开发人员提供反馈,以便在开发过程的早期启动故障排除。Capture 并从性能角度分析最终用户的感受,为开发人员提供更具体的反馈,以便优化应用程序,提高性能。
简化负载和性能测试
协作性能和负载测试
通过基于云的性能和负载测试保持敏捷性