通过桥接本地性能数据与架构模型实现性能回归的早期检测
Early Detection of Performance Regressions by Bridging Local Performance Data and Architectural Models
AI总结:
本研究提出一种桥接组件级本地性能数据与系统级架构模型的轻量级方法,可在开发阶段早期检测不同强度偏差、各类工作负载下的系统性能回归,补充传统测试资源不足的问题。
摘要:
在软件开发过程中,开发人员通常会对软件进行大量修改,以解决现有问题或实现新功能。然而,某些变更可能会在无意中对整体系统性能产生不利影响。为确保新软件版本的性能不会下降,现有实践依赖系统级性能测试(如负载测试)或组件级性能测试来检测性能回归。但针对整个系统的性能测试通常成本高昂且耗时,给适配现代DevOps实践中常见的快速发布周期带来了挑战。系统级性能测试要等到系统完全构建并部署后才能开展。另一方面,组件级测试聚焦于孤立的组件,忽略了整体系统性能以及系统工作负载的影响。\n 在本文中,我们提出了一种新颖的性能回归早期检测方法,该方法通过桥接组件级测试生成的本地性能数据与系统级架构模型来实现。我们的方法利用本地性能数据识别组件层面的偏差,随后将这些偏差传播到架构模型中。接着我们使用架构模型预测整体系统的性能回归。我们在两个开源基准系统上评估了所提方法,结果表明,该方法能够在不同强度的本地性能偏差下、以及各类系统工作负载下,有效检测端到端的系统性能回归。更重要的是,我们的方法最早可在开发阶段检测到回归,而现有方法需要系统完全构建并部署后才能开展检测。我们的方法是轻量级的,可在测试资源稀缺时对传统系统性能测试形成补充。
英文摘要:
During software development, developers often make numerous modifications to the software to address existing issues or implement new features. However, certain changes may inadvertently have a detrimental impact on the overall system performance. To ensure that the performance of new software releases does not degrade, existing practices rely on system-level performance testing, such as load testing, or component-level performance testing to detect performance regressions. However, performance testing for the entire system is often expensive and time-consuming, posing challenges to adapting to the rapid release cycles common in modern DevOps practices. System-level performance testing cannot be conducted until the system is fully built and deployed. On the other hand, component-level testing focuses on isolated components, neglecting overall system performance and the impact of system workloads. In this paper, we propose a novel approach to early detection of performance regressions by bridging the local performance data generated by component-level testing and the system-level architectural models. Our approach uses local performance data to identify deviations at the component level, and then propagate these deviations to the architectural model. We then use the architectural model to predict regressions in the performance of the overall system. We evaluate our approach on two open-source benchmark systems and show that it can effectively detect end-to-end system performance regressions from local performance deviations with different intensities and under various system workloads. More importantly, our approach can detect regressions as early as in the development phase, in contrast to existing approaches that require the system to be fully built and deployed. Our approach is lightweight and can complement traditional system performance testing when testing resources are scarce.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。