TY - GEN
T1 - Towards Developer Support for Merging Forked Test Cases
AU - Schulze, Sandro
AU - Krüger, Jacob
AU - Wünsche, Johannes
N1 - DBLP License: DBLP's bibliographic metadata records provided through http://dblp.org/ are distributed under a Creative Commons CC0 1.0 Universal Public Domain Dedication. Although the bibliographic metadata records are provided consistent with CC0 1.0 Dedication, the content described by the metadata records is not. Content may be subject to copyright, rights of privacy, rights of publicity and other restrictions.
PY - 2022/9/12
Y1 - 2022/9/12
N2 - Developers rely on branching and forking mechanisms of modern versioning systems to evolve and maintain their software systems. As a result, systems often exist in the form of various short-living or even long-living (i.e., clone & own development) variants. Such variants may have to be merged with the main system or other variants, for instance, to propagate features or bug fixes. Within such merging processes, test cases are highly interesting, since they allow to improve the test coverage and hopefully the reliability of the system (e.g., by merging missing tests and bug fixes in test code). However, as all source code, test cases may evolve independently between two or more variants, which makes it non-trivial to decide what changes of the test cases are relevant for the merging. For instance, some test cases in one variant may be irrelevant in another variant (e.g., because the feature shall not be propagated) or may subsume existing test cases. In this paper, we propose a technique that allows for a fine-grained comparison of test cases to support developers in deciding whether and how to merge these. Precisely, inspired by code-clone detection, we use abstract syntax trees to decide on the relations between test cases of different variants. We evaluate the applicability of our technique qualitatively on five open-source systems written in Java (e.g., JUnit 5, Guava). Our insights into the merge potential of 50 pull requests with test cases from these systems indicate that our technique can support the comprehension of differences in variants’ test cases, and also highlight future research opportunities.
AB - Developers rely on branching and forking mechanisms of modern versioning systems to evolve and maintain their software systems. As a result, systems often exist in the form of various short-living or even long-living (i.e., clone & own development) variants. Such variants may have to be merged with the main system or other variants, for instance, to propagate features or bug fixes. Within such merging processes, test cases are highly interesting, since they allow to improve the test coverage and hopefully the reliability of the system (e.g., by merging missing tests and bug fixes in test code). However, as all source code, test cases may evolve independently between two or more variants, which makes it non-trivial to decide what changes of the test cases are relevant for the merging. For instance, some test cases in one variant may be irrelevant in another variant (e.g., because the feature shall not be propagated) or may subsume existing test cases. In this paper, we propose a technique that allows for a fine-grained comparison of test cases to support developers in deciding whether and how to merge these. Precisely, inspired by code-clone detection, we use abstract syntax trees to decide on the relations between test cases of different variants. We evaluate the applicability of our technique qualitatively on five open-source systems written in Java (e.g., JUnit 5, Guava). Our insights into the merge potential of 50 pull requests with test cases from these systems indicate that our technique can support the comprehension of differences in variants’ test cases, and also highlight future research opportunities.
KW - feature forks
KW - varaint-rich systems
KW - merging
KW - test cases
KW - variant-rich systems
UR - http://www.scopus.com/inward/record.url?scp=85139148168&partnerID=8YFLogxK
U2 - 10.1145/3546932.3547002
DO - 10.1145/3546932.3547002
M3 - Conference contribution
SP - 131
EP - 141
BT - 26th ACM International Systems and Software Product Line Conference, SPLC 2022 - Proceedings
A2 - Felfernig, Alexander
A2 - Fuentes, Lidia
A2 - Cleland-Huang, Jane
A2 - Assuncao, Wesley K.G.
A2 - Assuncao, Wesley K.G.
A2 - Falkner, Andreas
A2 - Azanza, Maider
A2 - Luaces, Miguel A. Rodriguez
A2 - Bhushan, Megha
A2 - Semini, Laura
A2 - Devroey, Xavier
A2 - Werner, Claudia Maria Lima
A2 - Seidl, Christoph
A2 - Le, Viet-Man
A2 - Horcas, Jose Miguel
PB - Association for Computing Machinery, Inc
ER -