TY - GEN
T1 - Evaluating Regression Test Selection Opportunities in a Very Large Open-Source Ecosystem
AU - Gyori, Alex
AU - Legunsen, Owolabi
AU - Hariri, Farah
AU - Marinov, Darko
N1 - Publisher Copyright:
© 2018 IEEE.
PY - 2018/11/16
Y1 - 2018/11/16
N2 - Regression testing in very large software ecosystems is notoriously costly, requiring computational resources that even large corporations struggle to cope with. Very large ecosystems contain thousands of rapidly evolving, interconnected projects where client projects transitively depend on library projects. Regression test selection (RTS) reduces regression testing costs by rerunning only tests whose pass/fail behavior may flip after code changes. For single projects, researchers showed that class-level RTS is more effective than lower method-or statement-level RTS. Meanwhile, several very large ecosystems in industry, e.g., at Facebook, Google, and Microsoft, perform project-level RTS, rerunning tests in a changed library and in all its transitive clients. However, there was no previous study of the comparative benefits of class-level and project-level RTS in such ecosystems. We evaluate RTS opportunities in the MAVEN Central opensource ecosystem. There, some popular libraries have up to 924589 clients; in turn, clients can depend on up to 11190 libraries. We sampled 408 popular projects and found that 202 (almost half) cannot update to latest library versions without breaking compilation or tests. If developers want to detect these breakages earlier, they need to run very many tests. We compared four variants of class-level RTS with project-level RTS in MAVEN Central. The results showed that class-level RTS may be an order of magnitude less costly than project-level RTS in very large ecosystems. Specifically, various class-level RTS variants select, on average, 7.8%-17.4% of tests selected by project-level RTS.
AB - Regression testing in very large software ecosystems is notoriously costly, requiring computational resources that even large corporations struggle to cope with. Very large ecosystems contain thousands of rapidly evolving, interconnected projects where client projects transitively depend on library projects. Regression test selection (RTS) reduces regression testing costs by rerunning only tests whose pass/fail behavior may flip after code changes. For single projects, researchers showed that class-level RTS is more effective than lower method-or statement-level RTS. Meanwhile, several very large ecosystems in industry, e.g., at Facebook, Google, and Microsoft, perform project-level RTS, rerunning tests in a changed library and in all its transitive clients. However, there was no previous study of the comparative benefits of class-level and project-level RTS in such ecosystems. We evaluate RTS opportunities in the MAVEN Central opensource ecosystem. There, some popular libraries have up to 924589 clients; in turn, clients can depend on up to 11190 libraries. We sampled 408 popular projects and found that 202 (almost half) cannot update to latest library versions without breaking compilation or tests. If developers want to detect these breakages earlier, they need to run very many tests. We compared four variants of class-level RTS with project-level RTS in MAVEN Central. The results showed that class-level RTS may be an order of magnitude less costly than project-level RTS in very large ecosystems. Specifically, various class-level RTS variants select, on average, 7.8%-17.4% of tests selected by project-level RTS.
KW - Ecosystem Testing
KW - Regression Test Selection
KW - Regression Testing
UR - http://www.scopus.com/inward/record.url?scp=85059628157&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85059628157&partnerID=8YFLogxK
U2 - 10.1109/ISSRE.2018.00022
DO - 10.1109/ISSRE.2018.00022
M3 - Conference contribution
AN - SCOPUS:85059628157
T3 - Proceedings - International Symposium on Software Reliability Engineering, ISSRE
SP - 112
EP - 122
BT - Proceedings - 29th IEEE International Symposium on Software Reliability Engineering, ISSRE 2018
A2 - Ghosh, Sudipto
A2 - Cukic, Bojan
A2 - Poston, Robin
A2 - Natella, Roberto
A2 - Laranjeiro, Nuno
PB - IEEE Computer Society
T2 - 29th IEEE International Symposium on Software Reliability Engineering, ISSRE 2018
Y2 - 15 October 2018 through 18 October 2018
ER -