Evaluating Regression Test Selection Opportunities in a Very Large Open-Source Ecosystem

作者: Alex Gyori , Owolabi Legunsen , Farah Hariri , Darko Marinov

DOI: 10.1109/ISSRE.2018.00022

关键词:

摘要: Regression testing in very large software ecosystems is notoriously costly, requiring computational resources that even corporations struggle to cope with. Very contain thousands of rapidly evolving, interconnected projects where client transitively depend on library projects. test selection (RTS) reduces regression costs by rerunning only tests whose pass/fail behavior may flip after code changes. For single projects, researchers showed class-level RTS more effective than lower method-or statement-level RTS. Meanwhile, several industry, e.g., at Facebook, Google, and Microsoft, perform project-level RTS, a changed all its transitive clients. However, there was no previous study the comparative benefits such ecosystems. We evaluate opportunities MAVEN Central opensource ecosystem. There, some popular libraries have up 924589 clients; turn, clients can 11190 libraries. sampled 408 found 202 (almost half) cannot update latest versions without breaking compilation or tests. If developers want detect these breakages earlier, they need run many compared four variants with Central. The results be an order magnitude less costly Specifically, various select, average, 7.8%-17.4% selected

参考文章(43)
Yasufumi Toyoshima, David Chenho Kung, Pei Hsia, Jerry Gao, Jeremy Lin, Class firewall, test order, and regression testing of object-oriented programs Journal of Object-oriented Programming. ,vol. 8, pp. 51- 65 ,(1995)
Mary Jean Harrold, James A. Jones, Tongyu Li, Donglin Liang, Ashish Gujarathi, Regression test selection for Java software conference on object-oriented programming systems, languages, and applications. ,vol. 36, pp. 312- 326 ,(2001) , 10.1145/504282.504305
Milos Gligoric, Lamyaa Eloussi, Darko Marinov, Practical regression test selection with dynamic file dependencies international symposium on software testing and analysis. pp. 211- 222 ,(2015) , 10.1145/2771783.2771784
Steven Raemaekers, Arie van Deursen, Joost Visser, Measuring software library stability through historical version analysis international conference on software maintenance. pp. 378- 387 ,(2012) , 10.1109/ICSM.2012.6405296
Gabriele Bavota, Gerardo Canfora, Massimiliano Di Penta, Rocco Oliveto, Sebastiano Panichella, How the Apache community upgrades dependencies: an evolutionary study Empirical Software Engineering. ,vol. 20, pp. 1275- 1317 ,(2015) , 10.1007/S10664-014-9325-9
Sebastian Elbaum, Gregg Rothermel, John Penix, Techniques for improving regression testing in continuous integration development environments foundations of software engineering. pp. 235- 245 ,(2014) , 10.1145/2635868.2635910
Caius Brindescu, Mihai Codoban, Sergii Shmarkatiuk, Danny Dig, How do centralized and distributed version control systems impact software changes international conference on software engineering. pp. 322- 333 ,(2014) , 10.1145/2568225.2568322
Emelie Engström, Mats Skoglund, Per Runeson, Empirical evaluations of regression test selection techniques: a systematic review empirical software engineering and measurement. pp. 22- 31 ,(2008) , 10.1145/1414004.1414011
S. Yoo, M. Harman, Regression testing minimization, selection and prioritization: a survey Software Testing, Verification and Reliability. ,vol. 22, pp. 67- 120 ,(2012) , 10.1002/STV.430
Gabriele Bavota, Mario Linares-Vasquez, Carlos Eduardo Bernal-Cardenas, Massimiliano Di Penta, Rocco Oliveto, Denys Poshyvanyk, The Impact of API Change- and Fault-Proneness on the User Ratings of Android Apps IEEE Transactions on Software Engineering. ,vol. 41, pp. 384- 407 ,(2015) , 10.1109/TSE.2014.2367027