Fetching the latest programs, projects, and workspace data.

Automatically testing database systems
Showing 5 of 6 projects. Click any project card for scope, mentors, and proposal studio.
Mentors: Student: Leyao Liu
This proposal addresses the complexity of deploying DBMS instances for testing with SQLancer—an issue that makes it challenging for beginners and hinders efficient bug reproduction. The project will deliver a suite of automated scripts that streamlines the entire process: from dynamically generating configuration files and Dockerfiles to building and running Docker containers, initializing databases, and executing SQLancer tests. By leveraging Python, Docker and other relevant automating technologies, the solution will enable a reproducible, user-friendly, and reliable testing workflow. Deliverables include an initial working prototype for automated DBMS deployment, enhanced modular scripts with configuration management and logging, comprehensive documentation, and optional CI/CD integration for continuous testing.
Mentors: Student: Yaojie Jia
SQLancer is a tool that automatically tests DBMS in order to find bugs in their implementations. As of right now, SQLancer supports many great database systems, however, some of the systems are outdated including one of the most frequently used databases: PostgreSQL. SQLancer supports Postgre version 12 which became end-of-life in Nov 2024 and many versions along with critical changes have been made since then. This project aims to advance SQLancer to support the latest version of Postgres (version 17) by removing necessary deprecations as well as adding new features, by the end of this project, SQLancer will support additional features such as JSON data types/functions, procedural extensions, advance error handling, and hopefully reiterate the upgrade to other databases
Mentors: Student: Jinhui Xu
SQLancer’s current test case reduction framework faces three key limitations: (1) tight coupling between internal reducers (Delta Debugging and AST-based), limiting extensibility; (2) structural unawareness in Delta Debugging, which treats SQL inputs linearly despite their hierarchical relationships; (3) narrow applicability due to engine-specific Reproducer dependencies (only SQLite3 supported). This project addresses these issues by introducing a modular Reducer<G> interface to decouple reduction strategies (supporting tools like C-Reduce/Perses), implementing Hierarchical Delta Debugging (HDD) to group SQL statements by logical dependencies (improving efficiency from O(n²) to O(n log n)), and automating external reducer integration through dynamic script generation. Deliverables include the modular interface, HDD-preprocessed reducers, C-Reduce/Perses adapters, and comprehensive tests/documentation.
Mentors: Student: Dongqiao Huang
SQLancer is a tool to automatically test Database Management Systems (DBMSs) in order to find bugs in their implementation. That is, it finds bugs in the code of the DBMS implementation, rather than in queries written by the user. SQLancer has found hundreds of bugs in mature and widely-known DBMSs. DQE is a method for systematically detecting logical errors in UPDATE and DELETE queries. Integrating Published Testing Approaches into SQLancer makes up for the limitation of existing tools (such as PQS, NoREC, TLP) that only target SELECT queries, and significantly improves SQLancer's vulnerability detection capabilities.
Mentors: Student: Zhenglin Li
SQLancer is an open-source tool for testing the correctness of SQL database systems and supports close to 20 database systems. The goal of this project is to add support for one or more new database systems to SQLancer and test them to find potential bugs. As for which DBMS to add support for, I would like to firstly choose StoneDB, which is being actively maintained and their community showed their interest of being support by SQLancer. What’s more, StoneDB is just the primary choose. If we have time, we can also add support to other DBMS. The project Proposal will consist of four main stages: 1)Choose a DBMS 2)Implementation of selected DBMS 3)Refactoring existing code 4)Testing and reporting