21.5 Test, Review, dan Dokumentasi: AI sebagai Pemeriksa Kedua

Kode yang sudah ditulis perlu diuji dan direview. AI juga bisa membantu di tahap ini, asalkan kita tahu batas kemampuannya.

Berikut diagram alur yang merangkum peran AI dalam tahap test, review, dan dokumentasi:

flowchart TD A[Kode Selesai Ditulis] --> B[AI Buat Test Case dari Brief] B --> C[AI Review Helper: Cek Konsistensi & Bug] C --> D[Manusia Review Final] D --> E{Perlu Perbaikan?} E -- Ya --> F[Perbaiki Kode] F --> B E -- Tidak --> G[AI Dokumentasi Helper: Buat Draf] G --> H[Manusia Validasi & Tambah Konteks] H --> I[Evidence Tercatat]

Bayangkan Anda baru saja selesai menulis modul adapter pembayaran untuk dompet digital. Kodenya berjalan, tidak ada error, dan Anda merasa cukup yakin. Tapi sebagai arsitek, Anda tahu bahwa kode yang berjalan belum tentu benar. Ada kasus batas yang mungkin terlewat, ada skenario error yang tidak terpikirkan, dan ada pola yang mungkin tidak konsisten dengan modul lain. Anda bisa memeriksa semuanya sendiri, tetapi itu butuh waktu dan konsentrasi penuh.

Di sinilah AI bisa menjadi pemeriksa kedua. Bukan pengganti review manusia, tetapi lapisan pertama yang menangkap hal-hal yang seharusnya tidak perlu dibahas dalam review tim.

Mulailah dengan pengujian. AI bisa membantu membuat test case dari brief yang sudah Anda tulis di subbab 21.1. Brief itu sudah berisi acceptance criteria dan skenario yang diharapkan. Anda bisa memberikan kode yang sudah ditulis beserta brief-nya ke AI, dan minta AI membuat unit test atau integration test yang sesuai. Hasilnya tidak harus sempurna, tetapi cukup untuk menangkap skenario dasar dan beberapa kasus batas. Anda tinggal memeriksa, menambahkan skenario yang terlewat, dan memastikan test yang dibuat benar-benar menguji perilaku yang dimaksud.

Misalnya, dari brief yang menyebutkan "nomor kartu kredit harus 16 digit numerik, boleh dipisah spasi setiap 4 digit", AI bisa menghasilkan unit test seperti ini:

import { validateCreditCard } from './paymentAdapter';

describe('validateCreditCard', () => {
  it('menerima nomor 16 digit tanpa spasi', () => {
    expect(validateCreditCard('4111111111111111')).toBe(true);
  });

  it('menerima nomor dengan spasi setiap 4 digit', () => {
    expect(validateCreditCard('4111 1111 1111 1111')).toBe(true);
  });

  it('menolak nomor kurang dari 16 digit', () => {
    expect(validateCreditCard('411111111111')).toBe(false);
  });

  it('menolak nomor dengan karakter non-digit', () => {
    expect(validateCreditCard('4111-1111-1111-1111')).toBe(false);
  });

  it('menolak input kosong', () => {
    expect(validateCreditCard('')).toBe(false);
  });
});

Anda tinggal memeriksa apakah skenario di atas sudah mencakup semua kasus batas yang dimaksud dalam brief, lalu menambahkan yang terlewat.

Untuk review kode, AI bisa menjadi review helper yang memeriksa konsistensi terhadap standar tim, potensi bug umum, dan kepatuhan terhadap pola yang sudah disepakati dalam desain. Misalnya, jika tim Anda sepakat bahwa setiap adapter pembayaran harus mengembalikan objek respons dengan struktur tertentu, AI bisa memeriksa apakah kode yang ditulis mengikuti kontrak itu. Atau jika ada pola null check yang terlewat, AI bisa menandainya. Manusia tetap membaca hasil review dan memutuskan mana yang perlu diperbaiki, mana yang false positive, dan mana yang membutuhkan diskusi lebih dalam.

Dokumentasi sering menjadi korban pertama ketika tenggat mendekat. Padahal dokumentasi yang baik adalah investasi jangka panjang untuk tim. AI bisa menjadi documentation helper yang mengubah kode dan komentar menjadi dokumentasi yang terbaca. Anda bisa memberikan kode yang sudah selesai ke AI, dan minta AI menulis penjelasan tentang arsitektur modul, cara penggunaan, dan asumsi-asumsi yang mendasarinya. Tapi ingat, AI hanya menulis berdasarkan apa yang ada di kode. Jika ada keputusan desain yang tidak tercermin dalam kode, Anda harus menambahkannya sendiri. Dokumentasi dari AI adalah draf pertama, bukan versi final.

Yang paling penting dari semua peran AI di tahap ini adalah evidence. Setiap test yang dijalankan, setiap review yang dilakukan, dan setiap dokumen yang dihasilkan harus meninggalkan jejak yang bisa diperiksa. Tim harus bisa menjawab pertanyaan: apakah modul ini sudah diuji? Siapa yang mereview? Apa saja yang ditemukan? Keputusan apa yang diambil? AI membantu mencatat dan merapikan evidence ini, sehingga proses audit dan pembelajaran tim menjadi lebih mudah.

Manusia tetap menjadi penanggung jawab kualitas dan keputusan akhir. AI bisa menyarankan test case, tetapi Anda yang memutuskan apakah skenario itu relevan. AI bisa menandai potensi masalah, tetapi Anda yang memutuskan apakah itu benar-benar masalah. AI bisa menulis draf dokumentasi, tetapi Anda yang memastikan isinya akurat dan mencerminkan keputusan tim.

Setelah kode diuji, direview, dan didokumentasikan, tibalah saatnya mencatat keputusan yang diambil selama proses ini. Keputusan arsitektur, alasan memilih satu pendekatan dibanding yang lain, dan pelajaran yang didapat dari review. Bagian berikutnya bergerak ke persoalan tersebut: bagaimana AI membantu mencatat keputusan dan membangun learning loop untuk tim.