- Hasil analisis 470 PR open source menunjukkan bahwa kode yang ditulis AI mengandung rata-rata 1,7 kali lebih banyak masalah dibanding kode yang ditulis manusia
- Cacat utama seperti kesalahan logika, penurunan keterbacaan, dan kerentanan keamanan jauh lebih banyak pada kode AI, terutama masalah keterbacaan yang meningkat lebih dari 3 kali lipat
- Kelalaian penanganan error, kesalahan konkurensi, dan ketidakkonsistenan penamaan pada kode AI sering terjadi, sehingga memperbesar beban review dan risiko operasional
- Penyebabnya dianalisis meliputi kurangnya pemahaman terhadap logika bisnis, pengejaran akurasi yang dangkal, dan preferensi pada pola yang kurang efisien
- Laporan menekankan perlunya penguatan sistem pengelolaan kualitas kode AI serta penerapan prosedur review kode, keamanan, dan pengujian yang sadar-AI
Ringkasan AI vs Human Code Generation Report
- CodeRabbit melakukan penelitian untuk menganalisis secara empiris perbedaan kualitas kode yang ditulis AI dan manusia
- Meneliti 470 GitHub PR open source, di antaranya 320 ditulis bersama AI dan 150 ditulis sepenuhnya oleh manusia
- Semua hasil dinormalisasi sebagai jumlah isu per 100 PR, lalu frekuensi tiap jenis masalah diukur melalui perbandingan rasio statistik
- Hasilnya, AI meningkatkan produktivitas tetapi juga menaikkan tingkat kesalahan
- Rata-rata 10,83 masalah per PR yang ditulis AI, sedangkan PR buatan manusia 6,45 masalah
- Terutama, kesalahan dengan tingkat keparahan tinggi lebih sering ditemukan pada kode AI
Keterbatasan penelitian
- Karena tidak bisa memastikan secara langsung apakah sebuah PR ditulis AI, PR yang memiliki sinyal AI co-authored-by diklasifikasikan sebagai ditulis AI
- PR tanpa sinyal tersebut dianggap ditulis manusia, tetapi pemisahan sempurna tetap tidak memungkinkan
- Meski ada keterbatasan ini, perbedaan statistik dalam pola masalah antara dua kelompok tetap tampak signifikan
- Metodologi lengkap dipublikasikan di bagian akhir laporan
10 temuan utama
- Tidak semua jenis error hanya muncul pada AI, tetapi di sebagian besar kategori tingkat error kode AI lebih tinggi
- Manusia dan AI sama-sama melakukan jenis kesalahan yang mirip, tetapi AI melakukannya lebih sering dan dalam skala lebih besar
-
1. Total jumlah isu naik 1,7 kali
- Rata-rata 10,83 isu per PR AI, sedangkan PR manusia 6,45 isu
- PR dengan konsentrasi isu tinggi (outlier) jauh lebih banyak pada kode AI, sehingga menambah beban review
-
2. Kenaikan error berkeparahan tinggi
- Masalah besar dan kritis meningkat 1,4~1,7 kali
-
3. Masalah logika dan akurasi naik 75%
- Mencakup error logika bisnis, dependensi yang salah, cacat alur kontrol, dan error konfigurasi
- Biaya perbaikannya tinggi dan berpotensi menyebabkan gangguan operasional
-
4. Masalah keterbacaan naik lebih dari 3 kali
- Aturan penamaan, struktur kode, dan konsistensi ekspresi jauh lebih buruk
- Walau kode terlihat rapi, pelanggaran pola lokal sering terjadi
-
5. Kelalaian penanganan error dan jalur exception naik 2 kali
- Pemeriksaan null, kondisi guard, dan logika penanganan exception sering hilang
- Ini adalah jenis masalah yang langsung terkait dengan gangguan layanan nyata
-
6. Masalah keamanan naik hingga 2,74 kali
- Contohnya penanganan kata sandi yang tidak tepat dan kerentanan referensi objek
- Bukan kerentanan yang unik, tetapi sebagian besar cacat keamanan ikut membesar
-
7. Masalah penurunan performa lebih sedikit, tetapi terkonsentrasi di AI
- Pemanggilan I/O berlebihan sekitar 8 kali lebih banyak
- AI cenderung memilih kode yang berfokus pada kejelasan, sehingga efisiensinya menurun
-
8. Error konkurensi dan dependensi naik sekitar 2 kali
- Kesalahan urutan, alur dependensi yang salah, dan penyalahgunaan kontrol konkurensi sering muncul
-
9. Masalah formatting naik 2,66 kali
- Banyak error format seperti indentasi, spasi, dan ketidaksesuaian style
- Bahkan dengan formatter dan linter otomatis, noise pada kode AI tetap meningkat
-
10. Ketidakkonsistenan penamaan naik 2 kali
- Banyak nama yang tidak jelas, istilah yang tidak konsisten, dan identifier yang terlalu umum, sehingga beban kognitif reviewer meningkat
Penyebab munculnya masalah
- AI kurang memahami logika bisnis
- AI menghasilkan kode berdasarkan pola statistik sehingga sering melewatkan aturan sistem
- Generasi berfokus pada akurasi permukaan
- Kode tampak benar di permukaan, tetapi mengandung celah pada perlindungan alur kontrol atau urutan dependensi
- Tidak mematuhi konvensi spesifik repositori
- Aturan penamaan, struktur, dan format berubah menjadi bentuk yang terlalu umum
- Pola keamanan melemah
- Tanpa instruksi eksplisit, AI dapat mereproduksi pola kode lama atau rentan
- Lebih memilih kesederhanaan daripada efisiensi
- Cenderung menggunakan I/O berulang dan struktur yang tidak optimal
Langkah respons untuk tim engineering
- Adopsi AI tidak hanya soal peningkatan kecepatan, tetapi juga membutuhkan desain ulang sistem jaminan kualitas
-
1. Berikan konteks yang cukup kepada AI
- Aturan bisnis, pola konfigurasi, dan batasan arsitektur perlu dijelaskan agar error berkurang
- Sertakan panduan khusus repositori dan skema di dalam prompt
-
2. Terapkan style kode berbasis kebijakan
- Gunakan CI formatter, linter, dan style guide untuk mencegah masalah keterbacaan
-
3. Tambahkan pengaman akurasi
- Wajibkan testing, pemeriksaan null/type, standardisasi penanganan exception, dan kondisi guard yang eksplisit
-
4. Perkuat default keamanan
- Sentralisasi kredensial, blokir penggunaan kata sandi secara langsung, dan jalankan SAST serta security linter otomatis
-
5. Arahkan ke pola yang efisien
- Gunakan pemrosesan batch I/O, pemilihan struktur data yang tepat, dan petunjuk performa
-
6. Terapkan checklist PR yang sadar-AI
- Saat review, periksa item berikut:
- Apakah jalur error sudah tercakup
- Apakah kontrol konkurensi sudah tepat
- Apakah nilai konfigurasi sudah divalidasi
- Bagaimana metode penanganan kata sandi
-
7. Terapkan otomatisasi review kode AI
- Untuk mencegah bug terlewat akibat meningkatnya kelelahan review, laporan ini menyarankan penggunaan alat review kode AI (CodeRabbit)
- Membantu standardisasi kualitas review dan mengurangi waktu pemeriksaan serta beban kognitif
Kesimpulan
- Alat coding AI adalah akselerator yang kuat, tetapi akselerasi tanpa pengaman itu berbahaya
- Kode yang dihasilkan AI memiliki volatilitas, tingkat error, dan tingkat keparahan yang semuanya lebih tinggi
- AI harus digunakan sebagai alat pelengkap, bukan pengganti, dan penguatan sistem kualitas, keamanan, serta pengujian adalah hal wajib
- Untuk mendapatkan kecepatan sekaligus kualitas, diperlukan pengelolaan engineering yang disengaja
- Pemanfaatan alat review kode AI dapat memberi bantuan nyata dalam menjaga kualitas
Belum ada komentar.