2002 · 124 citations · 19 references
ComputingComputer ScienceComputer SystemsProgramming LanguagesSoftware EngineeringTest ConstructionComputer-based TestingControl-flow AnalysisData-flow AnalysisSoftware TestingAutomated Test GenerationControl DependenceControl GraphsMaintenanceProgram Dependence GraphsRegression Test SelectionTest GenerationTest Selection
Regression testing is a necessary but costly maintenance activity aimed at demonstrating that code has not been adversely affected by changes. A selective approach to regression testing selects tests for a modified program from an existing test suite. A new technique for selective regression testing is presented. The proposed algorithm constructs control dependence graphs for program versions and uses these graphs to determine which tests from the existing test suite may exhibit changed behavior on the new version. Unlike most previous techniques for selective retest, the algorithm selects every test from the original test suite that might expose errors in the modified program, and does this without prior knowledge of program modifications. The algorithm handles all language constructs and program modifications and is easily automated.< <ETX xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">></ETX>
19
The use of program dependence graphs in software engineering
Susan Horwitz, Thomas Reps · 1992 · 261 citations
Incremental program testing using program dependence graphs
Samuel Bates, Susan Horwitz · 1993 · 224 citations