Skip to content

s3nt3/sqlvine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SQLVINE: Coverage-Guided Fuzzing on TiDB

Author: Zengxian Ding

Introduction

SQLVine is a coverage-guided fuzzing framework based on golang native fuzzer for TiDB.

Background

Ensuring the quality of TiDB's SQL layer is a complex engineering problem. The existing test cases are not enough to fully cover the SQL layer. Fuzzing is an effective way to improve test coverage. We can use fuzzing to discover new code coverage that may be missed by existing test cases. However, the existing fuzzing tools for TiDB such as go-randgen, go-sqlsmith, sql-spider, and go-sqlancer are all generation-based fuzzing solutions. They are very powerful in generating SQL queries, but difficult to combine with other testing techniques to extend the test coverage. To solve this problem, we designed a coverage-guided fuzzing framework based on the new feature native fuzzer which will be introduced in golang 1.18 (Fuzzing is Beta Ready - The Go Programming Language).

Architecture

The architecture of the system can be seen through the data flow diagram, as shown below:

image

About

A coverage-guided fuzzing framework for TiDB.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published