paperbot · PL 论文追踪

全部论文 待读 收藏

P2 PropR

PropR:基于属性的程序修复
ICSE Proceedings of the 44th International Conference on Software Engineering2022匹配度 3/10 · 论文属于程序修复与函数式编程/属性测试方向,与用户的 PL 背景有一定交集,但不涉及静态分析、LLM/Agent、浮点程序分析或贝叶斯程序分析等核心关注点,也未体现 AI 与 PL 的双向结合。引用 21 inbox
Matthías Páll Gissurarson, Leonhard Applis, Annibale Panichella, Arie van Deursen, David Sands
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:将属性测试与 Haskell 类型系统引入自动程序修复,降低过拟合补丁比例并加快修复速度。

自动程序修复(APR)常产生过拟合补丁:这些补丁能通过测试套件,却未真正修复程序问题,检测过拟合需人工检查或依赖预言机,代价高昂。本文提出在 APR 中引入属性以补充单元测试。作者设计并实现了面向 Haskell 的修复工具 PropR,利用 QuickCheck 属性测试以及 Haskell 编译器提供的丰富类型系统与综合能力。实验比较了仅单元测试、仅属性测试及二者结合三种配置下的修复率、首次补丁时间和过拟合率。结果表明,属性测试比单元测试更快得到结果且过拟合率更低;由此产生的过拟合补丁还能揭示待修复程序的底层问题(如故障定位或测试质量),是将 APR 引入开发者工作流的重要一步。

问题
自动程序修复(APR)中,过拟合补丁能通过测试套件但未真正修复问题,而检测过拟合需要人工检查或预言机,使 APR 的质量控制成本高昂。
方法
设计并实现面向 Haskell 的修复工具 PropR,结合 QuickCheck 属性测试与 Haskell 编译器提供的丰富类型系统和综合能力;在单元测试、属性测试及两者组合下比较修复率、首次补丁时间和过拟合率。
评估
实验表明属性测试比单元测试更快产生补丁且过拟合率更低;产生的过拟合补丁有助于理解待修复程序的底层问题(如故障定位或测试质量)。
原文摘要(Abstract)

Automatic program repair (APR) regularly faces the challenge of overfitting patches - patches that pass the test suite, but do not actually address the problems when evaluated manually. Currently, overfit detection requires manual inspection or an oracle making quality control of APR an expensive task. With this work, we want to introduce properties in addition to unit tests for APR to address the problem of overfitting. To that end, we design and implement PROPR, a program repair tool for Haskell that leverages both property-based testing (via QuickCheck) and the rich type sys-tem and synthesis offered by the Haskell compiler. We compare the repair-ratio, time-to-first-patch and overfitting-ratio when using unit tests, property-based tests, and their combination. Our results show that properties lead to quicker results and have a lower overfit ratio than unit tests. The created overfit patches provide valuable insight into the underlying problems of the program to repair (e.g., in terms of fault localization or test quality). We consider this step towards fitter, or at least insightful, patches a critical contribution to bring APR into developer workflows.

链接与引用

DOI 原文 · PDF(开放获取) · DBLP

BibTeX
@inproceedings{GissurarsonAPDS22,
  title = {PropR},
  author = {Matthías Páll Gissurarson and Leonhard Applis and Annibale Panichella and Arie van Deursen and David Sands},
  booktitle = {ICSE},
  year = {2022},
  doi = {10.1145/3510003.3510620}
}