Finding Min-Repros in Database Software

Nicolas Bruno and Rimma Nehme


Testing and debugging database system applications is often

challenging and time consuming. A database tester (or DB

tester for short) has to detect a problem, determine why it

happened, set up an environment to reproduce it, and then

create a fix to resolve the problem. In many cases, problems

appear in very complex scenarios, and thus the reproduction

of a problem may be large and difficult to understand. This

makes the task of finding the root cause of the problem very

difficult. As a consequence, a very time-consuming task for

DB testers is finding a min-repro – a process of weeding out

irrelevant inputs and finding the simplest way to reproduce a

problem. Currently, a great deal of searching for a min-repro

is carried out manually, which is both slow and error-prone.

In this paper, we present a system designed to ease find-

ing min-repros in database-related products. The system

employs a number of tools for min-repro search, including:

novel simplification transformations, a high-level script lan-

guage to automate sub-tasks and to guide the search, record-

and-replay functionality, and an intuitive representation of

results and the search space. These tools can save hours

of time (for both customers and testers to isolate the prob-

lem), which could lead to faster fixes and large cost savings

to organizations. Our min-repro system can be executed in

two modes: (1) application mode and (2) game mode. The

complexity and the tediosness of debugging has prompted us

to explore the potential for a “game-like” approach to min-

repro search. Inspired in part by the fact that humans enjoy

“fun applications” and by the prevalence of long-term play

of computer games, we believe that a game-like approach

could help make the process of searching for a min repro

more enjoyable and possibly help find min-repros faster.


Publication typeArticle
Published inDBTest
PublisherAssociation for Computing Machinery, Inc.
> Publications > Finding Min-Repros in Database Software