Blog
Catatan teknis seputar web development, DevOps, dan integrasi AI.
500 artikel
- 18.45security
Baseline ZAP: Nol Kegagalan Bukan Angka Terpenting
Baseline ZAP pasif sebelum QA backfill: nol FAIL, empat WARN, dan tabel delta aturan yang membuktikan OAuth baru tidak menambah alert.
TL;DR: ZAP baseline dijalan ulang abis ada surface baru dari Google OAuth, hasilnya nol FAIL, empat WARN, 57 PASS. Yang keren tuh dibandingin per aturan sama baseline sehari sebelumnya, semua angka turun atau diam, gak ada alert baru. Tapi inget, ini cuma scan pasif tanpa login, jadi bukan audit, cuma tripwire buat halaman publik.
#zap#security-testing#owasp - 18.36testing
Crawler 192 Halaman, Satu 404, dan Sitasi yang Salah Sasaran
Audit tautan internal lewat crawler Playwright: 192 halaman dirayapi, satu dynamic404, dan rujukan next.js#58421 yang ternyata PR polyfill.
TL;DR: Crawler ngecek 192 halaman, cuma satu 404 dinamis gara-gara slug ada tanda kutip satu. Rujukan issue di commit ternyata salah sasaran, akar masalahnya sih double-encoding dari encodeURIComponent. Pelajarannya, referensi di catatan kerja itu cuma hipotesis, mesti dicek dulu sebelum dipercaya.
#playwright#e2e#nextjs - 17.50testing
Assertion Login yang Tidak Pernah Gagal: Ketika URL Selalu Cocok
Mengganti pemeriksaan rute dengan penanda visual pada fixture E2E untuk mendeteksi kegagalan login yang sebelumnya terlewat oleh sistem pengujian.
TL;DR: Helper login E2E keliatannya aman karena ngecek URL /admincms, padahal rute itu sama aja mau login sukses atau gagal jadi tesnya nggak pernah merah. Akhirnya assertion diganti jadi ngecek chip admin yang cuma muncul kalau sesi beneran valid, jadi kalau gagal langsung ketahuan. Intinya assertion yang nggak bisa gagal tuh nggak ada gunanya sama sekali.
#playwright#e2e#testing - 17.31testing
Baseline QA Sebelum Perbaikan: Merah Bukan Berarti Kode Rusak
Baseline QA pertama menampilkan layar merah penuh: database pengujian menyimpan revisi migrasi lebih baru dari kode. Environment drift, bukan kode rusak.
TL;DR: Gue jalanin baseline QA terus test integrasi langsung merah semua gara-gara volume database nyangkut skema lama bukan kode error. Abis beresin pakai docker compose down -v test jadi hijau 28 paket lolos tapi coverage masih banyak yang bolong. Frontend aman, E2E ada yang fail tapi sengaja dicatat dulu biar nggak ngerusak angka baseline.
#testing#golang#docker - 16.37testing
Fixture Dulu, Spec Kemudian: Satu Login Buat Semua Test
Satu fixture login dan satu fixture bukti ditulis sebelum spesifikasi pertama, lengkap dengan jebakan aria-label yang membuat getByLabel salah sasaran.
TL;DR: Gue nambahin Task 0 buat bikin fixture reusable sebelum nulis spec biar nggak refaktor belakangan. Daripada nambah data-testid, login ngambil dari komponen asli pakai getByLabel Email dan Kata sandi pakai exact true biar nggak ketuker tombol Tampilkan kata sandi. Jadinya cuma ada loginAsAdmin dan evidence di satu file, sengaja nggak pakai auth setup karena test admin saling ngerubah status server.
#playwright#e2e#testing - 15.43testing
Spec QA sudah jadi jam 9 pagi, lalu owner bilang: kurang lebar
Spesifikasi QA backfill lahir jam 9 pagi, lalu dilebarkan owner beberapa menit kemudian: kunci perilaku lama, ukur baseline, retest satu irisan penuh.
TL;DR: Awalnya gue kira cukup tambah unit test buat validator KotaPortal biar validasi aman. Ternyata owner minta ukur baseline dulu pake go test cover sama Vitest baru cek irisan full dari DB sampai halaman. Akhirnya spec jadi empat langkah: kunci perilaku lama, ukur baseline, retest vertical slice, dan lempar semua temuan ke Owner Decision List.
#testing#go#openapi - 14.28tooling
Spesifikasi Tereksekusi: Arsip Keputusan, Bukan Sampah
Spesifikasi yang sudah dieksekusi adalah catatan keputusan: pindahkan ke arsip sebagai perubahan status, jaga imutabilitas ala ADR.
#documentation#adr#workflow - 14.28ai
Kapan Agent AI Harus Dicabut dari Workflow
Kerangka evaluasi pencabutan agent AI dari produksi: audit excessive agency OWASP dan tanda operasional pematangan arsitektur.
#ai#security#mcp - 14.28ai
Konfigurasi MCP: Scope User atau Ikut Repo Proyek
Lokasi konfigurasi MCP menentukan keamanan: scope proyek ikut ditinjau tim dan Workspace Trust, scope user tetap pribadi namun luput review.
#mcp#vscode#security