DevOps Enhancement with Continuous Test Optimization

Growing evidence suggests the DevOps approach enables faster development and deployment, and easier maintenance of applications. Still, the efficiency of DevOps is constrained by long cycle times. This paper presents the approach for improving time-efficiency in DevOps, and in particular continuous integration testing, using continuous test optimization. The approach uses test redundancy analysis to discover test overlap with respect to feature interaction coverage, and based on detected redundancy to reduce the size of a test suite. Smallersize test suites execute faster and enable shorter test cycles, which further enables shorter release cycles. The approach has been experimentally evaluated using an industrial case study, against three metrics: industry practice of test selection for continuous integration testing, retest-all approach, and random test selection. The results suggest that the proposed test redundancy detection and reduction efficiently reduces test cycles in CI compared to industry practice and retest-all approach, and improves faultdetection effectiveness compared to random test selection.

[1]  A. Jefferson Offutt,et al.  An evaluation of combination strategies for test case selection , 2006, Empirical Software Engineering.

[2]  Mika Mäntylä,et al.  The highways and country roads to continuous deployment , 2015, IEEE Software.

[3]  Giuliano Casale,et al.  Towards a DevOps Approach for Software Quality Engineering , 2015, WOSP '15.

[4]  Mary Jean Harrold,et al.  An empirical study of the effects of test-suite reduction on fault localization , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[5]  Alessandro Orso,et al.  MINTS: A general framework and tool for supporting test-suite minimization , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[6]  Kuan-Li Peng,et al.  A history-based cost-cognizant test case prioritization technique in regression testing , 2012, J. Syst. Softw..

[7]  Premkumar T. Devanbu,et al.  Quality and productivity outcomes relating to continuous integration in GitHub , 2015, ESEC/SIGSOFT FSE.

[8]  Ade Miller,et al.  A Hundred Days of Continuous Integration , 2008, Agile 2008 Conference.

[9]  Gregg Rothermel,et al.  An empirical study of the effects of minimization on the fault detection capabilities of test suites , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[10]  Adam A. Porter,et al.  A history-based test prioritization technique for regression testing in resource constrained environments , 2002, ICSE '02.

[11]  Gregg Rothermel,et al.  Empirical studies of test‐suite reduction , 2002, Softw. Test. Verification Reliab..

[12]  Darko Marinov,et al.  Trade-offs in continuous integration: assurance, security, and flexibility , 2017, ESEC/SIGSOFT FSE.

[13]  Liming Zhu,et al.  DevOps - A Software Architect's Perspective , 2015, SEI series in software engineering.

[14]  Dusica Marijan,et al.  Test Prioritization with Optimally Balanced Configuration Coverage , 2017, 2017 IEEE 18th International Symposium on High Assurance Systems Engineering (HASE).

[15]  W. Eric Wong,et al.  Effect of test set minimization on fault detection effectiveness , 1998 .

[16]  Dusica Marijan,et al.  Effect of Time Window on the Performance of Continuous Regression Testing , 2016, 2016 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[17]  Arnaud Gotlieb,et al.  FLOWER: optimal test suite reduction as a network maximum flow , 2014, ISSTA 2014.

[18]  Joseph Robert Horgan,et al.  Test set size minimization and fault detection effectiveness: A case study in a space application , 1999, J. Syst. Softw..

[19]  Arnaud Gotlieb,et al.  Test Case Prioritization for Continuous Regression Testing: An Industrial Case Study , 2013, 2013 IEEE International Conference on Software Maintenance.

[20]  Gregg Rothermel,et al.  Techniques for improving regression testing in continuous integration development environments , 2014, SIGSOFT FSE.