This program is tentative and subject to change.

Fri 19 Jul 2024 12:12 - 12:30 at Pitomba - AI4SE 4 Chair(s): Wesley Assunção

Continuous Integration (CI) is a common practice adopted by modern software organizations. It plays an especially important role for large corporations like Company Y, where thousands of build jobs are submitted daily. Indeed, the cadence of development progress is constrained by the pace at which CI services process build jobs. To provide faster CI feedback, recent work explores how build outcomes can be anticipated. Although early results show plenty of promise, the distinct characteristics of Project X—a AAA video game project at Company Y, present new challenges for build outcome prediction. In the Project X setting, changes that do not modify source code also incur build failures. Moreover, we find that the code changes that have an impact that crosses the source-data boundary are more prone to build failures than code changes that do not impact data files. Since such changes are not fully characterized by the existing set of build outcome prediction features, state-of-the-art models tend to underperform.

Therefore, to accommodate the data context into build outcome prediction, we propose RavenBuild, a novel approach that leverages context, relevance, and dependency-aware features. We apply the state-of-the-art BuildFast model and RavenBuild to Project X, and observe that RavenBuild improves the F1-score of the failing class by 46%, the recall of the failing class by 76%, and AUC by 28%. To ease adoption in settings with heterogeneous project sets, we also provide a simplified alternative RavenBuild-CR, which excludes dependency-aware features. We apply RavenBuild-CR on 22 open-source projects and Project X, and observe across-the-board improvements as well. On the other hand, we find that a naive Parrot approach, which simply echoes the previous build outcome as its prediction, is surprisingly competitive with BuildFast and RavenBuild. Though Parrot fails to predict when the build outcome differs from their immediate predecessor, Parrot serves well as a tendency indicator of the sequences in build outcome datasets. Therefore, future studies should also consider comparing to the Parrot approach as a baseline when evaluating build outcome prediction models.

This program is tentative and subject to change.

Fri 19 Jul

Displayed time zone: Brasilia, Distrito Federal, Brazil change

11:00 - 12:30
AI4SE 4 Research Papers at Pitomba
Chair(s): Wesley Assunção North Carolina State University
11:00
18m
Talk
Improving the Learning of Code Review Successive Tasks with Cross-Task Knowledge DistillationDistinguished Paper Award
Research Papers
Oussama Ben Sghaier DIRO, Université de Montréal, Houari Sahraoui DIRO, Université de Montréal
11:18
18m
Talk
Learning to Detect and Localize Multilingual Bugs
Research Papers
Haoran Yang Washington State University, Yu Nong Washington State University, Tao Zhang Macau University of Science and Technology, Xiapu Luo The Hong Kong Polytechnic University, Haipeng Cai Washington State University
DOI Pre-print
11:36
18m
Talk
Mining Action Rules for Defect Reduction Planning
Research Papers
Khouloud Oueslati Polytechnique Montréal, Canada, Gabriel Laberge Polytechnique Montréal, Canada, Maxime Lamothe Polytechnique Montreal, Foutse Khomh Polytechnique Montréal
11:54
18m
Talk
Predicting Failures of Autoscaling Distributed Applications
Research Papers
Giovanni Denaro University of Milano - Bicocca, Noura El Moussa USI Università della Svizzera Italiana & SIT Schaffhausen Institute of Technology, Rahim Heydarov USI Università della Svizzera Italiana, Francesco Lomio SIT Schaffhausen Institute of Technology, Mauro Pezze USI Università della Svizzera Italiana & SIT Schaffhausen Institute of Technology, Ketai Qiu USI Università della Svizzera Italiana
DOI Pre-print
12:12
18m
Talk
RavenBuild: Context, Relevance, and Dependency Aware Build Outcome Prediction
Research Papers
Gengyi Sun University of Waterloo, Sarra Habchi Ubisoft Montréal, Shane McIntosh University of Waterloo