Oops!... I did it again. Conclusion (In-)Stability in Quantitative Empirical Software Engineering: A Large-Scale Analysis
By: Nicole Hoess , Carlos Paradis , Rick Kazman and more
Potential Business Impact:
Tools for studying code give different results.
Context: Mining software repositories is a popular means to gain insights into a software project's evolution, monitor project health, support decisions and derive best practices. Tools supporting the mining process are commonly applied by researchers and practitioners, but their limitations and agreement are often not well understood. Objective: This study investigates some threats to validity in complex tool pipelines for evolutionary software analyses and evaluates the tools' agreement in terms of data, study outcomes and conclusions for the same research questions. Method: We conduct a lightweight literature review to select three studies on collaboration and coordination, software maintenance and software quality from high-ranked venues, which we formally replicate with four independent, systematically selected mining tools to quantitatively and qualitatively compare the extracted data, analysis results and conclusions. Results: We find that numerous technical details in tool design and implementation accumulate along the complex mining pipelines and can cause substantial differences in the extracted baseline data, its derivatives, subsequent results of statistical analyses and, under specific circumstances, conclusions. Conclusions: Users must carefully choose tools and evaluate their limitations to assess the scope of validity in an adequate way. Reusing tools is recommended. Researchers and tool authors can promote reusability and help reducing uncertainties by reproduction packages and comparative studies following our approach.
Similar Papers
Does the Tool Matter? Exploring Some Causes of Threats to Validity in Mining Software Repositories
Software Engineering
Makes computer code analysis more trustworthy.
A Call for Critically Rethinking and Reforming Data Analysis in Empirical Software Engineering
Software Engineering
Fixes bad math in computer science research.
Large Language Models for Software Engineering: A Reproducibility Crisis
Software Engineering
Makes science experiments with AI easier to repeat.