showmygear

Testing & Debugging: Layar Verifikasi

[!NOTE] Percaya itu baik. Verifikasi itu lebih baik. Verifikasi otomatis adalah yang terbaik. Di era AI, verifikasi adalah satu-satunya benteng integritas Anda.

Di era AI, membuat kode itu murah. Artinya bug juga murah. Bottleneck telah bergeser dari “Bagaimana cara nulis fungsi ini?” menjadi “Apakah fungsi ini benar-benar jalan?”.


📖 Daftar Isi


1. Paradoks Kecepatan AI


2. TDD 2.0: Test Driven Generation

graph TD
    subgraph Autonomous["Lapisan Otonom (AI)"]
        A1[Perubahan Kode] --> A2[Generasi Unit Test]
        A2 --> A3[Fuzz Testing / Edge Cases]
        A3 --> A4[Analisis RCA pada Kegagalan]
    end
    subgraph Manual["Lapisan Strategis (Arsitek)"]
        M1[Definisi Arsitektur] --> A1
        A4 --> M2[Review Logika Kritis]
        M2 --> M3[Audit Integrasi Sistem]
        M3 --> M4[Persetujuan Akhir/Ship]
    end
    
    style Autonomous fill:#f5f5f5,stroke:#9e9e9e,stroke-dasharray: 5 5
    style Manual fill:#e3f2fd,stroke:#1565c0,stroke-width:2px

3. Seni Debugging (Membaca > Menulis)

Rubber Ducking 2.0: Jelaskan balik kode buatan AI tersebut kepada AI itu sendiri. “Jelaskan logika di baris 15 kepada saya seolah-olah saya adalah mahasiswa tahun pertama.” Jika penjelasannya masuk akal dan sesuai dengan kode, barulah Anda bisa melangkah ke tahap selanjutnya.

Protokol RCA (Root Cause Analysis) Agentik

Jangan berikan error mentah kepada AI. Gunakan pola ini:

  1. Status Quo: Apa yang sedang terjadi saat ini? (Sertakan Stack Trace).
  2. Context: Berikan file yang berkaitan langsung dengan error tersebut.
  3. The Prompt: “Analisis pola dari logs ini. Identifikasi apakah masalahnya ada di State Management, API Gateway, atau Database Constraint. Jangan buat perbaikan dulu, jelaskan mengapa ini terjadi.”

4. Verifikasi Idempotensi

Sesuai dengan Konstitusi Arsitek, kode yang baik harus bersifat idempotent.


5. Observabilitas: “Di laptop saya jalan kok”

\[Visibilitas = Log + Metrik + Jejak\]

6. Diagrams as Code: Verifikasi Visual

Dalam filosofi “Dokumentasi adalah Kode”, diagram bukan lagi gambar mati yang diunggah ke cloud. Ia adalah teks berbasis Mermaid yang tinggal di dalam repositori.

Simbiosis ESLint & Mermaid

Integrasi ini memungkinkan kita melakukan linting dan validasi pada diagram, memastikan kualitas visual dan sinkronisasi dengan kode aplikasi.

Protokol Verifikasi Visual

  1. Definisikan di Kode: Diagram ditulis dengan sintaks graph TD; A-->B;.
  2. Validasi Otomatis: Linter mengecek apakah ada node yang tidak terdefinisi atau kesalahan gaya.
  3. Output Terjamin: Menghindari visual yang rusak di dokumentasi publik (GitHub/GitLab).

[!TIP] Dengan memperlakukan diagram sebagai kode kelas satu (First-class Code), Anda menjamin dokumentasi Anda tidak akan usang atau hancur saat proyek berkembang.


7. Checklist Verifikasi

Piramida Testing Modern

block-beta
    columns 1
    E2E["End-to-End (Browser Full) - 10%"]
    Integration["Integration (API/DB) - 30%"]
    Unit["Unit Tests (Fungsi Murni) - 60%"]
    
    style E2E fill:#ef9a9a,color:black
    style Integration fill:#fff59d,color:black
    style Unit fill:#a5d6a7,color:black

Testing Otonom (Autonomous Testing)

Manfaatkan AI untuk mencari “Unknown Unknowns”:

graph TD
    Code["Code Update"] --> Triage["AI RCA / Analysis"]
    Triage --> TestGen["Autonomous Test Generation"]
    TestGen --> Run["Run Test Suite"]
    Run -->|Fail| Triage
    Run -->|Pass| Verify["Idempotency Check"]
    Verify --> Final["Merge/Commit"]

🏠 Home | 🗺️ Roadmap | 📜 Konstitusi Arsitek