一句话:提出结合生成与预测模型,关联输入特征与执行结果,自动解释程序异常行为的根因。
程序失败时,开发者必须理解输入中的哪些部分导致异常,以及程序为何偏离预期。程序行为可视为其所有执行的集合,通常多样、不可预测且无界;当实际结果与预期不符时即出现病态行为。本文(博士研究计划)旨在自动产生根因解释,通过将输入元素视为特征,并与其执行结果相关联,刻画任意程序行为发生的条件。方法上采用科学方法,结合生成模型与预测模型:一方面学习输入特征与程序行为之间的统计关系,形成解释性预测模型;另一方面生成新输入以精化或反驳当前模型。摘要未报告已完成实现或实验结果,评估计划可能围绕解释质量与模型迭代展开。
Programs fail. But which part of the input is responsible for the failure? To resolve the issue, developers must first understand how and why the program behaves as it does, notably when it deviates from the expected outcome. A program’s behavior is essentially the set of all its executions. This set is usually diverse, unpredictable, and generally unbounded. A pathological program behavior occurs once the actual outcome does not match the expected behavior. Consequently, developers must fix these issues to ensure the built system is the desired software. In our upcoming research, we want to focus on providing developers with a detailed description of the root causes that resulted in the program’s unwanted behavior. Thus, we aim to automatically produce explanations that capture the circumstances of arbitrary program behavior by correlating individual input elements (features) and their corresponding execution outcome. To this end, we use the scientific method and combine generative and predictive models, allowing us (i) to learn the statistical relations between the features of the inputs and the program behavior and (ii) to generate new inputs to refine or refute our current explanatory prediction model.