Change-effects Analysis for Effective Testing and Validation of Evolving Software

March 1, 2011

Raul Santelices


Change-effects Analysis for Effective Testing and Validation of Evolving Software

Time:   11:00am
Location:   IMDEA conference room

Software is constantly modified during its life cycle, posing serious risks because changes might not behave as expected or might introduce erroneous side effects. Regression testing can be used to identify existing functionality broken by changes, but it does not necessarily discover new effects introduced by changes. To test these new effects, developers must augment the existing test suite (i.e., assess this test suite and create new tests as needed).

In this talk, I will present my work on change-effects analysis, a new kind of program analysis that enables test-suite augmentation and program merging, among other tasks. Change-effects analysis uses dependence analysis and symbolic execution to compute the conditions under which the program state is modified by a change and this effect propagates through the rest of the program. These conditions describe not only which program elements are affected by changes but also how those elements are affected. I will also discuss a new method for symbolically executing program paths in groups instead of individually, which improves the scalability of change-effects analysis and has many other exciting applications. I will present empirical results showing that change-effects analysis is much more effective than traditional methods for testing changes and detecting conflicts during program merging. I will conclude this talk by discussing challenges and opportunities for future research on change-effects analysis.