To Share, or Not to Share: Exploring Test-Case Reusability in Fork Ecosystems

Mukelabai Mukelabai, Christoph Derks, Jacob Krüger, Thorsten Berger

Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademicpeer-review

5 Citations (Scopus)
64 Downloads (Pure)

Abstract

Code is often reused to facilitate collaborative development, to create software variants, to experiment with new ideas, or to develop new features in isolation. Social-coding platforms, such as GitHub, enable enhanced code reuse with forking, pull requests, and cross-project traceability. With these concepts, forking has become a common strategy to reuse code by creating clones (i.e., forks) of projects. Thereby, forking establishes fork ecosystems of co-existing projects that are similar, but developed in parallel, often with rather sporadic code propagation and synchronization. Consequently, forked projects vary in quality and often involve redundant development efforts. Unfortunately, as we will show, many projects do not benefit from test cases created in other forks, even though those test cases could actually be reused to enhance the quality of other projects. We believe that reusing test cases—in addition to the implementation code—can improve software quality, software maintainability, and coding efficiency in fork ecosystems. While researchers have worked on test-case-reuse techniques, their potential to improve the quality of real fork ecosystems is unknown. To shed light on test-case reusability, we study to what extent test cases can be reused across forked projects. We mined a dataset of test cases from 305 fork ecosystems on GitHub—totaling 1,089 projects—and assessed the potential for reusing these test cases among the forked projects. By performing a manual inspection of the test cases’ applicability, by transplanting the test cases, and by analyzing the causes of non-applicability, we contribute an understanding of the benefits (e.g., uncovering bugs) and of the challenges (e.g., automated code transplantation, deciding about applicability) of reusing test cases in fork ecosystems.
Original languageEnglish
Title of host publicationProceedings - 2023 38th IEEE/ACM International Conference on Automated Software Engineering, ASE 2023
PublisherIEEE Press
Pages837-849
Number of pages13
ISBN (Electronic)9798350329964
DOIs
Publication statusPublished - 8 Nov 2023

Funding

Supported by a fellowship of the Royal Swedish Academy of Sciences and of the Wallenberg Foundation, and by Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany’s Excellence Strategy - EXC 2092 CASA - 390781972.

FundersFunder number
Deutsche ForschungsgemeinschaftEXC 2092 CASA - 390781972

    Keywords

    • Test cases
    • Reuse
    • Test propagation
    • Code transplantation
    • Forking
    • Ecosystems
    • reuse
    • test propagation
    • code transplantation
    • ecosystems
    • test cases
    • forking

    Fingerprint

    Dive into the research topics of 'To Share, or Not to Share: Exploring Test-Case Reusability in Fork Ecosystems'. Together they form a unique fingerprint.

    Cite this