PofoliaShared via Pofolia

· 2014

Techniques for improving regression testing in continuous integration development environments

Sebastian Elbaum, Gregg Rothermel, John Penix

Short summary

New algorithms for regression test selection and prioritization can make continuous integration (CI) processes more cost-effective by reducing testing time without relying on code coverage.

AI-generated from the title and abstract; the full text is not read.

Key points

  • Regression test selection reduces the number of tests run in a pre-submit phase of CI.
  • Test case prioritization speeds up failure detection in a post-submit phase of CI.
  • Both techniques are computationally inexpensive and do not rely on code coverage information.
  • An empirical study on a Google dataset validated the cost-effectiveness improvements of these techniques.

AI-generated from the title and abstract; the full text is not read.

Abstract

In continuous integration development environments, software engineers frequently integrate new or changed code with the mainline codebase. This can reduce the amount of code rework that is needed as systems evolve and speed up development time. While continuous integration processes traditionally require that extensive testing be performed following the actual submission of code to the codebase, it is also important to ensure that enough testing is performed prior to code submission to avoid breaking builds and delaying the fast feedback that makes continuous integration desirable. In this work, we present algorithms that make continuous integration processes more cost-effective. In an initial pre-submit phase of testing, developers specify modules to be tested, and we use regression test selection techniques to select a subset of the test suites for those modules that render that phase more cost-effective. In a subsequent post-submit phase of testing, where dependent modules as well as changed modules are tested, we use test case prioritization techniques to ensure that failures are reported more quickly. In both cases, the techniques we utilize are novel, involving algorithms that are relatively inexpensive and do not rely on code coverage information -- two requirements for conducting testing cost-effectively in this context. To evaluate our approach, we conducted an empirical study on a large data set from Google that we make publicly available. The results of our study show that our selection and prioritization techniques can each lead to cost-effectiveness improvements in the continuous integration process.

The authors' abstract, as published at the source., 2014 · DOI ↗

TakeawaysPremium
Ask the paperFree account

Continue with a free account

Ask the paper: 3 free questions a day about this paper; save it, get its citation, new summaries every day for your field. Takeaways are Premium.

Continue free on the web

Sign in with Google or Apple; no card needed. You come back to this paper.

On your phone:

Field: Software

SoftwareComputer Science