{"id":"https://openalex.org/W4416254724","doi":"https://doi.org/10.48550/arxiv.2509.13656","title":"A Regression Testing Framework with Automated Assertion Generation for Machine Learning Notebooks","display_name":"A Regression Testing Framework with Automated Assertion Generation for Machine Learning Notebooks","publication_year":2025,"publication_date":"2025-09-17","ids":{"openalex":"https://openalex.org/W4416254724","doi":"https://doi.org/10.48550/arxiv.2509.13656"},"language":"en","primary_location":{"id":"pmh:oai:arXiv.org:2509.13656","is_oa":true,"landing_page_url":"http://arxiv.org/abs/2509.13656","pdf_url":"https://arxiv.org/pdf/2509.13656","source":{"id":"https://openalex.org/S4393918464","display_name":"ArXiv.org","issn_l":"2331-8422","issn":["2331-8422"],"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"text"},"type":"preprint","indexed_in":["arxiv","datacite"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://arxiv.org/pdf/2509.13656","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5071097701","display_name":"Yingao Elaine Yao","orcid":null},"institutions":[],"countries":[],"is_corresponding":true,"raw_author_name":"Yao, Yingao Elaine","raw_affiliation_strings":[],"affiliations":[]},{"author_position":"middle","author":{"id":"https://openalex.org/A5120403448","display_name":"Vedant Nimje","orcid":null},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Nimje, Vedant","raw_affiliation_strings":[],"affiliations":[]},{"author_position":"middle","author":{"id":"https://openalex.org/A5059781415","display_name":"Varun Viswanath","orcid":"https://orcid.org/0000-0001-6299-5777"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Viswanath, Varun","raw_affiliation_strings":[],"affiliations":[]},{"author_position":"last","author":{"id":"https://openalex.org/A5101831201","display_name":"Saikat Dutta","orcid":"https://orcid.org/0009-0004-6345-1762"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Dutta, Saikat","raw_affiliation_strings":[],"affiliations":[]}],"institutions":[],"countries_distinct_count":0,"institutions_distinct_count":4,"corresponding_author_ids":["https://openalex.org/A5071097701"],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":null,"has_fulltext":false,"cited_by_count":0,"citation_normalized_percentile":null,"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.4113999903202057,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.4113999903202057,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T11986","display_name":"Scientific Computing and Data Management","score":0.11550000309944153,"subfield":{"id":"https://openalex.org/subfields/1802","display_name":"Information Systems and Management"},"field":{"id":"https://openalex.org/fields/18","display_name":"Decision Sciences"},"domain":{"id":"https://openalex.org/domains/2","display_name":"Social Sciences"}},{"id":"https://openalex.org/T11689","display_name":"Adversarial Robustness in Machine Learning","score":0.07940000295639038,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/plug-in","display_name":"Plug-in","score":0.678600013256073},{"id":"https://openalex.org/keywords/maintainability","display_name":"Maintainability","score":0.641700029373169},{"id":"https://openalex.org/keywords/assertion","display_name":"Assertion","score":0.6205999851226807},{"id":"https://openalex.org/keywords/regression-testing","display_name":"Regression testing","score":0.4959999918937683},{"id":"https://openalex.org/keywords/key","display_name":"Key (lock)","score":0.49149999022483826},{"id":"https://openalex.org/keywords/interface","display_name":"Interface (matter)","score":0.43130001425743103},{"id":"https://openalex.org/keywords/pipeline","display_name":"Pipeline (software)","score":0.4138000011444092},{"id":"https://openalex.org/keywords/reliability","display_name":"Reliability (semiconductor)","score":0.40709999203681946},{"id":"https://openalex.org/keywords/debugging","display_name":"Debugging","score":0.38109999895095825}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7864999771118164},{"id":"https://openalex.org/C119857082","wikidata":"https://www.wikidata.org/wiki/Q2539","display_name":"Machine learning","level":1,"score":0.6880999803543091},{"id":"https://openalex.org/C4924752","wikidata":"https://www.wikidata.org/wiki/Q184148","display_name":"Plug-in","level":2,"score":0.678600013256073},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.6504999995231628},{"id":"https://openalex.org/C160713754","wikidata":"https://www.wikidata.org/wiki/Q1389965","display_name":"Maintainability","level":2,"score":0.641700029373169},{"id":"https://openalex.org/C40422974","wikidata":"https://www.wikidata.org/wiki/Q741248","display_name":"Assertion","level":2,"score":0.6205999851226807},{"id":"https://openalex.org/C161821725","wikidata":"https://www.wikidata.org/wiki/Q917415","display_name":"Regression testing","level":5,"score":0.4959999918937683},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.49149999022483826},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.48730000853538513},{"id":"https://openalex.org/C113843644","wikidata":"https://www.wikidata.org/wiki/Q901882","display_name":"Interface (matter)","level":4,"score":0.43130001425743103},{"id":"https://openalex.org/C43521106","wikidata":"https://www.wikidata.org/wiki/Q2165493","display_name":"Pipeline (software)","level":2,"score":0.4138000011444092},{"id":"https://openalex.org/C43214815","wikidata":"https://www.wikidata.org/wiki/Q7310987","display_name":"Reliability (semiconductor)","level":3,"score":0.40709999203681946},{"id":"https://openalex.org/C168065819","wikidata":"https://www.wikidata.org/wiki/Q845566","display_name":"Debugging","level":2,"score":0.38109999895095825},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.33320000767707825},{"id":"https://openalex.org/C83546350","wikidata":"https://www.wikidata.org/wiki/Q1139051","display_name":"Regression","level":2,"score":0.3285999894142151},{"id":"https://openalex.org/C2779639559","wikidata":"https://www.wikidata.org/wiki/Q7661178","display_name":"Symbolic execution","level":3,"score":0.31850001215934753},{"id":"https://openalex.org/C2780395129","wikidata":"https://www.wikidata.org/wiki/Q1128971","display_name":"Rapid prototyping","level":2,"score":0.30070000886917114},{"id":"https://openalex.org/C56666940","wikidata":"https://www.wikidata.org/wiki/Q788790","display_name":"Documentation","level":2,"score":0.2921999990940094},{"id":"https://openalex.org/C51632099","wikidata":"https://www.wikidata.org/wiki/Q3985153","display_name":"Training set","level":2,"score":0.28610000014305115},{"id":"https://openalex.org/C87007009","wikidata":"https://www.wikidata.org/wiki/Q210832","display_name":"Statistical hypothesis testing","level":2,"score":0.2840999960899353},{"id":"https://openalex.org/C61797465","wikidata":"https://www.wikidata.org/wiki/Q1188986","display_name":"Term (time)","level":2,"score":0.2741999924182892},{"id":"https://openalex.org/C152877465","wikidata":"https://www.wikidata.org/wiki/Q208042","display_name":"Regression analysis","level":2,"score":0.2734000086784363},{"id":"https://openalex.org/C108583219","wikidata":"https://www.wikidata.org/wiki/Q197536","display_name":"Deep learning","level":2,"score":0.2703000009059906},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.26919999718666077},{"id":"https://openalex.org/C92446256","wikidata":"https://www.wikidata.org/wiki/Q3306762","display_name":"Data validation","level":2,"score":0.2567000091075897},{"id":"https://openalex.org/C89505385","wikidata":"https://www.wikidata.org/wiki/Q47146","display_name":"User interface","level":2,"score":0.2522999942302704}],"mesh":[],"locations_count":2,"locations":[{"id":"pmh:oai:arXiv.org:2509.13656","is_oa":true,"landing_page_url":"http://arxiv.org/abs/2509.13656","pdf_url":"https://arxiv.org/pdf/2509.13656","source":{"id":"https://openalex.org/S4393918464","display_name":"ArXiv.org","issn_l":"2331-8422","issn":["2331-8422"],"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"text"},{"id":"doi:10.48550/arxiv.2509.13656","is_oa":true,"landing_page_url":"https://doi.org/10.48550/arxiv.2509.13656","pdf_url":null,"source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":null,"is_accepted":false,"is_published":null,"raw_source_name":null,"raw_type":"article"}],"best_oa_location":{"id":"pmh:oai:arXiv.org:2509.13656","is_oa":true,"landing_page_url":"http://arxiv.org/abs/2509.13656","pdf_url":"https://arxiv.org/pdf/2509.13656","source":{"id":"https://openalex.org/S4393918464","display_name":"ArXiv.org","issn_l":"2331-8422","issn":["2331-8422"],"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"text"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":0,"referenced_works":[],"related_works":[],"abstract_inverted_index":{"Notebooks":[0,22],"have":[1],"become":[2],"the":[3,72,116,143,193,200,210,237],"de-facto":[4],"choice":[5],"for":[6,13,27,38,120,124,199],"data":[7,132],"scientists":[8],"and":[9,15,30,56,86,105,136,145,263,268],"machine":[10,18],"learning":[11,19],"engineers":[12],"prototyping":[14],"experimenting":[16],"with":[17,250],"(ML)":[20],"pipelines.":[21,97],"provide":[23,34],"an":[24],"interactive":[25],"interface":[26],"code,":[28],"data,":[29],"visualization.":[31],"However,":[32],"notebooks":[33,85,89,149,195,270],"very":[35],"limited":[36],"support":[37],"testing.":[39],"Thus,":[40],"during":[41],"continuous":[42,94],"development,":[43],"many":[44],"subtle":[45],"bugs":[46,188],"that":[47,60,77,109,253,255],"do":[48],"not":[49],"lead":[50],"to":[51,80,141,224],"crashes":[52],"often":[53],"go":[54],"unnoticed":[55],"cause":[57],"silent":[58],"errors":[59],"manifest":[61],"as":[62,131],"performance":[63],"regressions.":[64],"To":[65],"address":[66],"this,":[67],"we":[68,216,245],"introduce":[69],"NBTest":[70,98,139,156,162,184,220,232,259],"-":[71],"first":[73,117],"regression":[74,187],"testing":[75,269],"framework":[76],"allows":[78],"developers":[79],"write":[81],"cell-level":[82,122],"assertions":[83,123,165,173,197,211,267],"in":[84,90,93,127,180,189,236,265],"run":[87],"such":[88,130],"pytest":[91],"or":[92],"integration":[95],"(CI)":[96],"offers":[99],"a":[100,106,175,240,247],"library":[101],"of":[102,147,178,192,239],"assertion":[103],"APIs,":[104],"JupyterLab":[107],"plugin":[108],"enables":[110],"executing":[111],"assertions.":[112],"We":[113,154],"also":[114,217],"develop":[115],"automated":[118],"approach":[119],"generating":[121],"key":[125],"components":[126],"ML":[128,148,204,242],"notebooks,":[129],"processing,":[133],"model":[134,137],"building,":[135],"evaluation.":[138],"aims":[140],"improve":[142],"reliability":[144],"maintainability":[146],"without":[150],"adding":[151],"developer":[152],"burden.":[153],"evaluate":[155],"on":[157,167],"592":[158],"Kaggle":[159,194],"notebooks.":[160],"Overall,":[161],"generates":[163],"21163":[164],"(35.75":[166],"average":[168],"per":[169],"notebook).":[170],"The":[171],"generated":[172,198],"obtain":[174],"mutation":[176],"score":[177],"0.57":[179],"killing":[181],"ML-specific":[182],"mutations.":[183],"can":[185,212],"catch":[186],"previous":[190],"versions":[191],"using":[196],"latest":[201],"versions.":[202],"Because":[203],"pipelines":[205],"involve":[206],"non":[207],"deterministic":[208],"computations,":[209],"be":[213],"flaky.":[214],"Hence,":[215],"show":[218],"how":[219],"leverages":[221],"statistical":[222],"techniques":[223],"minimize":[225],"flakiness":[226],"while":[227],"retaining":[228],"high":[229],"fault-detection":[230],"effectiveness.":[231],"has":[233],"been":[234],"adopted":[235],"CI":[238],"popular":[241],"library.":[243],"Further,":[244],"perform":[246],"user":[248],"study":[249],"17":[251],"participants":[252],"shows":[254],"notebook":[256],"users":[257],"find":[258],"intuitive":[260],"(Rating":[261,271],"4.3/5)":[262],"useful":[264],"writing":[266],"4.24/5).":[272]},"counts_by_year":[],"updated_date":"2026-03-07T16:01:11.037858","created_date":"2025-10-10T00:00:00"}
