think
16px
820px

Blackbox Testing — Cross-doc Validation & Eligibility (Apostille & Legalisasi)

  • Domain: Apostille & Legalisasi
  • Fitur: Cross-doc Validation & Eligibility
  • Role/aktor: umum (pemohon), verifikator_apostille (di tahap berikutnya)
  • Tanggal uji: 2026-08-19
  • Penguji (sesi): Supervisor Apostille
  • Build/commit: 63c40a17 (dev/4)

1. Ringkasan fitur

Pada fase 2 (setelah "Lanjut ke Ekstraksi"), sistem mengekstraksi field tiap dokumen, mencocokkan identitas, mem-pre-match pejabat penandatangan, dan menjalankan APOSTILLE_RULE_SET (17 aturan). Aturan bertingkat FAIL/WARNING/SKIPPED menentukan apakah pemohon boleh mengirim ke verifikator. Aturan kelayakan kunci: kedua KTP wajib (termasuk saat mewakilkan/ORANG_LAIN), surat kuasa jadi sumber identitas untuk ORANG_LAIN, dokumen konvensional dengan pejabat tak terdaftar wajib Keterangan Keabsahan (elektronik dikecualikan), nama pemilik dokumen berbeda dari pemohon hanya WARNING, dan tipe (konvensional/elektronik) terdeteksi otomatis dari marker TTE.

2. Full workflow

2.1 Diagram state

stateDiagram-v2 [*] --> AWAITING_CLASSIFICATION AWAITING_CLASSIFICATION --> EXTRACTING: /start (gate identitas + kedua KTP) EXTRACTING --> VALIDATING: ekstraksi field + signer prematch VALIDATING --> READY: APOSTILLE_RULE_SET READY --> IN_VERIFICATION: /submit (gate FAIL + semua field dikonfirmasi + signer) READY --> READY: perbaiki field / override

2.2 Sequence (aktor - sistem)

sequenceDiagram actor U as umum participant BE as Backend participant V as Validator U->>BE: POST /:id/start BE->>BE: gate identitas KTP readable + kedua KTP (ORANG_LAIN) BE->>V: fase 2 ekstraksi + APOSTILLE_RULE_SET V-->>BE: hasil (FAIL/WARNING/SKIPPED/PASS) U->>BE: POST /:id/submit BE->>BE: gate (a) tidak ada FAIL, (b) semua field dikonfirmasi, (c) signer resolved BE-->>U: IN_VERIFICATION atau 409

2.3 Peta route & UI

Langkah Route Komponen Elemen Selector
Gate mulai ekstraksi POST /:id/start - - -
Tinjau + konfirmasi field /apostille/permohonan/:id/review ApostilleReviewPage konfirmasi field, atestasi [data-testid="apostille-pernyataan-progress"]
Kirim ke verifikator POST /:id/submit tombol Selesai - -

3. Prasyarat & data uji

ID data Tipe Berkas Deskripsi Ekspektasi sistem
D-POS-30 Positive apostille_elektronik_nosk (DIRI_SENDIRI) 1 KTP + 1 dokumen elektronik READY, signer SKIPPED (elektronik exempt)
D-NEG-35 Negative apostille_konvensional_sk (ORANG_LAIN) 2 KTP + surat kuasa + dokumen, satu KTP tak cocok /start 409 KTP_REQUIRED
D-NEG-36 Negative submit sebelum konfirmasi field Field belum dikonfirmasi 409 SECTIONS_NOT_CONFIRMED
D-NEG-37 Negative applicant minta bypass bypassValidations=true dari pemohon Ditolak (tetap 409); bypass hanya untuk staff + ALLOW_DEBUG_BYPASS

4. Matriks skenario uji

ID Tipe Lapisan Langkah ringkas Ekspektasi Hasil aktual Status Bukti
TC-ELG-01 Negative API ORANG_LAIN, satu KTP tak cocok, /start 409 KTP_REQUIRED (kedua KTP wajib) Sesuai PASS eligibility.spec
TC-ELG-02 Negative API /submit sebelum konfirmasi field 409 SECTIONS_NOT_CONFIRMED Sesuai PASS eligibility.spec
TC-ELG-03 Negative API /submit bypass dari pemohon Ditolak, tetap 409 Sesuai PASS eligibility.spec
TC-ELG-04 Positive API Cek posture validasi di READY AP_DOCS_NAME_MATCH = WARNING; signer elektronik SKIPPED Sesuai PASS eligibility.spec
TC-ELG-05 Positive API Konfirmasi semua field lalu /submit 200 IN_VERIFICATION Sesuai PASS eligibility.spec
TC-ELG-06 Positive API ORANG_LAIN routing dari surat kuasa pemberi=pemohon, penerima=proxy terbaca dari teks surat kuasa Sesuai PASS inspeksi review konvensional

5. Cakupan UI (semua yang diakses user)

Route/Elemen Diuji? Perilaku benar? Catatan
Gate /start (identitas + kedua KTP) Ya (API) Ya 409 KTP_REQUIRED saat KTP penerima/pemohon tak cocok
Konfirmasi field (review) Ya (API) Ya Gate SECTIONS_NOT_CONFIRMED
Atestasi pernyataan (4 item) Sebagian - Progress badge bertestid; belum dicentang via UI penuh
Tombol Selesai (/submit) Ya (API) Ya Gate FAIL + field + signer

6. Temuan bug & perbaikan

ID bug Severity Ringkas Reproduksi Ekspektasi Aktual Screenshot Rekomendasi perbaikan
- - Tidak ada bug pada logika kelayakan - - - - -

Observasi penting (bukan bug):
- Aturan berjalan sesuai memori proyek. AP_DOCS_NAME_MATCH = WARNING (bukan FAIL) saat nama pemilik dokumen berbeda dari pemohon. Untuk dokumen ELEKTRONIK, aturan signer (AP_T3_SIGNER_REQUIRED_FOR_TYPE, AP_SIGNER_UNREGISTERED) SKIPPED. Kedua KTP wajib untuk ORANG_LAIN ditegakkan di /start.
- Keamanan bypass (F17) tegak. Permintaan bypassValidations=true dari pemohon ditolak dan dicatat; hanya berlaku dengan ALLOW_DEBUG_BYPASS=on + pemanggil internal.
- Interaksi signer di tahap verifikator: dokumen elektronik pun dapat memiliki SignerMatch bila nama pejabat ter-OCR; ini memengaruhi gate APPROVE verifikator (lihat laporan Verifier Workspace), bukan gate submit pemohon.

7. Ringkasan & rekomendasi

  • Total skenario: 6 (PASS 6 / FAIL 0)
  • Cakupan UI: gate utama teruji via API; atestasi UI penuh sebagian
  • Bug: High 0, Med 0, Low 0
  • Rekomendasi prioritas: perkuat deteksi KTP (lihat laporan Classification BUG-CLS-01) agar jalur ORANG_LAIN happy-path tidak terhambat kedua-KTP-wajib.
  • Gap/keterbatasan: Jalur ORANG_LAIN sampai READY belum bisa diuji end-to-end dari data nyata karena satu KTP (format PDF) salah klasifikasi sehingga gate kedua-KTP memblokir (perilaku BENAR, tapi memblokir happy-path). Aturan signer keabsahan konvensional (AP_SIGNER_UNREGISTERED = FAIL tanpa Keterangan Keabsahan) diverifikasi dari kode + posture; end-to-end butuh dokumen konvensional yang sampai READY dengan signer tak terdaftar ("butuh data").