testing
Catatan teknis seputar web development, DevOps, dan integrasi AI.
33 artikel
- 12.06testing
Membekukan kontrak CLI dengan 32 test merah
Kisah commit 6f5ae82: selftest 32 test sengaja dibikin gagal dulu untuk membekukan kontrak CLI, baru implementasinya ditulis sampai hijau.
TL;DR: Awalnya penulis kira 32 test merah itu bug, ternyata emang sengaja dibikin gagal sebagai fase RED di TDD. Kontrak CLI dibekukan dulu lewat test pakai varian batch-freeze, bukan TDD kanonik, biar nggak nyimpang pas ngoding. Jadi layar merah itu bukan tanda proyek bermasalah, tapi peta spesifikasi yang tinggal dikejar sampai hijau.
#testing#bash#cli - 09.43ai
Instruksi tersembunyi di file media tetap data, bukan perintah
Pipeline ingest media wajib membawa kalimat pembajakan verbatim sebagai data. Justru itulah bukti file tidak pernah bertindak jadi perintah.
TL;DR: Tengah malam penulis ngetes pipeline ingest media pake audio sintesis sendiri yang isinya perintah injeksi prompt. Alih-alih dibuang, kalimat berbahayanya justru wajib utuh di transkrip dan dilabel untrusted, soalnya bahayanya bukan teksnya, tapi waktu teks berubah jadi instruksi. Model transkripsinya dibikin stub aja, yang diuji kontrak datanya, dibuktikan lewat asersi.
#prompt-injection#llm-security#whisper - 07.31ai
Runner Verifikasi Golden File: Agen Dilarang Jadi Hakim Sendiri
Skor 70/0/0 bikin saya yakin pipeline agen sudah deterministik. Ternyata temperature 0 pun nggak menjamin apa-apa; satu-satunya saksi cuma diff golden.
TL;DR: Awalnya sempat senyum karena skor 70/0/0, kira pipeline udah deterministik padahal nggak. Skor itu cuma bukti runner verifikasinya bekerja, soalnya temp 0 pun model masih bisa ngeluarin output beda gara-gara batch invariance. Jadi verdict mesti diambil dari diff artefak lawan golden file, bukan dari omongan si agen.
#ai-agents#testing#evaluation - 01.52backend
Lock dicuri di tengah jalan: pelajaran fencing token
Lock yang dicek sekali di awal cuma menjaga pintu. Fencing token yang divalidasi di setiap tulisan state, plus heartbeat lease, yang menjaga datanya.
TL;DR: Cek lock sekali di awal doang nggak cukup, soalnya sesi lama bisa bangun lagi padahal lock-nya udah dicuri sesi lain. Solusinya fencing token: tiap tulis wajib bawa token yang naik terus, kalau udah basi langsung ditolak di sisi penyimpanan. Plus resume harus idempoten dan dites pakai kontrol negatif, biar guard-nya kebukti bisa gagal sebelum insiden beneran kejadian.
#distributed-systems#idempotency#testing - 02.36frontend
Tipe TypeScript Nggak Ikut ke JSON, Makanya Ada Kontrak Test
Interface TypeScript ilang saat runtime, jadi JSON konten butuh contract test. Cerita dari commit egperkasa-website: optional property, type erasure, dan it.each Vitest.
#typescript#testing#frontend - 23.47devops
Verify Bilang 0 Fail, Bug Tetap Sempat Lolos ke Live
Cerita audit pipeline artikel blog: bug token mermaid, paragraf pecah meski verify bersih, lalu tiga celah gate yang cuma ketahuan lewat pertanyaan manusia.
#testing#automation