Flazzo memiliki fokus utama untuk menambah nilai bisnis Anda.

Blog

AI generatif dan pengujian perangkat lunak: Inilah yang ditemukan oleh eksperimen kami dengan AI generatif dan pengujian perangkat lunak

cyber-gae2a001c6_1280.jpg
Blog

AI generatif dan pengujian perangkat lunak: Inilah yang ditemukan oleh eksperimen kami dengan AI generatif dan pengujian perangkat lunak


Di tengah hiruk pikuk kebisingan tentang AI generatif dan pengembangan perangkat lunak, kami belum melihat banyak diskusi mendalam tentang pengujian perangkat lunak secara khusus. Kami bereksperimen dengan kemampuan penulisan tes ChatGPT dan ingin membagikan temuan kami. Singkatnya: kami menyimpulkan bahwa ChatGPT hanya sedikit berguna untuk menulis tes hari ini, tetapi kami berharap hal itu akan berubah secara drastis dalam beberapa tahun ke depan dan pengembang harus memikirkan sekarang tentang cara membuktikan karier mereka di masa depan.

Kami adalah co-founder dari CodeCov, perusahaan yang diperoleh Sentry yang berspesialisasi dalam cakupan kode, jadi kami tidak asing dengan pengujian. Selama dua bulan terakhir, kami telah mengeksplorasi kemampuan ChatGPT dan alat AI generatif lainnya untuk menulis pengujian unit. Eksplorasi kami terutama terdiri dari menyediakan informasi cakupan kepada ChatGPT untuk fungsi atau kelas tertentu dan kode untuk kelas tersebut. Kami kemudian mengundang ChatGPT untuk menulis pengujian unit untuk bagian mana pun dari kode yang disediakan yang ditemukan, dan menentukan apakah pengujian yang dihasilkan berhasil menjalankan baris kode yang tidak tercakup atau tidak.

Kami telah menemukan bahwa ChatGPT dapat dengan andal menangani 30-50% penulisan pengujian saat ini, meskipun pengujian yang ditangani dengan baik sebagian besar adalah pengujian yang paling mudah, atau pengujian yang menguji fungsi dan jalur sepele, kode yang relatif sederhana. Hal ini menunjukkan bahwa ChatGPT hanya digunakan terbatas untuk menulis tes hari ini, karena organisasi dengan budaya pengujian apa pun biasanya telah menulis tes paling sederhana mereka sekarang. Di mana AI generatif akan sangat berguna di masa depan adalah untuk menguji jalur kode yang lebih kompleks dengan benar, memungkinkan pengembang mencurahkan waktu dan perhatian untuk masalah yang lebih kompleks.

Namun, kami telah melihat peningkatan kualitas generasi pengujian, dan kami berharap tren ini akan berlanjut di tahun-tahun mendatang. Pertama, organisasi yang sangat besar dan paham teknologi seperti Netflix, Google, dan Microsoft cenderung membuat model untuk penggunaan internal yang dilatih di sistem dan perpustakaan mereka sendiri. Ini seharusnya memberi mereka hasil yang lebih baik, dan ekonomi terlalu ketat bagi mereka untuk tidak melakukannya. Mengingat tingkat peningkatan cepat yang kami lihat dalam program AI generatif, LLM yang terlatih dapat menulis sebagian besar pengujian perangkat lunak untuk perusahaan ini dalam waktu dekat.

Selanjutnya, dalam tiga sampai lima tahun ke depan, kami berharap semua organisasi akan terpengaruh. Perusahaan yang mengembangkan alat AI generatif – apakah itu AI Skala, Google, Microsoft, atau orang lain – akan melatih model untuk lebih memahami kode, dan begitu AI cukup pintar untuk memahami struktur kode dan pelaksanaannya, tidak ada alasan lagi bahwa alat AI generasi mendatang tidak akan dapat menangani semua pengujian unit. (Google memiliki pengumuman sepanjang garis ini baru bulan lalu). Selain itu, kepemilikan Microsoft atas GitHub memberi mereka platform besar untuk mendistribusikan alat pengkodean AI dengan mudah ke jutaan pengembang perangkat lunak, yang berarti adopsi skala besar dapat terjadi dengan sangat cepat.

Apakah dunia siap untuk pengujian otomatis sepenuhnya adalah pertanyaan lain. Sama seperti mobil self-driving, kami berharap AI dapat menulis 100% kode sebelum manusia 100% siap untuk mempercayainya. Dengan kata lain, meskipun AI dapat menangani semua pengujian unit, organisasi akan tetap menginginkan manusia menjadi penopang untuk meninjau kode apa pun yang ditulis oleh AI, dan mungkin masih lebih memilih pengujian yang ditulis manusia untuk jalur kode yang paling kritis. Selain itu, pengembang akan selalu menginginkan metrik seperti cakupan kode untuk menunjukkan kebenaran upaya AI. Kepercayaan dapat membutuhkan waktu untuk dibangun.

Dalam jangka panjang, AI dapat mendefinisikan kembali seluruh pendekatan kami terhadap pengujian perangkat lunak. Daripada membuat dan menjalankan pengujian otomatis, kerangka pengujian bisa menjadi AI itu sendiri. Tidak dikecualikan bahwa AI yang cukup maju dan terlatih dengan akses ke sumber daya komputasi yang cukup dapat dengan mudah menggunakan semua jalur kode untuk kami, mengembalikan semua eksekusi yang gagal dan merekomendasikan perbaikan untuk jalur yang gagal ini, atau hanya Perbaiki secara otomatis selama analisis dan jalankan Kode. Ini benar-benar dapat menghilangkan kebutuhan untuk pengujian perangkat lunak dalam pengertian tradisional.

Either way, kemungkinan di tahun-tahun mendatang, AI akan dapat melakukan banyak pekerjaan yang dilakukan pengembang saat ini, termasuk pengujian. Ini mungkin berita buruk bagi insinyur junior, tetapi masih harus dilihat bagaimana hasilnya. Kami juga dapat membayangkan skenario di mana “AI + insinyur junior” dapat melakukan pekerjaan insinyur tingkat menengah dengan biaya lebih rendah, sehingga tidak jelas siapa yang paling terpengaruh.

Apa pun itu, penting untuk bereksperimen dengan alat ini sekarang jika Anda belum melakukannya. Idealnya, organisasi Anda sudah menawarkan kesempatan untuk menguji alat AI generatif dan menentukan bagaimana mereka dapat membuat tim menjadi produktif dan efisien sekarang atau dalam waktu dekat. Setiap bisnis harus melakukan ini. Jika Anda tidak bekerja seperti itu, Anda harus selalu bereksperimen dengan kode Anda sendiri dengan kecepatan Anda sendiri.

Salah satu cara untuk memikirkan tentang peran yang akan diisi oleh AI adalah dengan menganggapnya sebagai pengembang junior. Jika Anda ingin tetap “di atas algoritme” dan memainkan peran berkelanjutan bersama AI, perhatikan di mana pengembang junior cenderung gagal hari ini, karena di sanalah manusia akan dibutuhkan.

Kemampuan untuk meninjau kode akan selalu menjadi penting. Alih-alih menulis kode, pikirkan tentang peran Anda sebagai peninjau atau mentor, orang yang mengawasi AI dan membantu meningkatkannya. Tapi apa pun yang Anda lakukan, jangan abaikan, karena jelas bagi kami bahwa perubahan akan datang dan peran kami semua akan berubah.