Browse Prior Art Database

Efficient Method to Reduce Regression Test Suite

IP.com Disclosure Number: IPCOM000118541D
Original Publication Date: 1997-Mar-01
Included in the Prior Art Database: 2005-Apr-01
Document File: 4 page(s) / 122K

Publishing Venue

IBM

Related People

Barrett, A: AUTHOR [+4]

Abstract

A regression test suite is a suite of tests designed to verify that a design is bug-free. In system simulation, regression test suites are used very frequently as the system is debugged. Finding a right set of tests to form a regression test suite is therefore very important. In general, this is done as follows: the designers are asked to define a set of critical events that they think are important and, therefore, should be achieved during system simulation. Then, some means is used during system simulation to see if these events are indeed seen. The tests that help achieve these events during system simulation form the regression test suite.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 51% of the total text.

Efficient Method to Reduce Regression Test Suite

      A regression test suite is a suite of tests designed to verify
that a design is bug-free.  In system simulation, regression test
suites are used very frequently as the system is debugged.  Finding a
right set of tests to form a regression test suite is therefore very
important.  In general, this is done as follows: the designers are
asked to define a set of critical events that they think are
important and, therefore, should be achieved during system
simulation.  Then, some  means is used during system simulation to
see if these events are indeed  seen.  The tests that help achieve
these events during system simulation  form the regression test
suite.

      No matter how these events are defined, the real problem is:
given a set of tests that hit a given set of events, how to come up
with a compact set of tests to form the regression test suite so that
simulation needs to be run for only a small number of cycles.  This
disclosure proposes an efficient algorithm to define a regression
test suite that tries to minimize the number of simulation cycles to
run.

      The algorithm proposed below is used after all events of
interest that have been encountered in simulations after running a
set of tests.  Assume that a tool is available to detect when an
event is encountered during simulation and to log the simulation
cycle at which  each event was seen by each testcase.  Therefore, for
each test that is  run, a log of events is seen during system
simulation and the cycle numbers at which they were seen.

      The algorithm is best explained using a running example.  A set
of rules is given for use in computing the regression suite as
progress is made.  The Rule 0 Fig. gives an example of a set of tests
that were  run on an imaginary system and shows the simulation cycles
at which certain events were seen.

      RULE 0: For every test (row), find the minimum cycle number at
which an event is hit and mark it in a separate column at the right
as shown in Rule 1 Fig.

      RULE 1: If an event is seen by ONLY one test, then that test
must belong to the regression test suite; that test must be run for
at least the number of cycles at which the event of interest is seen.
Test that MUST belong to a regression test suite must be chosen
first.

      In the example above, Event 5 is seen only by Test
3.  Therefore, Test 3 must be chosen and must be run for at least 600
cycles.  As a result, Events 2-3 will be got for free because Test 3
also makes these events happen before cycle 600.  This leaves Events
1, 4 and 6-9 yet to be covered by tests.

      RULE 2: If a test is chosen and will be made to run for X
cycles, then all events seen by the chosen test after cycle X must be
marked in the table as a delta to X.  The reason behind this rule is
that, since the chosen test will be run anyway, it takes only a few
more cycles (delta) to see these ext...