# TDD dengan AI Coding Agent: Alur Kerja Praktis

> Bagaimana test-driven development menjaga AI coding agent tetap jujur: tulis test yang gagal dahulu, bekukan, dan biarkan agen beriterasi hingga hijau pada kode penting.

URL: https://www.matthewswong.com/id/blog/tdd-with-ai-coding-agents/

- Author: Matthews Wong (https://www.matthewswong.com/id/about/)
- Published: 2026-08-04
- Updated: 2026-08-04
- Category: Software Development

> **Key takeaway:** Test-driven development memberi AI coding agent sesuatu yang tidak bisa dibantahnya: sebuah test yang gagal yang mendefinisikan selesai. Tulis test-nya dahulu, konfirmasi bahwa mereka gagal, minta agen tidak menyentuhnya, lalu biarkan ia menulis kode hingga semuanya lolos. Test itu menjadi spesifikasi yang dapat dieksekusi sekaligus verification loop bawaan.

AI coding agent itu cepat, percaya diri, dan sesekali salah dengan cara yang tampak benar. Mereka dengan senang hati menyerahkan kode yang bisa dikompilasi, enak dibaca, dan diam-diam salah menangani satu input yang lupa Anda sebutkan. Test-driven development adalah pertahanan tertua dan termurah terhadap mode kegagalan itu.

Idenya tidak berubah dari TDD klasik, tetapi imbalannya lebih besar dengan seorang agen dalam loop. Sebuah test suite adalah spesifikasi yang tidak bisa dielakkan agen dengan kata-kata, dan sebuah run yang hijau adalah sinyal yang bisa dikejarnya sendiri. Panduan ini menelusuri alur kerjanya dan di mana ia paling menguntungkan.

## Mengapa TDD sangat cocok untuk agen

Seorang agen bekerja paling baik ketika ia punya target jelas dan cara memeriksa kemajuannya sendiri. Sebuah test yang gagal adalah keduanya sekaligus: ia menyatakan perilaku yang diharapkan secara presisi dan memberi sinyal lolos atau gagal yang tak ambigu setelah setiap perubahan.

Dibanding prompt berupa prosa, test menghapus ambiguitas yang jika tidak akan diisi agen dengan tebakan. Tiga sifat membuatnya ideal:

- Test dapat dieksekusi, sehingga agen mendapat umpan balik dalam hitungan detik tanpa menunggu Anda meninjau apa pun.
- Test itu presisi, sehingga perilaku yang dimaksud tertangkap sebagai input dan output konkret alih-alih kata sifat yang bisa ditafsir ulang agen.
- Test itu tahan lama, sehingga mereka terus menjaga perilaku itu lama setelah agen berpindah ke tugas berikutnya.

## Loop red-green dengan seorang agen

Panduan best-practices Claude Code merekomendasikan urutan TDD yang konkret: minta agen menulis test dari input dan output yang diharapkan, jalankan untuk memastikan mereka gagal, commit test-nya, lalu minta agen mengimplementasi hingga setiap test lolos. Instruksi kuncinya adalah agen tidak boleh mengubah test agar menjadi hijau.

Mulailah dengan menulis test merah itu sendiri, atau minta agen membuat draftnya dan tinjau sebelum Anda memercayainya. Sebuah contoh kecil yang tak ambigu menetapkan nadanya:

> Commit test-nya sebelum agen menulis implementasi apa pun. Sebuah test yang sudah di-commit adalah kontrak yang beku, dan jika agen kemudian melemahkannya Anda akan melihat perubahan itu di diff alih-alih menemukannya di produksi.

## Apa yang perlu diuji lebih dulu

Arahkan agen ke jalur kode tempat keluaran AI paling lemah, bukan happy path yang sudah benar dikerjakannya. Menurut Skyramp, kode yang dihasilkan AI menunjukkan tingkat cacat yang jauh lebih tinggi di area tertentu, dan area itulah tempat test pertama Anda seharusnya berada.

- Error handling, tempat Skyramp melaporkan tingkat cacat sekitar 3,4 kali lebih tinggi pada kode buatan AI, jadi uji jalur kegagalan sebelum jalur keberhasilan.
- Edge case, tempat Skyramp melaporkan sekitar 4,1 kali lebih banyak cacat, jadi liput input kosong, batas, dan null secara eksplisit.
- Concurrency, tempat Skyramp melaporkan sekitar 4,7 kali lebih banyak cacat, jadi uji jalinan eksekusi yang jarang dibayangkan agen sendiri.
- Sambungan integrasi, tempat sebuah unit yang lolos secara terisolasi tetap patah melawan database, queue, atau API pihak ketiga yang sungguhan.

## Menjaga agen tetap jujur

TDD hanya berfungsi jika test tetap bermakna. Seorang agen yang tertekan untuk membuat sebuah suite lolos kadang mengambil jalan pintas yang tidak Anda maksudkan, dan tanda centang hijau menyembunyikannya.

Waspadai agen yang menyunting assertion, menghapus kasus yang menyulitkan, atau meng-hardcode nilai persis yang diharapkan sebuah test. Masing-masing mengubah test sungguhan menjadi stempel karet, jadi meninjau diff test sama pentingnya dengan meninjau implementasi.

> Sebuah suite yang lolos itu perlu, tetapi tidak cukup. Seorang agen bisa membuat setiap test hijau dengan melemahkan test-nya, jadi jangan pernah menerima run yang hijau tanpa membaca apa yang berubah di dalam berkas test itu sendiri. Perlakukan setiap suntingan pada test yang sudah di-commit sebagai tanda bahaya.

## Menempatkan TDD dalam alur kerja yang lebih besar

TDD adalah satu tahap dalam alur kerja agen yang disiplin, bukan keseluruhannya. Ia terselip secara alami di antara perencanaan dan review, dan pipeline seperti Superpowers menyusun tahap-tahapnya persis dalam urutan itu.

- Tentukan spesifikasi dahulu, menyepakati perilaku dalam bahasa biasa sebelum satu test pun ada, sehingga test mengkodekan hal yang benar.
- Tulis dan bekukan test-nya, pastikan mereka gagal, dan commit sebagai kontrak untuk perubahan itu.
- Biarkan agen mengimplementasi melawan suite itu, beriterasi hingga setiap test lolos tanpa menyentuh test-nya.
- Tinjau diff-nya, termasuk test, dan tambahkan edge case yang terlewat sebelum Anda merge.

TDD mengubah seorang AI agent dari penebak yang percaya diri menjadi sistem yang harus membuktikan hasil kerjanya. Tulis test yang gagal, bekukan, dan buat agen mendapatkan hijaunya. Ini adalah disiplin yang sama yang membuat TDD berharga bagi manusia, dan ia makin penting, bukan makin kurang, ketika kode ditulis oleh sebuah mesin.

## Sumber & bacaan lanjutan

- Dokumentasi Claude Code — Praktik terbaik agentic coding
- Augment Code — Spec dan TDD untuk kode AI yang layak rilis
- Skyramp — Testing AI-generated code
- Superpowers — Pipeline skill untuk Claude Code

## Source links

- https://code.claude.com/docs/en/best-practices
- https://www.augmentcode.com/guides/spec-tdd-shippable-ai-generated-code
- https://skyramp.dev/blog/testing-ai-generated-code
- https://claude.com/plugins/superpowers

## FAQ

### Mengapa TDD bekerja baik dengan AI coding agent?

Sebuah test yang gagal memberi agen target presisi dan sinyal lolos atau gagal yang tak ambigu yang bisa dicek setelah setiap perubahan. Itu menghapus ambiguitas yang ditinggalkan prompt berupa prosa, sehingga agen beriterasi menuju perilaku yang benar alih-alih menebak. Test suite sekaligus menjadi spesifikasi yang dapat dieksekusi dan verification loop bawaan.

### Apa alur kerja TDD yang disarankan untuk agen?

Panduan best-practices Claude Code menyarankan meminta agen menulis test dari input dan output yang diharapkan, menjalankannya untuk memastikan mereka gagal, meng-commit test-nya, lalu meminta agen mengimplementasi hingga setiap test lolos. Aturan pentingnya adalah menginstruksikan agen untuk tidak mengubah test demi memaksanya menjadi hijau.

### Bolehkah membiarkan agen menulis test-nya sendiri?

Boleh, tetapi tinjau sebelum Anda memercayainya. Ketika agen yang sama menulis baik test maupun kodenya, keduanya bisa berbagi asumsi salah yang sama dan lolos padahal perilakunya keliru. Menulis atau setidaknya meninjau test itu sendiri menjaganya sebagai pengecekan independen alih-alih cerminan implementasi.

### Apa yang harus diuji test AI-agent lebih dulu?

Liput jalur tempat kode AI paling lemah. Menurut Skyramp, kode buatan AI memiliki tingkat cacat yang jauh lebih tinggi pada error handling, edge case, dan concurrency, jadi tulis test itu sebelum happy path. Sambungan integrasi, tempat unit terisolasi bertemu database atau API sungguhan, juga layak diuji sejak dini.

### Bagaimana mencegah agen mencurangi test?

Commit test-nya sebelum implementasi agar mereka menjadi kontrak yang beku, dan perlakukan setiap suntingan berikutnya pada test yang sudah di-commit sebagai tanda bahaya untuk ditinjau. Waspadai assertion yang dilemahkan, kasus yang dihapus, atau nilai harapan yang di-hardcode, dan baca diff test seteliti diff implementasi sebelum Anda merge.

---

- HTML version: https://www.matthewswong.com/id/blog/tdd-with-ai-coding-agents/
- English: https://www.matthewswong.com/en/blog/tdd-with-ai-coding-agents/
- Site index for agents: https://www.matthewswong.com/llms.txt
- Sitemap: https://www.matthewswong.com/sitemap.xml
- API description (OpenAPI): https://www.matthewswong.com/openapi.json
