arrow
Return

Checking inside the black box: Regression testing by comparing value spectra

delete2005-10-01
delete40
PRE
AI
Tao Xie cover
Tao Xie (Tao Xie)
D
David Notkin
DOI:10.1109/TSE.2005.107delete
deleteOriginal
deleteOriginal request for help
deleteShare
deleteSave
Abstract

Abstract

En 中文
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:
program spectra
regression testing
software testing
empirical studies
software maintenance
AI Summary

AI Summary

Key information extracted from the uploaded paper, including a brief overview, abstract, background, key highlights, visual analysis, and future outlook.

Journal

IEEE Transactions on Software Engineering cover
IEEE Transactions on Software Engineering
IF:
5.6
Papers:
2.9K
Citations:
1.1W

Organization

No organization information available
Cited Papers

Cited Papers

errShare
errSave
Prioritizing test cases for regression testing
err2001-10-01
err828
PREAI
errRothermel, G; Untch, RH; Harrold, MJ
errShare
errSave
Relative debugging: A new methodology for debugging scientific applications
err1996-11-01
err21
errOAAI
errAbramson, D; Foster, I; Michalakes, J; Sosic, R
errShare
errSave
errShare
errSave
Shared resources and disease dynamics in spatially structured populations
err2014-01-01
err0
PREAI
errCharles L. Nunn; Peter H. Thrall; Peter M. Kappeler
errShare
errSave
researcher View more