Workshop on Dependable and Secure Software Systems 2019
Databases are used ubiquitously for storing, processing and retrieving data. Software applications access them using database management systems (DBMS), which support dialects of a domain-specific language, namely the Structured Query Language (SQL). Thus, the reliability of DBMS is critical for application safety and correctness. This talk presents our ongoing work on developing effective techniques to tackle the challenging problem of testing production DBMS. We specifically target logic bugs in DBMS, such as when a processed SQL query returns an incorrect record. This talk presents pivoted query synthesis (PQS), a novel, fully automated, highly effective technique, and our experience applying PQS in finding over 100 confirmed/fixed bugs in three mature, widely-used DBMS, SQLite, MySQL, and PostgreSQL.