TY - GEN
T1 - CEMENT
T2 - 33rd IEEE International Symposium on Software Reliability Engineering, ISSRE 2022
AU - Sohn, Jeongju
AU - Papadakis, Mike
N1 - Publisher Copyright:
© 2022 IEEE.
PY - 2022
Y1 - 2022
N2 - Many software engineering techniques, such as fault localization, operate based on relevance relationships between tests and code. These relationships are often inferred using dynamic test execution information that approximates the link between relevant code units and asserted, by the tests, program behaviour. Unfortunately, in practice, dynamic information is not always available due to the instrumentation overheads or the nature of the production environments. This paper proposes CEMENT, a static technique that automatically infers such test and code relationships given the projects' evolution. The key idea is that developers make relevant changes to tests and code units around the same period, and thus their co-evolution reflects probable links between them. We evaluate CEMENT on 15 open-source projects, showing that it captures relevant links. We further conduct a fault localization case study and demonstrate that CEMENT can perform comparably to a current Information Retrieval-based Fault Localization (IRFL) approach. Additional analysis reveals that CEMENT and the IRFL localize different faults, suggesting complementarity. We leverage this complementarity by combining these two through voting, identifying 82% (32) of the faults located by at least one of them. These results suggest that test and code evolutionary coupling can effectively support test and debugging activities.
AB - Many software engineering techniques, such as fault localization, operate based on relevance relationships between tests and code. These relationships are often inferred using dynamic test execution information that approximates the link between relevant code units and asserted, by the tests, program behaviour. Unfortunately, in practice, dynamic information is not always available due to the instrumentation overheads or the nature of the production environments. This paper proposes CEMENT, a static technique that automatically infers such test and code relationships given the projects' evolution. The key idea is that developers make relevant changes to tests and code units around the same period, and thus their co-evolution reflects probable links between them. We evaluate CEMENT on 15 open-source projects, showing that it captures relevant links. We further conduct a fault localization case study and demonstrate that CEMENT can perform comparably to a current Information Retrieval-based Fault Localization (IRFL) approach. Additional analysis reveals that CEMENT and the IRFL localize different faults, suggesting complementarity. We leverage this complementarity by combining these two through voting, identifying 82% (32) of the faults located by at least one of them. These results suggest that test and code evolutionary coupling can effectively support test and debugging activities.
KW - fault localization
KW - software evolution
KW - software maintenance
UR - http://www.scopus.com/inward/record.url?scp=85145882392&partnerID=8YFLogxK
U2 - 10.1109/ISSRE55969.2022.00023
DO - 10.1109/ISSRE55969.2022.00023
M3 - Conference contribution
AN - SCOPUS:85145882392
T3 - Proceedings - International Symposium on Software Reliability Engineering, ISSRE
SP - 133
EP - 144
BT - Proceedings - 2022 IEEE 33rd International Symposium on Software Reliability Engineering, ISSRE 2022
PB - IEEE Computer Society
Y2 - 31 October 2021 through 3 November 2021
ER -