Regression Testing

Steven J Zeil

Last modified: Dec 21, 2019


Regression testing monitors the changes, for better or worse, of the system as we make changes to it. Regression testing generally involves large numbers of tests, often selected as a mixture of test cases originally developed as unit, integration, and system tests.

In this lesson we will look at what is required for support of regression testing.

1 Regression Frameworks

What Makes a Testing Framework a Regression Framework?

Little agreement, but IMNSHO

Open Possibilities

1.1 DejaGnu

Test Results

Standard for test frameworks.

Possible outputs for any test:

Sample Test

set testdata {
   {"addition" "22 + 1" "23"}
   {"multiplication" "21 * 2" "42"}
   {"division" "14 / 3" "4"}
foreach pattern $testdata {
   eval "spawn ./calc [lindex $pattern 1]"
   expect {
     -re [lindex $pattern 2] {
              pass [lindex $pattern 0] }
     default {fail [lindex $pattern 0] }

Running DejaGnu

runtests --tool calcTests

runs all tests in the calcTests directory, producing output like:

 PASS addition
 PASS multiplication
 # of expected passes          12
 # of unexpected failures       2

1.2 fitnesse

Is fitnesse a Regression Framework?

Advertises itself as such.

2 Maveryx

Is Maveryx a Regression Framework?

Advertises itself as such.