Finding min-repros in database software

  • Authors:
  • Nicolas Bruno;Rimma V. Nehme

  • Affiliations:
  • Microsoft Research;Purdue University

  • Venue:
  • Proceedings of the Second International Workshop on Testing Database Systems
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

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 complex scenarios, and thus the setup to reproduce a problem may be large and difficult to understand. This makes the task of finding the root cause of a problem very challenging. As a consequence, a very arduous task for a DB tester 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 minrepros is carried out manually using non-database-specific tools, which is both slow and error-prone. In this paper, we present a system designed to ease and speed up searches for minrepros in database-related products. The min-repro system employs several effective tools, including: the novel simplification transformations, the high-level language for creating custom scripts and automation, the record-and-replay functionality, and the visualization of results and the search space. In addition to the standard application mode, the min-repro system can be interacted with in the game mode. The latter can provide an intrinsically motivating environment for developing successful search strategies, which can be data-mined and generalized into search patterns and used as recommendations for DB testers.