Improving Reliability of JDBC Drivers

Abstract

Java Database Connectivity (JDBC) drivers are software components that enable Java applications to interact with relational database systems. The numerous APIs potentially introduce significant complexity and might make JDBC drivers prone to bugs. This study holds importance as JDBC drivers have been widely used in Java applications, the reliability of JDBC drivers have large impact on the security of those applications. We propose an automated testing approach based on a state-machine model, enabling the automatic generation of test cases specifically designed to differentially test various JDBC drivers. Thus, the key conceptual challenge was to tackle the so-called test oracle and test-case generation problems. The test oracle problem is the challenge of determining the correct outcome or expected result for a given test case, while the test generation problem involves creating effective test cases to thoroughly exercise a system or software. The primary findings of this research effort include the discovery of two bugs within the DuckDB JDBC driver, which were subsequently verified and confirmed by the developers. Additionally, the study has unearthed several previously unnoticed discrepancies in the behaviors exhibited by various JDBC drivers. Overall, this dissertation introduces a pragmatic approach to testing JDBC drivers, which can help identify and address critical issues in these drivers. This research contributes to the quest for dependable database connectivity within Java applications.

Date
Nov 6, 2023 1:00 PM — 2:00 PM
Event
Weekly Talk
Location
NUS SoC
Anxing Zhang
Anxing Zhang
Master Student

Anxing Zhang is a master student working on testing JDBC drivers.