• Tanggal Publikasikan
    November 26, 2024
  • Bagikan

Menciptakan kode yang dirancang dengan baik dan benar merupakan tujuan setiap pengembang. Salah satu metodologi yang menonjol dalam mencapai tujuan ini adalah pengembangan berbasis pengujian (TDD). Meskipun TDD tidak merancang kode atau menuliskannya untuk Anda, TDD merupakan metodologi dalam pengembangan perangkat lunak yang memungkinkan Anda memperoleh umpan balik cepat mengenai keputusan desain pada siklus pengembangan berulang. 

Apakah menulis pengujian unit sebelum atau sesudah pengodean atau tidak pernah menulis pengujian bergantung pada pilihan pengembang. Jelas, tidak pernah menulis pengujian apa pun dapat menyebabkan situasi kritis dalam produksi, jika pengembang beruntung, mereka akan menemukan kesalahan selama tahap pengujian manual. 

Menulis pengujian setelah menyelesaikan kode lebih baik daripada tidak melakukan pengujian sama sekali. Sebagian besar pengembang, termasuk kami, menerapkan pendekatan kode terlebih dahulu secara langsung, lalu menulis pengujian. Meskipun demikian, kode yang ditulis tidak lebih baik. Beberapa kesalahan fungsional akan muncul jika kita lupa kasus pengujian. Menulis kasus pengujian yang gagal sebelumnya untuk setiap bagian kode, lalu menambahkan kode untuk membuat pengujian tersebut berhasil dengan mengikuti siklus TDD jauh lebih baik.

Saat ini, kami sedang mendiskusikan bagaimana kami dapat menggunakan AI Generatif untuk membuat pekerjaan kami lebih otomatis. Dalam karya ini, kami memperkenalkan eksperimen baru yang terinspirasi oleh Blognya Allen HeltonKami menulis beberapa kasus pengujian untuk proyek tersebut dan kemudian meminta ChatGPT untuk membuat kode terkait pengujian tersebut. 

AI Generatif untuk Pengembangan Uji Coba Pertama 

Mengingat potensi kesalahan manusia dalam pengujian manual, muncul pertanyaan: Mengapa tidak mengotomatiskan TDD menggunakan AI Generatif? AI Generatif dapat memainkan peran transformatif dalam TDD dengan mengotomatiskan pembuatan pengujian unit dan kode terkait. Berikut alur kerja yang diusulkan:

  1. Pengujian yang Ditulis oleh Pengembang: Pengembang memulai dengan menulis pengujian unit awal, menentukan hasil yang diinginkan untuk kode mereka.
  2. Kode yang Dihasilkan oleh AI: AI Generatif membaca pengujian unit ini dan menghasilkan kode yang diperlukan untuk lulus. Jika kode berjalan dengan sukses, kode tersebut disimpan ke disk. Jika tidak, AI menghasilkan laporan kesalahan dan mencoba menghasilkan kode yang benar lagi, sehingga terjadi pengulangan hingga pengujian berhasil. Dengan menggabungkan AI dengan cara ini, pengembang dapat memastikan bahwa kode mereka diuji dan divalidasi secara menyeluruh, sehingga meminimalkan risiko kesalahan.
Ekran Resmi 2024-11-04 13.29.43.png

Manfaat penggunaan AI generatif dalam TDD

Mengotomatiskan pembuatan kode dan proses pengujian dapat mempercepat siklus pengembangan secara signifikan. Selain itu, mengurangi potensi kesalahan manusia dalam kasus pengujian dan penulisan kode. Saat melakukan ini, pastikan semua pengujian tercakup secara komprehensif dan konsisten serta ukur proses pengembangan dengan mudah tanpa menambah beban kerja manual.

Potensi Tantangan dan Solusi

Meskipun mengintegrasikan AI Generatif dalam TDD menawarkan banyak manfaat, hal itu bukan tanpa tantangan. Penyiapan awal sistem AI untuk TDD terkadang bisa rumit dan memakan waktu. Pengembang mungkin memerlukan pelatihan untuk menggunakan dan memercayai alat AI secara efektif. Namun, meskipun pengembang siap menanganinya, AI mungkin kesulitan dengan kasus unik atau kasus khusus yang tidak terwakili dengan baik dalam data pelatihan sehingga hal ini dapat membingungkan skenario yang diminta. AI Generatif merespons dengan kode yang layak, tetapi itu bukanlah pilihan yang hebat dan terbaik. Karena kode tersebut belum menerapkan mekanisme umpan balik apa pun. Untuk menghasilkan kode yang hebat, kita harus menerapkan mekanisme umpan balik ke AI seperti pendekatan peninjauan kode pengembang. Kita dapat menggabungkan AI dengan pengawasan manusia untuk menangani skenario yang rumit, setidaknya untuk saat ini.. :)

Umpan Balik Penerapan AI Generatif dalam TDD

Ekran Resmi 2024-11-04 13.31.52.png

Mekanisme umpan balik

Untuk menyempurnakan proses lebih lanjut, mekanisme umpan balik dapat diperkenalkan. Pengembang menulis pengujian unit, dan agen pengembang membuat kode. Lapisan pengawasan baru ditambahkan dengan agen peninjau kode, yang meninjau kode dan memberikan umpan balik kepada agen pengembang.

Peningkatan berulang

Agen pengembang merevisi kode berdasarkan masukan agen pengulas dan mengirimkannya kembali untuk ditinjau. Proses berulang ini berlanjut hingga kode berhasil melewati peninjauan.

Pengujian Terakhir

Setelah kode disetujui oleh agen pengulas, pengujian unit dijalankan. Jika berhasil, kode disimpan. Jika gagal, laporan kesalahan dibuat, dan proses kembali ke pembuatan kode.

Intinya, alur kerjanya adalah sebagai berikut:

  1. Pengembang menulis pengujian unit.ev
  2. AI membaca tes ini dan menghasilkan kode yang diperlukan.
  3. Jika pengujian berjalan dengan sukses, kode akan disimpan. Jika tidak, laporan kesalahan akan dibuat, dan AI akan mencoba memperbaiki kode tersebut dalam satu putaran.
  4. Otomatisasi awal ini dapat menghasilkan kode yang rentan terhadap kesalahan, di sinilah mekanisme umpan balik berperan.
  5. Pengembang menulis pengujian unit, dan agen pengembang menghasilkan kode dan metode yang diperlukan.
  6. Agen peninjau kode meninjau kode dan mengirimkan umpan balik ke agen pengembang.
  7. Agen pengembang menyempurnakan kode berdasarkan masukan dan mengirimkannya kembali untuk ditinjau.
  8. Siklus ini berlanjut hingga agen peninjau kode menyetujui kode tersebut.
  9. Setelah disetujui, pengujian unit dijalankan. Jika berhasil, kode disimpan; jika tidak, laporan kesalahan dibuat, dan pengulangan berlanjut.

Dengan menggabungkan mekanisme umpan balik, kualitas kode yang dihasilkan meningkat secara signifikan, memastikan bahwa kode tersebut memenuhi standar yang diperlukan dan lulus semua pengujian dengan andal.

Kesimpulan

Mengintegrasikan AI Generatif dalam Pengembangan Berbasis Pengujian (TDD) berpotensi merevolusi pengembangan perangkat lunak. Dengan mengotomatiskan pembuatan pengujian unit dan kode terkait, pengembang dapat memastikan kualitas kode yang lebih tinggi, mengurangi kesalahan, dan menyederhanakan alur kerja mereka. Meskipun ada tantangan yang harus diatasi, manfaatnya jauh lebih besar daripada rintangan awal, sehingga ini menjadi pendekatan yang menjanjikan untuk masa depan pengkodean. Anda dapat memeriksa Pembuat Kode AI proyek jika Anda tertarik untuk mendukung pemrograman menggunakan AI generatif. 

Arah Masa Depan

Ada tiga hal yang kami rencanakan untuk dibangun berdasarkan pendekatan ini:

  • Memperluas Dukungan Bahasa: Sementara kami berfokus pada Java, metodologi ini dapat diperluas ke bahasa lain seperti Python, JavaScript, dan banyak lagi.

  • Pembuatan Pengujian Otomatis: Kita dapat meminta Generative AI untuk menulis pengujian berdasarkan persyaratan tingkat tinggi yang diberikan oleh pengembang alih-alih melakukan pengujian yang ditulis secara manual. 

  • Memperluas Tim AI Agentik: Melampaui peninjau kode sederhana, kami dapat memperkenalkan agen yang lebih terspesialisasi seperti agen QA untuk menguji kasus-kasus khusus, agen kinerja untuk mengoptimalkan kinerja kode, dan seterusnya.

Kami menyarankan setiap pengembang perangkat lunak menghabiskan waktu mereka untuk menulis kasus pengujian yang lebih kuat dan akurat, lalu memanfaatkan kekuatan AI Generatif untuk menghasilkan kode berkualitas tinggi.