Table of Contents
Fetching ...

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

I3DE: An IDE for Inspecting Inconsistencies in PL/SQL Code

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
Paper Structure (11 sections, 5 figures, 4 tables)

This paper contains 11 sections, 5 figures, 4 tables.

Figures (5)

  • Figure 1: SQL injection example caused by inconsistency.
  • Figure 2: Overview of the method.
  • Figure 3: Architecture of IntelliJ Platform and I3DE.
  • Figure 4: Snapshots of I3DE static mode (a) and dynamic mode (b).
  • Figure 5: User study task designed based on inconsistency caused by overlook.