froscon2010 - PREVIEW

Free and Open Source Software Conference

Philip Stoev
Day Day 1 - 2010-08-21
Room HS6
Start time 10:00
Duration 01:00
ID 610
Event type Lecture
Track OpenSQLCamp
Language used for presentation English

Testing Database Systems using the Random Query Generator

This talk will present the Random Query Generator, an open-source database testing framework that generates pseudo-random queries and then validates the correct operation of the database using various approaches.

The tool is currently being used in the MySQL and Drizzle projects, and will be introduced in MariaDB as well. Given its expressive power and practical effectiveness, it is hoped that other MySQL-derived or NoSQL projects will also adopt it.

The Random Query Generator takes a SQL grammar file and uses it to generate queries that are then executed against one or more database servers. Various facilities can be used to validate the outcome of each query and the general operation of the server, including comparison testing between different products, result set validation via Perl code, and automatic detection of common situations such as crashes, deadlocks and replication failures.

The tool is GA-quality and production-ready and has been used extensively in MySQL over the last two years to test various aspects of the server and its storage engines, especially the Optimizer as well as transactional consistency and locking correctness.

The use of a SQL grammar instead of individual, hard-coded SQL queries allows the RQG to cover more ground for the same amount of effort as compared to MTR (mysqltest). Further, the RQG comes with a set of ready-made tests, covering the Optimizer, DDL, replication, transactional consistency and recovery.

The talk will also describe some of the more general issues encountered when testing database systems and will present specific solutions and advice to both developers and testers.