一句话:PExReport 自动生成裁剪后的独立可执行跨项目失败报告,显著减少复现所需的源码与依赖。
现代软件开发依赖其他团队编写的库,程序执行轨迹可能跨越多个软件产品边界,从而产生跨项目失败(CPF)。现有研究表明,独立可执行的失败报告最利于沟通,但在复杂生态中创建此类报告面临文件与依赖交互的挑战。本文提出 PExReport,自动创建独立可执行的 CPF 报告:它利用构建工具裁剪源代码与依赖,并分析构建过程以生成用于复现 CPF 的精简构建环境。作者在 74 个软件项目 issue 的 198 个 CPF 上进行评估,结果显示 PExReport 能为其中 184 个测试失败创建可执行 CPF 报告,平均减少 72.97% 的源类及内部 JAR 类。
Modern software development extensively depends on existing libraries written by other developer teams from the same or a different organization. When a developer executes the software, the execution trace may go across the boundaries of multiple software products and create cross-project failures (CPFs). Existing studies show that a stand-alone executable failure report may enable the most effective communication, but creating such a report is often challenging due to the complicated files and dependencies interactions in the software ecosystems. In this paper, to solve the CPF report trilemma, we developed PExReport, which automatically creates stand-alone executable CPF reports. PExReport leverages build tools to prune source code and dependencies, and further analyzes the build process to create a pruned build environment for reproducing the CPF. We performed an evaluation on 74 software project issues with 198 CPFs, and the evaluation results show that PExReport can create executable CPF reports for 184 out of 198 test failures in our dataset, with an average reduction of 72.97% on source classes and the classes in internal JARs.