聊聊如何测试你的测试(翻译自Meta)
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
本文由鼎叔翻译,为其第二十八篇原创文章,译自Meta(前身为Facebook)的技术文章,探讨如何量化度量并应用flaky test(不可靠测试),这是一个国内外学术研究热点。
随着Meta的代码库每日更新,庞大的自动回归测试集成为确保产品功能和可靠性的关键。但测试本身也可能随时间变得不可靠,即所谓的flaky test,这对工程师信任测试过程产生负面影响。因而,量化测试的不可靠程度变得至关重要。
Meta开发了一种称为脆弱度概率分(PFS)的度量方法,用于量化单个测试任务的脆弱程度并监控其随时间的变化。PFS是通用的,适用于所有回归测试,并且可以实时监控数百万测试任务。这有助于Meta团队设定测试可靠性目标并修复不稳定的测试。
PFS之所以有效,是因为它基于实证观察,即工程师信任通过的测试,而对失败的测试持怀疑态度。此外,PFS的统计模型考虑了可能影响测试结果的各个因素,包括被测代码、外部环境状态及其他不确定因素,使用贝叶斯推理和概率编程语言Stan实现高效计算。
自2018年部署以来,PFS已成为维护测试套件可靠性的重要工具。它不仅能够产生测试脆弱度的量化指标,还能够促使测试作者保持测试可靠性,提高了测试的整体质量。
最终,PFS帮助Meta建立了一种基于测试脆弱度的社交契约,促进了测试作者和代码库开发人员之间的合作。此外,PFS也用于评估何时停止对测试质量的改进,以及在组织范围内推动测试质量投资。
文章还特别感谢了贡献于这个项目的工程师:Vladimir Bychkovsky, Beliz Gokkaya, 和 Michael Samoylenko。
想要了解更多内容?
《无测试组织-测试团队的敏捷转型》主题探讨。从打造测试的组织敏捷,到敏捷测试技术的丰富实践,从一线团队的视角来聊聊我们是怎么做的。面向未来,拥抱敏捷原则,走向高效能组织。