Aplikasi

Memakai kecerdasan buatan untuk membuat software andal

Photo by Markus Spiske from Pexels

Kita semua telah melihat konsekuensi dari software errors untuk diri kita sendiri. Aplikasinya crash, situs web yang lambat, fitur yang tidak berfungsi … tetapi ini hanya puncak gunung es. Kesalahan pemrograman dalam ritel online dapat menghabiskan biaya jutaan. Pada aplikasi penting untuk keselamatan, misalnya dalam mobil autonomus atau dalam pengobatan, dapat merugikan nyawa. Karena software dikembangkan oleh manusia, tidak mungkin untuk menghilangkan kesalahan sepenuhnya. Dan dengan meningkatnya prevalensi dan kompleksitas software, jumlah kesalahannya turut meningkat.

Sebelumnya, software errors terdeteksi dengan menganalisis atau menguji software, yang didasarkan pada gagasan bahwa satu program menganalisis program lain. Namun, analysis software masih dibuat oleh manusia, dan hanya dapat mendeteksi jenis kesalahan yang sudah diketahui. Agar dapat memprediksi dan mencegah kesalahan di masa depan, Michael Pradel berfokus pada kecerdasan buatan di Lab Software-nya. “Gagasan intinya adalah menggunakan banyak software errors yang ada di luar sana untuk mempelajari bagaimana kesalahan baru dapat dideteksi secara otomatis”, jelas Pradel. “Inilah sebabnya kami mengembangkan model pembelajaran mesin yang memprediksi apakah sepotong kode program benar atau tidak.”

Deep learning

Untuk mencapai tujuan tersebut, Pradel dan timnya ingin mengembangkan teknik baru sebagai bagian dari proyek ERC, yang akan memungkinkan komputer untuk “memahami” suatu program dan ide-ide yang mendasarinya. Pendekatan ini menggunakan “deep learning”, yang direncanakan oleh para peneliti untuk dikembangkan dan diterapkan dengan cara yang sebelumnya tak terpikirkan. Misalnya, identifiers names dalam source code akan berfungsi sebagai indikator kesalahan yang penting. Kecerdasan buatan melihat sejumlah besar baris kode dan mempelajari bagaimana nama-nama tersebut umum digunakan. Jika kemudian menemukan interaksi yang mengejutkan antara variabel yang disebut, katakanlah, “length” dan “color”, maka itu terdeteksi sebagai kemungkinan kesalahan.

“Apa yang membuat pendekatan baru ini begitu revolusioner yaitu setiap developer dapat membuat alat mereka sendiri untuk mendeteksi kesalahan. Saat ini, alat semacam itu hanya dapat dibuat oleh beberapa spesialis, ” jelas Pradel. Para peneliti telah mencapai beberapa hasil yang sangat menggembirakan dengan prototipe pertama dan telah mampu mendeteksi berbagai kesalahan yang sebelumnya tidak diketahui atau tidak dikenal – bahkan ketika menggunakan perangkat lunak yang telah digunakan untuk waktu yang sangat lama. Michael Pradel juga telah menerapkan ide-idenya dalam praktik selama enam bulan masa cutinya dihabiskan untuk meneliti di Facebook.

Namun, Pradel tidak berpikir bahwa kecerdasan buatan akan menggantikan programmer dalam waktu dekat. “Tujuan kami adalah lebih menggunakan alat otomatis untuk mendukung pekerjaan yang relatif monoton dalam mencari errors dan lebih banyak waktu bagi programmer untuk berkonsentrasi pada tugas yang lebih menarik, seperti membuat fungsi baru”, jelas Pradel. Pada akhirnya tujuannya adalah untuk membuat pengembangan software lebih produktif – juga karena semakin sulit bagi perusahaan untuk menemukan pengembang yang memenuhi syarat di pasar kerja.

Tautan ke artikel asli: Using artificial intelligence to create reliable software / University of Stuttgart

Diterjemahkan oleh saintifia dengan seizin dari yang bersangkutan, segala kesalahan translasi menjadi tanggungjawab kami.