Skip to content

An automated testing tool to find logic bugs in JDBC connectors.

License

Notifications You must be signed in to change notification settings

THU-WingTecher/Coni

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

Coni

Coni is an automated testing tool for database connectors. It reads the pre-defined connector state model and then generates semantically correct test cases based on the model. Coni utilizes differential testing to detect bugs in database connectors. Specifically, Coni compares whether the results from MariaDB Connector/J and AWS MySQL JDBC are consistent with those from MySQL Connector/J, and whether the results from PG JDBC are consistent with PG JDBC NG.

Coni-supported connectors:

  • MySQL Connector/J
  • MariaDB Connector/J
  • AWS MySQL JDBC
  • PG JDBC
  • PG JDBC NG

Getting Started

Requirements:

  • Java 17 or above
  • Maven (sudo apt install maven on Ubuntu)
  • Docker (sudo apt install docker-ce on Ubuntu)
  • The corresponding DBMSs for testing database connectors (i.e., MySQL for MySQL Connector/J)

The default run time is one hour. Running the following commands to start Coni:

cd Coni
docker compose up
mvn clean package
mvn dependency:copy-dependencies
java -classpath "target/Coni-1.0-SNAPSHOT.jar:target/dependency/*" Main ./property/mysql_cp.properties

Coni prints progress information every minute. The inconsistent behaviors detected during testing are categorized and output to the /out directory. The argument passed to Main is the config file path.

Additional Documentation

Coni JDBC State Model

Citation

If you are interested in this work, please feel free to leave a star or cite us through:

@inproceedings{deng2025coni,
  title={CONI: Detecting Database Connector Bugs via State-Aware Test Case Generation},
  author={Deng, Wenqian and Liang, Jie and Wu, Zhiyong and Fu, Jingzhou and Wang, Mingzhe and Jiang, Yu},
  booktitle={Proceedings of the IEEE/ACM 47th International Conference on Software Engineering},
  pages={1--12},
  year={2025}
}

About

An automated testing tool to find logic bugs in JDBC connectors.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages