I3DE: An IDE for Inspecting Inconsistencies in PL/SQL Code
Jiangshan Liu, Shuang Liu, Junjie Chen
TL;DR
This work tackles inconsistencies between PL/SQL semantics and actual DBMS implementations by introducing I3DE, an IntelliJ-based IDE plugin that uses metamorphic testing to detect inconsistencies. It translates PL/SQL to equivalent SQL, executes both in the same environment, and compares results, complemented by fuzz testing to broaden coverage. I3DE offers static inspection with eight predefined patterns and a dynamic mode that runs runtime metamorphic tests, delivering actionable warnings and fixes within the IDE. A user study with 16 participants demonstrates substantial gains in correctness and efficiency, indicating I3DE’s practical value for PL/SQL development and its potential to reduce semantic mismatches across DBMS implementations.
Abstract
In this paper, we introduce I3DE (Inconsistency Inspecting IDE) - an IDE plugin to inspect inconsistencies in PL/SQL code. We first observed the potential issues, e.g., misuses or bugs, that are introduced by the inconsistent understanding of PL/SQL semantics by PL/SQL programmers and DBMS developers, and propose a metamorphic testing-based approach for inspecting such inconsistencies in PL/SQL code. We design and implement our approach in I3DE, a widely usable plugin for the IntelliJ Platform. We conducted a comparative user study involving 16 participants, and the findings indicate that I3DE is consistently effective and efficient in helping programmers identify and avoid inconsistencies across different programming difficulties
