面向机器学习笔记本的回归测试框架——自动断言生成
软件工程
2025-09-18 v1
摘要
笔记本已成为数据科学家和机器学习工程师原型设计和实验开发机器学习管线的事实标准选择。笔记本为代码、数据和可视化提供交互式界面,但提供的测试支持有限。因此,在持续开发期间,许多不引起崩溃的细微错误往往被忽视,导致静默错误表现为性能退步。为此,我们引入 NBTest——首个允许开发人员在笔记本中编写单元格级断言并在 pytest 或持续集成(CI)管道中运行的回归测试框架。NBTest 提供一套断言 API 库,并为执行断言开发了 JupyterLab 插件。我们还开发了首个自动为机器学习笔记本关键组件(如数据处理、模型构建和模型评估)生成单元格级断言的方法。NBTest 旨在在不增加开发负担的前提下提高机器学习笔记本的可靠性和可维护性。我们在 59.2 万个 Kaggle 笔记本上评估了 NBTest。总体而言,NBTest 生成 21163 个断言(平均每个笔记本 35.75 个)。生成的断言在消灭机器学习专属突变方面获得 0.57 的突变得分。NBTest 能够使用为最新版本生成的断言捕获先前版本 Kaggle 笔记本中的回归错误。由于机器学习管线涉及非确定性计算,断言可能不稳定。因此,我们还展示了 NBTest 如何利用统计技术在保持高故障检测效果的同时最小化不稳定性。NBTest 已被广受欢迎的机器学习库采纳用于 CI。进一步地,我们对 17 名用户进行了调查,结果显示笔记本用户认为 NBTest 直观(4.3/5 分)且在编写断言和测试笔记本方面实用(4.24/5 分)。
引用
@article{arxiv.2509.13656,
title = {A Regression Testing Framework with Automated Assertion Generation for Machine Learning Notebooks},
author = {Yingao Elaine Yao and Vedant Nimje and Varun Viswanath and Saikat Dutta},
journal= {arXiv preprint arXiv:2509.13656},
year = {2025}
}
备注
22 pages, 2 figures, 6 tables