Finding Min-Repros in Database Software
- Nicolas Bruno ,
- Rimma V. Nehme
DBTest |
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 finding 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 language 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 problem), 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 minrepro 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.
Copyright © 2007 by the Association for Computing Machinery, Inc. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Publications Dept, ACM Inc., fax +1 (212) 869-0481, or permissions@acm.org. The definitive version of this paper can be found at ACM's Digital Library --http://www.acm.org/dl/.