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
{
"username": "dev_alex",
"email": "alex@dev.com",
"role": "ADMIN",
"tags": ["js", "ts"]
}
{
"valid": true,
"message": "Payload schema validation passed"
}
{
"valid": false,
"errors": [
"username must be 3-20 alphanumeric characters",
"role must be one of: ADMIN, USER, GUEST"
]
}
username: Harus bertipe string, panjang 3 hingga 20 karakter, hanya boleh mengandung huruf, angka, dan underscore (^[a-zA-Z0-9_]{3,20}$).email: Harus bertipe string dan mengandung karakter @ dan ..role: Harus bernilai salah satu dari enum berikut: "ADMIN", "USER", "GUEST".tags: Harus bertipe array, tidak boleh kosong (length > 0), dan seluruh elemennya bertipe string non-kosong.HTTP 400 dengan { valid: false, errors: [...] }.HTTP 200 dengan { valid: true, message: "Payload schema validation passed" }.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).