Regression testing, which attempts to validate modified software and ensure
that no new errors are introduced into previously tested code, is used ext
ensively during maintenance of evolving software. Despite efforts to reduce
its cost, regression testing remains one of the most expensive activities
performed during a software system's lifetime. Because regression testing i
s important and expensive, many researchers have focused on ways to make it
more efficient and effective. Research on regression testing spans a wide
variety of topics, including test environments and automation, capture-play
back mechanisms, regression-test selection, coverage identification, test s
uite maintenance, regression testability, and regression-testing process. T
his paper discusses the state of the art in several important aspects of re
gression testing,and presents some promising areas for future research. (C)
1999 Elsevier Science Inc. All rights reserved.