skip to main content
10.1145/3377811.3380369acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

Learning-to-rank vs ranking-to-learn: strategies for regression testing in continuous integration

Published: 01 October 2020 Publication History

Abstract

In Continuous Integration (CI), regression testing is constrained by the time between commits. This demands for careful selection and/or prioritization of test cases within test suites too large to be run entirely. To this aim, some Machine Learning (ML) techniques have been proposed, as an alternative to deterministic approaches. Two broad strategies for ML-based prioritization are learning-to-rank and what we call ranking-to-learn (i.e., reinforcement learning). Various ML algorithms can be applied in each strategy. In this paper we introduce ten of such algorithms for adoption in CI practices, and perform a comprehensive study comparing them against each other using subjects from the Apache Commons project. We analyze the influence of several features of the code under test and of the test process. The results allow to draw criteria to support testers in selecting and tuning the technique that best fits their context.

References

[1]
Benjamin Busjaeger and Tao Xie. 2016. Learning for Test Prioritization: An Industrial Case Study. In 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE). ACM, New York, NY, 975--980.
[2]
Borja Calvo and Guzman Santafe. 2015. scmamp: Statistical Comparison of Multiple Algorithms in Multiple Problems. The R Journal 8, 1 (2015), 248--256.
[3]
Hyunsook Do, Siavash Mirarab, Ladan Tahvildari, and Gregg Rothermel. 2008. An empirical study of the effect of time constraints on the cost-benefits of regression testing. In 16th ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE). ACM, 71--82.
[4]
Vinicius H. S. Durelli, Rafael S. Durelli, Simone S. Borges, Andre T. Endo, Marcelo M. Eler, Diego R. C. Dias, and Marcelo P. Guimarães. 2019. Machine Learning Applied to Software Testing: A Systematic Mapping Study. IEEE Transactions on Reliability 68, 3 (2019), 1189--1212.
[5]
Sebastian Elbaum, Gregg Rothermel, and John Penix. 2014. Techniques for Improving Regression Testing in Continuous Integration Development Environments. In 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE). ACM, New York, NY, 235--245.
[6]
Salvador García, Alberto Fernández, Julián Luengo, and Francisco Herrera. 2010. Advanced nonparametric tests for multiple comparisons in the design of experiments in computational intelligence and data mining: Experimental analysis of power. Information Sciences 180, 10 (2010), 2044 -- 2064.
[7]
Milos Gligoric, Lamyaa Eloussi, and Darko Marinov. 2015. Practical Regression Test Selection with Dynamic File Dependencies. In 2015 International Symposium on Software Testing and Analysis (ISSTA). ACM, New York, NY, 211--222.
[8]
Alireza Haghighatkhah, Mika Mäntylä, Markku Oivo, and Pasi Kuvaja. 2018. Test prioritization in continuous integration environments. Journal of Systems and Software 146 (2018), 80 -- 98.
[9]
H. Hemmati, Z. Fang, and M. V. Mantyla. 2015. Prioritizing Manual Test Cases in Traditional and Rapid Release Environments. In IEEE 8th International Conference on Software Testing, Verification and Validation (ICST). IEEE, 10.
[10]
H. Hotelling. 1947. Multivariate quality control. In Techniques of Statistical Analysis, Wallis W.A. Eisenhart C., Hastay M. (Ed.). McGraw-Hill, New York (1947), 111--184.
[11]
Ronald L. Iman and James M. Davenport. 1980. Approximations of the critical region of the fbietkan statistic. Communications in Statistics - Theory and Methods 9, 6 (1980), 571--595.
[12]
Muhammad Khatibsyarbini, Mohd Adham Isa, Dayang N.A. Jawawi, and Rooster Tumeng. 2018. Test case prioritization approaches in regression testing: A systematic literature review. Information and Software Technology 93 (2018), 74--93.
[13]
Eric Knauss, Miroslaw Staron, Wilhelm Meding, Ola Söder, Agneta Nilsson, and Magnus Castell. 2015. Supporting Continuous Integration by Code-churn Based Test Selection. In IEEE/ACM 2nd International Workshop on Rapid Continuous Software Engineering (RCoSE). IEEE, 19--25.
[14]
Alexander Kraskov, Harald Stögbauer, and Peter Grassberger. 2004. Estimating mutual information. Phys. Rev. E 69 (2004), 066138. Issue 6.
[15]
Remo Lachmann, Sandro Schulze, Manuel Nieke, Christoph Seidl, and Ina Schaefer. 2016. System-level test case prioritization using machine learning. In 15th IEEE International Conference on Machine Learning and Applications. IEEE, 361--368.
[16]
Owolabi Legunsen, Farah Hariri, August Shi, Yafeng Lu, Lingming Zhang, and Darko Marinov. 2016. An Extensive Study of Static Regression Test Selection in Modern Software Evolution. In 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE). ACM, New York, NY, 583--594.
[17]
Alexandre R. Lenz, Aurora Pozo, and Silvia R. Vergilio. 2013. Linking software testing results with a machine learning approach. Engineering Applications of Artificial Intelligence 26, 5 (2013), 1631--1640.
[18]
Hang Li. 2011. Learning to Rank for Information Retrieval and Natural Language Processing. Morgan & Claypool, San Rafael, CA.
[19]
Long-Ji Lin. 1992. Self-improving reactive agents based on reinforcement learning, planning and teaching. Machine Learning 8, 3 (01 May 1992), 293--321.
[20]
Yijuan Lu, Ira Cohen, Xiang Sean Zhou, and Qi Tian. 2007. Feature selection using principal feature analysis. In 15th ACM International Conference on Multimedia (MM). ACM, New York, NY, 301--304.
[21]
Mike McGarr, Dianne Marsh, and the Developer Productivity team. 2017. Towards true continuous integration: distributed repositories and dependencies. https://medium.com/netflix-techblog/towards-true-continuous-integration-distributed-repositories-and-dependencies-2a2e3108c051
[22]
Atif Memon, Zebao Gao, Bao Nguyen, Sanjeev Dhanda, Eric Nickell, Rob Siemborski, and John Micco. 2017. Taming Google-Scale Continuous Testing. In IEEE/ACM 39th International Conference on Software Engineering: Software Engineering in Practice Track (ICSE-SEIP). IEEE, 233--242.
[23]
Ade Miller. 2008. A Hundred Days of Continuous Integration. In Agile 2008 Conference. IEEE, 289--293.
[24]
Douglas C. Montgomery. 1997. Introduction to statistical quality control (3 ed.). Wiley, New York, NY.
[25]
Y. Pang, X. Xue, and A. S. Namin. 2013. Identifying Effective Test Cases through K-Means Clustering for Enhancing Regression Testing. In 12th International Conference on Machine Learning and Applications. IEEE, 78--83.
[26]
Naren Ramakrishnan. 2009. The Pervasiveness of Data Mining asnd Machine Learning. Computer 42, 8 (Aug 2009), 28--29.
[27]
John H. Skillings and Gregory A. Mack. 1981. On the Use of a Friedman-Type Statistic in Balanced and Unbalanced Block Designs. Technometrics 23, 2 (1981), 171--177. http://www.jstor.org/stable/1268034
[28]
Helge Spieker, Arnaud Gotlieb, Dusica Marijan, and Morten Mossige. 2017. Reinforcement Learning for Automatic Test Case Prioritization and Selection in Continuous Integration. In 26th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA). ACM, New York, NY, 12--22.
[29]
Daniel Ståhl and Jan Bosch. 2013. Experienced benefits of continuous integration in industry software product development: A case study. In 12th IASTED International Conference on Software Engineering. ACTA Press, Calgary, 736--743.
[30]
Stephen W. Thomas, Hadi Hemmati, Ahmed E. Hassan, and Dorothea Blostein. 2014. Static Test Case Prioritization Using Topic Models. Empirical Software Engineering 19, 1 (2014), 182--212.
[31]
Michael E Tipping and Christopher M Bishop. 1999. Probabilistic principal component analysis. Journal of the Royal Statistical Society: Series B (Statistical Methodology) 61, 3 (1999), 611--622.
[32]
Paolo Tonella, Paolo Avesani, and Angelo Susi. 2006. Using the Case-Based Ranking Methodology for Test Case Prioritization. In 22nd IEEE International Conference on Software Maintenance (ICSM). IEEE, 10.
[33]
Hado Philip van Hasselt. 2012. Reinforcement Learning in Continuous State and Action Spaces. In Reinforcement Learning. Adaptation, Learning, and Optimization, M. Wiering and M. van Otterlo (Eds.), Vol. 12. Springer, Berlin, Heidelberg, 207--251.
[34]
Ting Wang and Tingting Yu. 2018. A Study of Regression Test Selection in Continuous Integration Environments. In 29th International Symposium on Software Reliability Engineering (ISSRE). IEEE, 135--143.
[35]
X. Yang, K. Tang, and X. Yao. 2015. A Learning-to-Rank Approach to Software Defect Prediction. IEEE Transactions on Reliability 64, 1 (2015), 234--246.
[36]
Shin Yoo and Mark Harman. 2012. Regression testing minimization, selection and prioritization: a survey. Software Testing, Verification and Reliability 22, 2 (2012), 67--120.
[37]
Du Zhang and Jeffrey J.P. Tsai. 2003. Machine Learning and Software Engineering. Software Quality Journal 11, 2 (2003), 87--119.

Cited By

View all

Index Terms

  1. Learning-to-rank vs ranking-to-learn: strategies for regression testing in continuous integration

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ICSE '20: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering
    June 2020
    1640 pages
    ISBN:9781450371216
    DOI:10.1145/3377811
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

    Sponsors

    In-Cooperation

    • KIISE: Korean Institute of Information Scientists and Engineers
    • IEEE CS

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 October 2020

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. continuous integration
    2. machine learning
    3. regression testing
    4. test prioritization
    5. test selection

    Qualifiers

    • Research-article

    Funding Sources

    • MIUR
    • FACEPE
    • CAPES
    • CNPq

    Conference

    ICSE '20
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 276 of 1,856 submissions, 15%

    Upcoming Conference

    ICSE 2025

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)145
    • Downloads (Last 6 weeks)10
    Reflects downloads up to 27 Dec 2024

    Other Metrics

    Citations

    Cited By

    View all

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media