Browsing by Author "Servant, Francisco"
Now showing 1 - 2 of 2
Results Per Page
Sort Options
- HybridCISave: A Combined Build and Test Selection Approach in Continuous IntegrationJin, Xianhao; Servant, Francisco (ACM, 2023)Continuous integration (CI) is a popular practice in modern software engineering. Unfortunately, it is also a high cost practice --- Google and Mozilla estimate their CI systems in millions of dollars. To reduce the computational cost in CI, researchers developed approaches to selectively execute builds or tests that are likely to fail (and skip those likely to pass). In this paper, we present a novel hybrid technique (HybridCISave) to improve on the limitations of existing techniques: to provide higher cost savings and higher safety. To provide higher cost savings, HybridCISave combines techniques to predict and skip executions of both full builds that are predicted to pass and partial ones (only the tests in them predicted to pass). To provide higher safety, HybridCISave combines the prediction of multiple techniques to obtain stronger certainty before it decides to skip a build or test. We evaluated HybridCISave by comparing its effectiveness with the existing build selection techniques over 100 projects, and found that it provided higher cost savings at the highest safety. We also evaluated each design decision in HybridCISave and found that skipping both full and partial builds increased its cost savings and that combining multiple test selection techniques made it safer.
- Understanding the Impact of Branch Edit Features for the Automatic Prediction of Merge Conflict ResolutionsAldndni, Waad; Servant, Francisco; Meng, Na (ACM, 2024-04-15)Developers regularly have to resolve merge conflicts, i.e., two conflicting sets of changes to the same files in different branches, which can be tedious and error-prone. To resolve conflicts, developers typically: keep the local version (KL) or the remote version (KR) of the code. They also sometimes manually edit both versions into a single one (ME). However, most existing techniques only support merging the local and remote versions (the ME strategy). We recently proposed RPRedictoR, a machine learning-based approach to support developers in choosing how to resolve a conflict (by KL, KR, or ME), by predicting their resolution strategy. In its original design, RPRedictoR uses a set of Evolution History Features (๐ธ๐ป๐น s) that capture: the magnitude of the changes in conflict, their evolution, and the experience of the developers involved. In this paper, we proposed and evaluated a new set of Branch Edit Features (๐ต๐ธ๐น s), that capture the fine-grained edits that were performed on each branch of the conflict. We learned multiple lessons. First, ๐ต๐ธ๐น s provided lower effectiveness (F-score) than the original ๐ธ๐ป๐น s. Second, combining ๐ต๐ธ๐น s with ๐ธ๐ป๐น s still did not improve the effectiveness of ๐ธ๐ป๐น s, it provided the same f-score. Third, the feature set that provided highest effectiveness in our experiments was the combination of ๐ธ๐ป๐น๐ with a subset of ๐ต๐ธ๐น s that captures the number of insertions performed in the local branch, but this combination only improved ๐ธ๐ป๐น s by 3 pp. f-score. Finally, our experiments also share the lesson that some feature sets provided higher C-score (i.e., the safety of the techniqueโs mistakes) as a trade-off for lower f-scores. This may be valued by developers and we believe that it should be studied in the future.