Prompt debugging berbasis bukti — Vibe Coding dan Security: Dari Prompt ke Aplikasi Aman

MATERI 7 DARI 28

Prompt debugging berbasis bukti

Arahkan AI mereproduksi bug, menelusuri data flow, dan memperbaiki akar masalah dengan regression test.

Tujuan pembelajaran

  • Membuat feedback loop yang red-capable.
  • Membedakan gejala dan akar masalah.
  • Meminta hipotesis yang dapat diuji.

Konsep utama

Reproduksi minimal

Satu test atau HTTP script harus dapat gagal sebelum perbaikan dan lulus sesudahnya.

Evidence first

Baca error, log, status, state, dan perubahan terbaru sebelum menyentuh kode.

Alur kerja teknis

  1. Tulis tujuan dan acceptance criteria.
  2. Buat perubahan kecil yang dapat ditinjau.
  3. Jalankan test dan baca diff sebelum menerima hasil AI.

Contoh implementasi

Regression test validasi ukuran

def validate_size(size: int) -> None:
    if size < 1 or size > 5 * 1024 * 1024:
        raise ValueError("Ukuran maksimal 5 MB")

def test_rejects_oversize():
    try:
        validate_size(5 * 1024 * 1024 + 1)
        assert False, "harus ditolak"
    except ValueError:
        pass

Aspek keamanan

  • Jangan mengubah banyak variabel sekaligus.
  • Jangan menyembunyikan exception tanpa observability.
  • Pastikan test menguji gejala persis yang dilaporkan.

Kesalahan umum

  • Menerima kode AI tanpa membaca diff dan memahami alur data.
  • Menguji hanya happy path dan mengabaikan input salah atau batas nilai.
  • Menyimpan secret, token, atau data nyata di prompt dan source code.

Pengujian dan verifikasi

  1. Jalankan contoh dengan input normal.
  2. Ulangi dengan input kosong, tipe salah, dan nilai batas.
  3. Pastikan error tidak membocorkan secret atau detail internal.

Latihan

  1. Modifikasi contoh dengan satu kebutuhan baru dan tulis acceptance criteria-nya.
  2. Tambahkan satu negative test lalu jelaskan risiko yang dicegah.

Checklist

  • Tujuan dan batas pekerjaan jelas.
  • Input divalidasi di server.
  • Secret tidak berada di source/prompt.
  • Test lulus dan diff sudah dibaca.

Rangkuman

Arahkan AI mereproduksi bug, menelusuri data flow, dan memperbaiki akar masalah dengan regression test.