The papers in this special issue of Springer’s journal of Empirical Software Engineering reflect the open-source revolution and its impacts on both industry and academia. They propose empirical studies in timely topics directly related to the open-source movement: Experiments and reproducibility; Bug root cause; Ecosystem dependency upgrades; Socialization of committers; Priority levels of bug reports; Rapid release and testing.
Bogdan Dit, Evan Moritz, Mario Linares-Vásquez, and Denys Poshyvanyk, in “Supporting and Accelerating Reproducible Empirical Research in Software Evolution and Maintenance using TraceLab Component Library”, address the problem of experiment reproducibility in software maintenance. They describe a possible long-term solution for ensuring that future experiments will be reproducible and extensible. They introduce components dedicated to software maintenance approaches and integrate them in TraceLab. They also present experiments realised using these components. The goal of experiments and components is to create a body of actionable knowledge that would (1) facilitate future research and (2) allow the research community to contribute to it as well.
Tien-Duy B. Le and David Lo, in “Should I Follow This Fault Localization Tool’s Output? Automated Prediction of Fault Localization Effectiveness”, highlight that the root causes of many bugs are often low in the ordered list of entities provided by fault localisation tools. This low position causes developers to distrust fault localization tools. Consequently, they build an oracle to predict whether the output of a fault localization tool can be trusted or not. Their experiments demonstrate that they can predict the effectiveness of nine fault localization tools with a high precision, recall, and F-measure. The obtained results indicate that many ineffective fault localization instances are identified correctly, while only few effective ones are identified wrongly.
Gabriele Bavota, Gerardo Canfora, Massimiliano Di Penta, Rocco Oliveto and Sebastiano Panichella, in “How the Apache Community Upgrades Dependencies: An Evolutionary Study” study the evolution of dependencies between projects in the Java subset of the Apache ecosystem, consisting of 147 projects, for a period of 14 years, resulting in 1,964 releases. The study results, which have been qualitatively confirmed by observations made by analyzing the developers’ discussions, indicate that new releases of projects trigger upgrades when the new releases include major changes (e.g., new features/services) as well as large amount of bug fixes but not when the changes are considered “minor” by the dependents.
Mohammad Gharehyazie, Bogdan Vasilescu, Daryl Posnett and Vladimir Filkov, in “Developer initiation and social interactions in OSS”, study social and technical interactions of software developers with their community and observe that social network metrics, in particular the amount of two-way communication in which a developer participates, are more significant predictors of one’s likelihood to becoming a committer than her technical contributions. They also observe that one’s level of socialization ramps up before the time of becoming a committer. After obtaining committer status, social behaviour tends to be more individualized: immediately after the initiation there is a notable social cooling-off period.
Yuan Tian, David Lo and Chengnian Sun, in “Automated Prediction of Bug Report Priority Using Multi-Factor Analysis”, propose an automated approach based on machine learning to recommend a priority level based on information available in bug reports. Their approach considers multiple factors, temporal, textual, author, related-report, severity, and product, which potentially affect the priority level of a bug report. They show that their approach outperforms baseline approaches in terms of average F-measure by a relative improvement of up to 209 %.
Finally, Mika Mäntylä, Foutse Khomh, Bram Adams, Emelie Engstrom and Kai Petersen, in “On Rapid Releases and Software Testing”, start by providing a semi-systematic literature review, which shows that rapid releases are a prevalent industrial practice that are utilized even in some highly critical domains of software engineering. Consequently, they study the shift to rapid releases that occured in Firefox recently and find that rapid releases have a narrower test scope that enables a deeper investigation of the features and regressions with the highest risk. However, rapid releases make it more difficult to build a large testing community, and they decrease test suite diversity and make testing more deadline-oriented. They triangulate their observation with a Mozilla QA engineer.