Automated testing tool that finds logic and performance bugs in database management systems (DBMSs) through intelligent SQL generation and validation.
SQLancer is an automated testing tool that finds bugs in Database Management Systems (DBMSs). It generates SQL statements and uses various test oracles to detect logic errors, performance issues, crashes, and internal errors within the database implementation itself. The tool helps ensure database reliability by systematically uncovering defects that might otherwise go unnoticed.
Database developers, QA engineers, and researchers who need to test and validate the correctness and performance of database systems. It's particularly valuable for teams maintaining or developing DBMSs who want automated bug detection.
SQLancer provides a comprehensive, research-backed approach to DBMS testing with multiple specialized test oracles that can find deep logic bugs and performance issues. Its support for over 20 database systems and intelligent SQL generation makes it a powerful tool for improving database reliability.
Automated testing to find logic and performance bugs in database systems
Implements multiple research-backed techniques like TLP, NoREC, and DQP to detect deep logic bugs in DBMSs, as documented in peer-reviewed papers from venues like OOPSLA and SIGMOD.
Supports over 20 DBMSs including SQLite, PostgreSQL, and MySQL, with embedded systems like DuckDB requiring no separate installation due to included JAR dependencies.
Generates syntactically valid SQL with both unguided and feedback-guided approaches (e.g., QPG), enabling comprehensive test input generation for schemas, data, and queries.
Uses Cardinality Estimation Restriction Testing (CERT) to identify potential performance bugs by analyzing estimated query cardinalities, specifically for TiDB, CockroachDB, and MySQL.
Often does not support the latest DBMS versions, leading to false alarms or syntax errors; the FAQ admits users must check CI tests for supported versions and may encounter AssertionErrors.
Requires Java 11+ and Maven for building and running, which can be a barrier for teams not using the Java ecosystem, adding complexity to setup and integration.
Some approaches like Pivoted Query Synthesis are unmaintained, and bug reduction tools are marked as experimental (e.g., --ast-reducer), reducing reliability for production use.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.