Abstract

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.