阈值测试

2013 年 9 月 12 日

阈值测试是插入到 部署管道 中的测试,通过将当前构建中的值与阈值进行比较来监控某些可衡量的现象。如果当前构建的值超过阈值,则测试失败,导致构建失败。

阈值测试的常见用例是在性能方面。团队会选取一组代表性的操作并计时。然后,他们设置一个阈值测试,如果这些操作花费的时间比当前值显著增加,则测试失败。这种阈值对于发现提交引入性能下降的情况非常有用。在数据密集型应用程序中,这些情况通常是由于编写不当的查询或索引使用不当造成的。

通过使用阈值测试,您可以在问题首次引入时发现它。这使得修复问题变得更容易,因为您知道是这次提交导致了失败,从而缩小了需要搜索问题的范围。此外,维护阈值测试可以防止这类问题在代码库中累积。如果您有很多这样的糟糕查询,那么更多糟糕查询更容易潜入,因为它们的影响被已经存在的查询掩盖了。

阈值测试可以与 棘轮 一起使用,随着时间的推移,您逐渐收紧阈值以提高价值。因此,每次您添加一个提高性能的提交时,您都会降低阈值。这应该有助于随着时间的推移逐渐提高性能。在您从一个糟糕的地方开始并启动改进计划时,将阈值测试与棘轮一起使用特别有用。

有时,阈值测试会失败,团队会决定阈值过于严格,并放宽阈值。根据具体情况,这可能是正确的做法——阈值测试在这里通过将此决定变成一个有意识的决定来提供帮助。

进一步阅读

阈值测试是遵循 度量指标的适当使用 中的“优先跟踪趋势而不是绝对数字”和“使用更短的跟踪周期”原则的一种方式。

有关测试跨职能需求的一般建议,请查看 持续交付的第 9 章