API Payload Schema & Type Assertion Engine

30:00

1. Studi Kasus

Sebagai QA Automation Engineer atau Software Engineer in Test, Anda bertugas membuat API schema validator & test suite assertion untuk memvalidasi kontrak payload JSON (request body) sebelum diproses oleh downstream microservice.

Endpoint:

POST /test/validate-payload

2. Spesifikasi Input & Output

Request Body Valid:

{
  "username": "dev_alex",
  "email": "alex@dev.com",
  "role": "ADMIN",
  "tags": ["js", "ts"]
}

Response Berhasil (HTTP 200):

{
  "valid": true,
  "message": "Payload schema validation passed"
}

Response Gagal Validasi (HTTP 400):

{
  "valid": false,
  "errors": [
    "username must be 3-20 alphanumeric characters",
    "role must be one of: ADMIN, USER, GUEST"
  ]
}

3. Aturan Schema & Validasi

  1. username: Harus bertipe string, panjang 3 hingga 20 karakter, hanya boleh mengandung huruf, angka, dan underscore (^[a-zA-Z0-9_]{3,20}$).
  2. email: Harus bertipe string dan mengandung karakter @ dan ..
  3. role: Harus bernilai salah satu dari enum berikut: "ADMIN", "USER", "GUEST".
  4. tags: Harus bertipe array, tidak boleh kosong (length > 0), dan seluruh elemennya bertipe string non-kosong.
  5. Jika ada minimal 1 aturan yang melanggar → HTTP 400 dengan { valid: false, errors: [...] }.
  6. Jika semua aturan sesuai → HTTP 200 dengan { valid: true, message: "Payload schema validation passed" }.

5. Pertanyaan Bonus Konseptual 💡

Metode Pengujian QA: Equivalence Partitioning & Boundary Value Analysis Di bagian komentar kode solusi Anda, jelaskan:

  • Equivalence Partitioning (EP): Pembagian input ke dalam kelas valid dan invalid.
  • Boundary Value Analysis (BVA): Pengujian nilai batas (misal untuk username min 3, max 20, nilai apa saja yang harus diuji: 2, 3, 4, 19, 20, 21).
solution.js
Loading...
Local Test Console