一句话:提出人在回路的 oracle 学习设想,通过与用户协商失败条件,为字符串处理程序的语义缺陷实现自动调试。
论文关注字符串处理程序中的语义缺陷:程序不崩溃,但会针对某些输入产生用户认为不正确的输出,传统崩溃检测无法发现。作者提出一种全自动的语义缺陷调试流程设想:用户报告某个输入下的非预期行为,机器随后与用户协商程序失败所应满足的条件;在协商过程中,机器学习预测用户响应,并据此学习一个面向语义缺陷的自动化测试预言(oracle)。摘要中未报告具体实现细节、评估或实验结果,属于方法与愿景层面的工作。
How can we automatically repair semantic bugs in string-processing programs? A semantic bug is an unexpected program state: The program does not crash (which can be easily detected). Instead, the program processes the input incorrectly. It produces an output which users identify as unexpected. We envision a fully automated debugging process for semantic bugs where a user reports the unexpected behavior for a given input and the machine negotiates the condition under which the program fails. During the negotiation, the machine learns to predict the user's response and in this process learns an automated oracle for semantic bugs.
@inproceedings{paperbot7390,
title = {Human-in-the-loop oracle learning for semantic bugs in string processing programs},
author = {Charaka Geethal Kapugama and Van-Thuan Pham and Aldeida Aleti and Marcel Böhme},
booktitle = {ISSTA},
year = {2022},
doi = {10.1145/3533767.3534406}
}