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.
- B. Beizer. Software Testing Techniques. John Wiley & Sons, Inc., New York, NY, USA, 1990. Google ScholarDigital Library
- http://www.w3.org/TR/xexpr/.Google Scholar
- T. J. Ostrand and M. J. Balcer. The category-partition method for specifying and generating fuctional tests. Communications of the ACM, 31 (6):676--686, 1988. Google ScholarDigital Library
- S. Reid. The art of software testing, second edition. Software Testing, Verification and Reliability, 15(2):136--137, 2005. Google ScholarDigital Library
- L. Von Ahn and L. Dabbish. Designing games with a purpose. Communications of the ACM, 51(8):58--67, 2008. Google ScholarDigital Library
- A. Zeller and R. Hildebrandt. Simplifying and isolating failure-inducing input. IEEE Transactions on Software Engineering, 28(2):183--200, 2002. Google ScholarDigital Library
Index Terms
- Finding min-repros in database software
Recommendations
Minimizing database repros using language grammars
EDBT '10: Proceedings of the 13th International Conference on Extending Database TechnologyDatabase engines and database-centric applications have become complex software systems. Ensuring bug-free database services is therefore a very difficult task. Whenever possible, bugs that are uncovered during testing are associated with a repro, or ...
Comments