Share on Facebook Tweet on Twitter Share on LinkedIn Share by email
Finding Min-Repros in Database Software

Nicolas Bruno and Rimma Nehme

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.

Details

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