Skip to main navigation Skip to search Skip to main content

Regression Testing of Evolving Programs

  • Marcel Böhme
  • , Abhik Roychoudhury
  • , Bruno C.d.S. Oliveira

Research output: Contribution to journalArticleResearchpeer-review

Abstract

Software changes, such as bug fixes or feature additions, can introduce software bugs and reduce the code quality. As a result tests which passed earlier may not pass any more-thereby exposing a regression in software behavior. This survey overviews recent advances in determining the impact of the code changes onto the program's behavior and other syntactic program artifacts. Static program analysis can help determining change impact in an approximate manner while dynamic analysis determines change impact more precisely but requires a regression test suite. Moreover, as the program is changed, the corresponding test suite may, too. Some tests may become obsolete while other tests are to be augmented that stress the changes. This article surveys such test generation techniques to stress and propagate program changes. It concludes that a combination of dependency analysis and lightweight symbolic execution show promise in providing powerful techniques for regression test generation.

Original languageEnglish
Pages (from-to)53-88
Number of pages36
JournalAdvances in Computers
Volume89
DOIs
Publication statusPublished - 27 Mar 2013
Externally publishedYes

Keywords

  • Change impact
  • Program dependencies
  • Software regressions
  • Symbolic execution
  • Test suite augmentation
  • Testing

Cite this