DocumentCode :
1238832
Title :
Checking inside the black box: regression testing by comparing value spectra
Author :
Xie, Tao ; Notkin, David
Author_Institution :
Dept. of Comput. Sci., North Carolina State Univ., Raleigh, NC, USA
Volume :
31
Issue :
10
fYear :
2005
Firstpage :
869
Lastpage :
883
Abstract :
Comparing behaviors of program versions has become an important task in software maintenance and regression testing. Black-box program outputs have been used to characterize program behaviors and they are compared over program versions in traditional regression testing. 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 behavioral differences between versions. In this paper, we present a new class of program spectra, value spectra, that enriches the existing program spectra family. We compare the value spectra of a program´s old version and new version to detect internal behavioral 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 behavioral deviations. We also use path spectra (previously proposed program spectra) to approximate the program states in value spectra. We then similarly compare path spectra to detect behavioral deviations and locate deviation roots in the new version. We have conducted an experiment on eight C programs to evaluate our spectra-comparison approach. The results show that both value-spectra-comparison and path-spectra-comparison approaches can effectively expose program behavioral differences between program versions even when their program outputs are the same, and our value-spectra-comparison approach reports deviation roots with high accuracy for most programs.
Keywords :
formal verification; program testing; regression analysis; software maintenance; C program; black-box program; deviation-propagation call tree; path-spectra-comparison; program behavior; program spectra; program version; regression testing; software maintenance; value-spectra-comparison; Fault diagnosis; Optimizing compilers; Program processors; Propagation losses; Software maintenance; Software testing; Index Terms- Program spectra; empirical studies; regression testing; software maintenance.; software testing;
fLanguage :
English
Journal_Title :
Software Engineering, IEEE Transactions on
Publisher :
ieee
ISSN :
0098-5589
Type :
jour
DOI :
10.1109/TSE.2005.107
Filename :
1542068
Link To Document :
بازگشت