Pengujian Integrasi

Sample Payload yang Baik: Jangan Hanya Membuat Data yang Pasti Lulus

Menyusun sample payload normal, boundary, null, array kosong, duplikat, dan tipe salah untuk menguji kontrak.

Contoh payload sering dibuat sekadar agar tombol test menghasilkan hijau. Akibatnya kontrak terlihat benar, tetapi tidak membuktikan perilaku saat menerima data yang mendekati batas atau salah.

Inti pembahasan Sample payload adalah spesifikasi yang dapat dijalankan; isinya harus mewakili data valid, boundary, dan kegagalan yang realistis.

Mulai dari contoh valid minimal

Sertakan hanya field required dengan nilai sederhana yang tetap valid agar dependency minimum terlihat. Tentukan boundary proses sebelum memilih detail implementasi. Catat input, output, pemilik, dan kondisi selesai agar perubahan teknis tetap mengikuti kebutuhan bisnis.

Tambahkan contoh lengkap secara terpisah untuk optional dan nullable fields.

Uji batas dan struktur nested

Gunakan min-max, panjang minimum-maksimum, array kosong, satu item, banyak item, child null, dan date boundary. Periksa juga jalur yang tidak ideal. Null, data duplikat, gangguan koneksi, perubahan skema, dan timeout sering memperlihatkan asumsi yang tidak tampak pada happy path.

Pastikan expected result menyebut field path serta aturan yang diuji.

Buat kegagalan yang disengaja

Tukar string dan integer, hilangkan required field, kirim enum asing, format UUID salah, dan ulangi identifier. Gunakan nama dan struktur yang dapat dibaca tanpa membuka semua konfigurasi. Kejelasan mempercepat review dan mengurangi ketergantungan pada satu orang yang memahami sejarah integrasi.

Satu payload sebaiknya menguji satu penyebab utama agar hasil mudah didiagnosis.

01

Minimal

Required fields saja

02

Boundary

Batas nilai dan array

03

Invalid

Satu penyebab per payload

04

Safe

Sintetis dan mudah dibersihkan

Jaga data uji aman dan dapat dibersihkan

Jangan menyalin PII, secret, nomor pelanggan, atau transaksi Production untuk memperoleh contoh realistis. Buktikan rancangan melalui simulasi dan Sandbox menggunakan data yang aman. Catat expected result, actual result, serta dampak pada sistem tujuan sebelum trafik operasional diaktifkan.

Gunakan identifier berlabel TEST, data sintetis, dan prosedur cleanup setelah Sandbox.

Gunakan hasil pembahasan ini sebagai bahan walkthrough lintas tim. Minta pemilik proses, developer, operator, dan pihak keamanan menyepakati kontrak, outcome, serta tindakan pemulihan. Workflow visual membantu membuat keputusan itu terlihat, tetapi tidak menggantikan ownership, pengetahuan domain, atau review manusia. Simpan alasan keputusan bersama contoh input dan hasil yang telah dibuktikan. Dengan begitu, anggota tim berikutnya dapat membedakan perilaku yang disengaja dari konfigurasi yang sekadar kebetulan bekerja.

Contoh nyata

Contoh nyata

Kontrak invoice diuji dengan payload minimal valid, payload lengkap, items kosong, quantity minimum, UUID salah, enum status asing, duplikat invoice_number, dan satu detail yang melanggar constraint. Gunakan skenario tersebut untuk mengikuti data dari pemicu hingga outcome. Catat perubahan field, sistem yang disentuh, bukti selesai, dan keadaan akhir bila salah satu langkah gagal.

Anti-pattern yang perlu dihindari

Satu payload sempurna dengan semua field terisi tidak menguji optional, nullable, boundary, array, atau pesan field path. Test terlihat hijau karena sengaja menghindari seluruh risiko. Masalahnya bukan hanya keterbacaan. Pola ini dapat menyembunyikan dependency, membuat response menyesatkan, atau mendorong operator mengulang proses yang sebenarnya membutuhkan koreksi data.

Langkah review

Buat matriks satu penyebab per payload, expected status, expected node, dan dampak destination. Muat sample dari kontrak, lalu ubah hanya field yang sedang diuji. Reviewer perlu meminta contoh input, expected result, trace node, serta bukti pada destination. Jalur gagal harus diuji dengan perhatian yang sama seperti jalur sukses.

Keputusan operasional

Gunakan prefix TEST dan data sintetis. Tetapkan cleanup untuk record yang benar-benar ditulis oleh Sandbox serta jangan memasukkan token atau PII Production ke contoh tersimpan. Tentukan siapa yang memantau, kapan retry diizinkan, kapan proses dihentikan, dan siapa yang mengambil keputusan jika hasil tidak konsisten. Masukkan jawaban ke runbook. Sertakan indikator yang dapat diamati, cara memperoleh correlation ID, serta bukti yang harus tersedia sebelum proses boleh dinyatakan pulih dan tiket operasional ditutup.

Pertanyaan sebelum diterapkan

Apakah integer diuji dengan decimal? Apakah null berbeda dari missing? Apakah item array melaporkan index? Apakah duplicate menghasilkan outcome yang dapat ditindaklanjuti? Sebelum menyimpan perubahan, pastikan istilah, ownership, kontrak, dan outcome dipahami lintas tim. Jika jawaban masih berbeda, desain belum cukup jelas untuk Production. Dokumentasikan keputusan, pihak yang menyetujui, asumsi yang masih berlaku, dan tanggal review berikutnya agar konteks tidak hilang saat tim atau sistem berubah.

Batas yang perlu dipahami

NitroNet membantu memvalidasi, mengarahkan, mengantrekan, dan menelusuri perjalanan data melalui agent serta workflow. Platform ini tidak menggantikan logika domain, kebijakan organisasi, atau sistem sumber dan tujuan. Efek API eksternal tetap at-least-once; transaksi ACID hanya berlaku dalam satu koneksi database, sedangkan koordinasi lintas database memakai Saga dan kompensasi.

Langkah berikutnya

Pelajari fondasinya melalui integrasi agent-centric, baca artikel lain di Blog NitroNet, lalu tinjau cara kerja dan fitur workflow NitroNet. Terapkan perubahan secara bertahap dan buktikan perilakunya dengan data uji sebelum Production.

Bawa konsep ke kasus nyata

Sedang merancang integrasi lintas-sistem?

Petakan satu alur nyata bersama tim NitroNet untuk melihat posisi agent, Core, workflow, dan batas transaksinya.

Bahas arsitektur AndaKembali ke blog
Chat WhatsApp