Editorial Ilmu Komputer & AI
Open AccessOA2026
Mendeteksi Bug DBMS dengan Membangun Representasi Ekuivalen dari Hasil Kueri Antara
ERIQ: Pendekatan pengujian diferensial yang mengungkap bug logika DBMS melalui konsistensi hasil lintas representasi VIEW, CTE, dan TEMPT
Xiaoxu Niu; Gong Chen; Jinfu Chen; Xiaoyuan Xieยท 2026ยท DOI 10.48550/arXiv.2608.30385
Masalah inti
Database Management System (DBMS) menyediakan beberapa mekanisme SQL untuk merepresentasikan hasil kueri antara, terutama VIEW, Common Table Expression (CTE), dan Temporary Table (TEMPT). Ketika mekanisme-mekanisme ini digunakan untuk menyatakan hasil antara yang sama, kueri yang bersangkutan secara semantik ekuivalen dan seharusnya mengembalikan hasil yang konsisten. Namun, penulis mengamati bahwa kueri semacam itu dapat mengembalikan hasil yang tidak konsisten, yang menandakan potensi bug logika pada DBMS. Pendekatan yang ada untuk mendeteksi bug logika DBMS belum pernah mengeksplorasi konsistensi hasil lintas representasi ekuivalen tersebut. Makalah ini mengusulkan ERIQ, pendekatan pengujian baru yang mendeteksi bug logika DBMS dengan memeriksa konsistensi hasil lintas Equivalent Representations of Intermediate Query Results. Wawasan intinya adalah jika DBMS mengimplementasikan semantik VIEW, CTE, dan TEMPT dengan benar, maka kueri apa pun yang menggunakan salah satu mekanisme ini untuk merepresentasikan hasil antara tertentu seharusnya menghasilkan keluaran akhir yang sama dengan kueri yang menggunakan mekanisme lain untuk hasil antara yang sama. Setiap ketidaksesuaian mengungk
Inovasi
ERIQ dievaluasi pada empat DBMS open-source yang banyak digunakan: MySQL, MariaDB, Percona, dan OceanBase. Evaluasi mendeteksi total 64 bug. Di antaranya, 63 bug dikonfirmasi oleh pengembang, dan dua telah diperbaiki pada saat penulisan. Bug yang dikonfirmasi mencakup 54 bug logika unik yang sebelumnya tidak diketahui, dan satu masalah dokumentasi. Distribusi bug di antara DBMS tidak dirinci dalam abstrak, tetapi tingkat konfirmasi yang tinggi (63 dari 64) menunjukkan efektivitas pendekatan ini. Fakta bahwa 54 bug sebelumnya tidak diketahui menyoroti kebaruan dimensi pengujian ini. Dua bug yang telah diperbaiki menunjukkan bahwa masalah yang dilaporkan dapat ditindaklanjuti dan mengarah pada perbaikan DBMS. Hasil ini juga menunjukkan bahwa ketidakkonsistenan hasil lintas representasi ekuivalen merupakan masalah nyata dan lazim dalam implementasi DBMS. Penulis kemungkinan menyediakan rincian jenis bug dan akar penyebabnya dalam makalah lengkap, tetapi abstrak hanya merangkum jumlah keseluruhan. Evaluasi menegaskan bahwa ERIQ dapat mengungkap bug logika mendalam yang mungkin terlewat oleh metode pengujian tradisional.
Database Management System (DBMS) menyediakan beberapa mekanisme SQL untuk merepresentasikan hasil kueri antara, terutama VIEW, Common Table Expression (CTE), dan Temporary Table (TEMPT). Ketika mekanisme-mekanisme ini digunakan untuk menyatakan hasil antara yang sama, kueri yang bersangkutan secara semantik ekuivalen dan seharusnya mengembalikan hasil yang konsisten. Namun, penulis mengamati bahwa kueri semacam itu dapat mengembalikan hasil yang tidak konsisten, yang menandakan potensi bug logika pada DBMS. Pendekatan yang ada untuk mendeteksi bug logika DBMS belum pernah mengeksplorasi konsistensi hasil lintas representasi ekuivalen tersebut. Makalah ini mengusulkan ERIQ, pendekatan pengujian baru yang mendeteksi bug logika DBMS dengan memeriksa konsistensi hasil lintas Equivalent Representations of Intermediate Query Results. Wawasan intinya adalah jika DBMS mengimplementasikan semantik VIEW, CTE, dan TEMPT dengan benar, maka kueri apa pun yang menggunakan salah satu mekanisme ini untuk merepresentasikan hasil antara tertentu seharusnya menghasilkan keluaran akhir yang sama dengan kueri yang menggunakan mekanisme lain untuk hasil antara yang sama. Setiap ketidaksesuaian mengungkap bug logika pada DBMS. Makalah ini mengevaluasi ERIQ pada empat DBMS open-source yang banyak digunakan: MySQL, MariaDB, Percona, dan OceanBase. Secara total, ERIQ mendeteksi 64 bug, 63 di antaranya dikonfirmasi oleh pengembang, dan dua telah diperbaiki. Di antara bug yang dikonfirmasi, 54 merupakan bug logika unik yang sebelumnya tidak diketahui, dan satu merupakan masalah dokumentasi. Karya ini memperkenalkan dimensi baru untuk pengujian DBMS dan menunjukkan efektivitasnya dalam praktik.
ERIQ bekerja dengan membangun varian SQL yang merepresentasikan hasil kueri antara yang sama menggunakan VIEW, CTE, atau TEMPT. Pendekatan ini terdiri dari tiga langkah utama: (1) menghasilkan kueri dasar yang menghitung hasil antara, (2) menulis ulang kueri agar menggunakan masing-masing dari tiga mekanisme untuk merepresentasikan hasil antara tersebut, dan (3) mengeksekusi varian-varian itu dan membandingkan hasil yang dikembalikan. Jika hasilnya berbeda, potensi bug logika dilaporkan. Proses ini dapat diformalkan sebagai berikut. Misalkan adalah kueri yang menghitung hasil antara . ERIQ menghasilkan tiga kueri ekuivalen: , , dan , masing-masing merepresentasikan menggunakan mekanisme yang bersangkutan. Perilaku yang diharapkan adalah untuk setiap instans basis data , himpunan hasil memenuhi:
Mengapa penting
Hasil ini menunjukkan bahwa memeriksa konsistensi hasil lintas representasi ekuivalen dari hasil kueri antara merupakan pendekatan yang ampuh dan sebelumnya belum dieksplorasi untuk mendeteksi bug logika DBMS. Tingginya jumlah bug yang dikonfirmasi dan unik (54 sebelumnya tidak diketahui) menunjukkan bahwa implementasi DBMS sering memiliki ketidakkonsistenan halus dalam menangani VIEW, CTE, dan TEMPT. Ketidakkonsistenan ini dapat menyebabkan hasil kueri yang salah, yang dapat berdampak serius pada aplikasi yang mengandalkan integritas data. Pendekatan ini ringan dan black-box, sehingga dapat diterapkan pada berbagai DBMS. Namun, metode ini bergantung pada ketersediaan ketiga mekanisme tersebut; DBMS yang tidak mendukung semuanya mungkin tidak dapat diuji sepenuhnya. Pekerjaan selanjutnya dapat memperluas pendekatan ini ke representasi ekuivalen lain, seperti subquery atau derived table, dan ke fitur SQL lainnya. Penulis juga mencatat bahwa satu bug merupakan masalah dokumentasi, yang menunjukkan bahwa ketidakkonsistenan juga dapat terjadi pada dokumentasi, yang dapat menyesatkan pengembang. Secara keseluruhan, ERIQ memperkenalkan dimensi pengujian baru dan mencapai hasil yang kuat, dengan 63 dari 64 bug dikonfirmasi dan dua sudah diperbaiki. Karya ini berpotensi meningkatkan keandalan DBMS dan menginspirasi penelitian lebih lanjut tentang pengujian diferensial semantik SQL.
Siapa yang sebaiknya membaca
Praktisi dan peneliti ilmu komputer
Membuka konten memberโฆ