论文标题

软件性能测试中的更改点检测

Change Point Detection in Software Performance Testing

论文作者

Daly, David, Brown, William, Ingo, Henrik, O'Leary, Jim, Bradford, David

论文摘要

我们描述了在噪声存在下自动检测软件产品性能变化的过程。随着我们软件产品的更改致力于我们的源存储库,大量测试会定期进行,我们想确定负责性能回归的承诺。以前,我们依靠手动检查时间序列图来确定重大变化。后来被基于阈值的检测系统取代,但是这两个系统都足以及时查找性能变化。这项工作描述了我们最近对基于电子划分算法的变更点检测系统的实施。该算法产生的变更点列表,代表了给定的性能结果历史记录的重大变化。人类审查了可操作的变更的变更点列表,然后将其分为三角检查以进行进一步检查。使用变更点检测对我们检测性能变化的能力产生了巨大影响。从数量上讲,它极大地降低了我们对性能变化的假阳性率,而定性上使整个绩效评估过程变得更加容易,更有生产力(例如,捕获较小的回归),并且更及时。

We describe our process for automatic detection of performance changes for a software product in the presence of noise. A large collection of tests run periodically as changes to our software product are committed to our source repository, and we would like to identify the commits responsible for performance regressions. Previously, we relied on manual inspection of time series graphs to identify significant changes. That was later replaced with a threshold-based detection system, but neither system was sufficient for finding changes in performance in a timely manner. This work describes our recent implementation of a change point detection system built upon the E-Divisive means algorithm. The algorithm produces a list of change points representing significant changes from a given history of performance results. A human reviews the list of change points for actionable changes, which are then triaged for further inspection. Using change point detection has had a dramatic impact on our ability to detect performance changes. Quantitatively, it has dramatically dropped our false positive rate for performance changes, while qualitatively it has made the entire performance evaluation process easier, more productive (ex. catching smaller regressions), and more timely.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源