Abstract
Comparing behaviors of program versions has become an important task in software maintenance and regression testing. Traditional regression testing strongly focuses on black-box comparison of program outputs. Program spectra have recently been proposed to characterize a program 's behavior inside the black box. Comparing program spectra of program versions offers insights into the internal behavior differences between versions. In this paper, we present a new class of program spectra, value spectra, which enriches the existing program spectra family. We compare the value spectra of an old version and a new version to detect internal behavior deviations in the new version. We use a deviation-propagation call tree to present the deviation details. Based on the deviation-propagation call tree, we propose two heuristics to locate deviation roots, which are program locations that trigger the behavior deviations. We have conducted an experiment on seven C programs to evaluate our approach. The results show that our approach can effectively expose program behavior differences between versions even when their program outputs are the same, and our approach reports deviation roots with high accuracy for most programs.
Original language | English (US) |
---|---|
Pages | 28-37 |
Number of pages | 10 |
State | Published - 2004 |
Externally published | Yes |
Event | Proceedings - 20th IEEE International Conference on Software Maintenance, ICSM 2004 - Chicago, IL, United States Duration: Sep 11 2004 → Sep 14 2004 |
Other
Other | Proceedings - 20th IEEE International Conference on Software Maintenance, ICSM 2004 |
---|---|
Country/Territory | United States |
City | Chicago, IL |
Period | 9/11/04 → 9/14/04 |
ASJC Scopus subject areas
- Software