Checking inside the black box: Regression testing based on value spectra differences

Tao Xie, David Notkin

Research output: Contribution to conferencePaperpeer-review

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 languageEnglish (US)
Pages28-37
Number of pages10
StatePublished - 2004
Externally publishedYes
EventProceedings - 20th IEEE International Conference on Software Maintenance, ICSM 2004 - Chicago, IL, United States
Duration: Sep 11 2004Sep 14 2004

Other

OtherProceedings - 20th IEEE International Conference on Software Maintenance, ICSM 2004
Country/TerritoryUnited States
CityChicago, IL
Period9/11/049/14/04

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'Checking inside the black box: Regression testing based on value spectra differences'. Together they form a unique fingerprint.

Cite this