Saat sistem backend mulai berkembang, testing bukan lagi soal “cek asal jalan”. Kamu butuh pendekatan cepat dan terstruktur untuk memastikan perubahan kecil tidak merusak fungsi penting. Di sinilah Sanity Testing API jadi senjata andalan QA.
Tapi testing bukan tugas QA sendiri—developer juga punya peran besar. Jadi, yuk bahas bagaimana QA dan Dev bisa bahu-membahu menjaga kualitas API, dimulai dari sanity testing hingga pembagian tugas yang jelas.
Apa Itu Sanity Testing API?
Sanity testing adalah jenis pengujian ringan dan cepat yang dilakukan untuk memastikan fungsi-fungsi utama API masih berjalan normal setelah perubahan kecil seperti bug fix atau minor update. mirip seperti smoke testing.
Ibaratnya, sanity test itu seperti “cek denyut nadi” API sebelum kamu masuk ke tes besar seperti functional atau regression.
Tujuan Sanity Testing API
- Memastikan endpoint inti API tetap berfungsi
- Menjadi filter cepat sebelum full regression dilakukan
- Membuat planing untuk step testing berikutnya
- Menolak melanjutkan testing bila ada error besar (bloking bug)
Contoh Sanity Testing pada API E-commerce
Misalnya kamu punya backend API e-commerce. Setelah update kecil (misal: perbaikan diskon), sanity testing bisa fokus ke:
Endpoint | Tujuan | Ekspektasi |
---|---|---|
POST /login | Cek login masih berfungsi | Status 200, ada access_token |
GET /products | Pastikan produk bisa diakses | Status 200, berisi array produk |
POST /checkout | Checkout tetap bisa diproses | Status 200, pesan sukses |
Checklist Sanity Testing API
- Apakah user bisa login/logout?
- Apakah list data utama muncul (produk, user, dsb)?
- Apakah proses penting (create/update/delete) jalan?
- Apakah response status dan struktur masih konsisten?
- Apakah tidak ada error 500?
Tools untuk Sanity Testing API
Tools | Kegunaan |
---|---|
Postman | Manual testing dan run collection |
Newman | Run Postman collection via CLI/CI |
Thunder Client | Alternatif ringan dalam VS Code |
Jest + Supertest | Testing otomatis backend Node.js |
Laravel Artisan Test | Testing otomatis endpoint Laravel |
Contoh Sanity Test Otomatis (Jest + Supertest )
note. template api testing Jest + Supertest
describe("Sanity Check API", () => {
it("should login successfully", async () => {
const res = await request(app).post("/api/login").send({
email: "admin@mail.com",
password: "123456"
});
expect(res.statusCode).toBe(200);
expect(res.body).toHaveProperty("access_token");
});
it("should return products list", async () => {
const res = await request(app).get("/api/products");
expect(res.statusCode).toBe(200);
expect(Array.isArray(res.body)).toBe(true);
});
});
Pembagian Scope Testing: QA vs Developer
Untuk efisiensi kerja tim, penting banget bagi QA dan developer membagi tugas testing secara jelas:
Scope Developer: Unit & Integration Testing
Jenis Test | Contoh | Tujuan |
---|---|---|
Unit Testing | Fungsi validasi email | Cek kebenaran fungsi kecil di level kode |
Integration Testing | Login → validasi → DB → JWT | Pastikan modul saling terhubung dengan baik |
Middleware Testing | Auth token, rate limit | Verifikasi proses request secara berurutan |
Scope QA: Sanity, Functional, Regression
Jenis Test | Contoh | Tujuan |
---|---|---|
Sanity Testing | Login, ambil data, checkout | Cek endpoint inti setelah update kecil |
Functional Testing | Validasi form, alur checkout | Apakah fitur sesuai kebutuhan bisnis |
Regression Testing | Test ulang semua fitur lama | Pastikan tidak ada fitur rusak karena update |
Negative Testing | Input tidak valid, token salah | Cek sistem menolak data yang salah |
Kolaborasi QA & Dev: Biar Testing Makin Kuat
- Test Case Sharing: QA dan Dev menyepakati skenario testing kritikal
- Swagger & Mock API: QA bisa testing lebih awal meskipun backend belum final
- Error Format Agreement: QA dan Dev sepakat format error JSON agar konsisten
- Shared Postman Collection: Semua tim bisa jalankan sanity test yang sama
Prinsip Dasar QA–Dev Testing
Test di level yang tepat, oleh orang yang tepat.
- Dev: Fokus cek logic kecil (unit test)
- QA: Fokus cek flow pengguna dan fungsi bisnis
- Keduanya: Komunikasi intens & saling support
🔍 Kesimpulan
Sanity Testing adalah pertahanan pertama untuk menjaga kualitas API tetap stabil saat terjadi perubahan. Dipadukan dengan pembagian tugas yang jelas antara QA dan developer, hasil testing akan:
- Lebih cepat
- Lebih fokus
- Lebih andal dalam menemukan masalah besar sejak awal