“Change-Effects Analysis for
Effective Testing and Validation of Evolving Software”
Raul Santelices, Georgia Tech
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. My work includes 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.
Raul Santelices is a Georgia Tech PhD candidate advised by Dr. Mary Jean Harrold. He has a master’s in computer science and has worked as a software engineer in the video-game and education-technologies industries. He developed and taught a software architecture course for three years and received a best paper award and an ACM SIGSOFT distinguished paper award at ASE 2008. His current academic interests include software systems in general and program analysis in particular.
[an error occurred while processing this directive]