Nomor kartu kredit untuk pengujian adalah deretan angka yang dirancang agar lolos pemeriksaan bentuk pada formulir pembayaran, walaupun tidak ada rekening apa pun di belakangnya. Angka seperti ini mengikuti aturan penomoran yang sama dengan kartu sungguhan, sehingga peramban, skrip otomatis, dan gateway sandbox memperlakukannya seperti kartu biasa. Setelah membaca halaman ini, Anda akan tahu dari mana nomor semacam ini berasal, di mana tempat memakainya, dan di mana batas amannya.
Pembahasan di bawah ini sengaja dipisah antara bagian untuk pembaca umum dan satu bagian teknis di bagian akhir untuk orang yang menulis kode pengujian.
Dari mana nomor kartu uji berasal
Jaringan kartu sejak lama menyediakan rentang nomor khusus untuk dokumentasi, demo, dan lingkungan percobaan. Rentang itu tidak pernah diterbitkan ke pemegang kartu, jadi tidak mungkin bertabrakan dengan kartu yang beredar di dompet orang. Penyedia pembayaran juga menerbitkan daftar nomor ujinya sendiri agar pengembang dapat memaksa hasil sukses atau gagal di sandbox mereka.
Selebihnya, nomor uji dibuat sendiri oleh tim pengembang memakai pembangkit berbasis aturan: pilih jaringan, tentukan panjang, lalu hitung digit pemeriksa. Cara terakhir inilah yang paling fleksibel karena jumlahnya tidak terbatas dan bisa disesuaikan dengan kebutuhan skenario.
Mengapa kartu kredit asli tidak boleh dipakai untuk menguji?
Menguji formulir pembayaran dengan kartu sungguhan terdengar praktis, tetapi menimbulkan dua masalah sekaligus. Pertama, nomor kartu hidup adalah kredensial pembayaran; begitu disalin ke lingkungan staging, ia berpindah ke sistem yang biasanya tidak diaudit seketat produksi. Kedua, satu kali salah tekan tombol kirim sudah cukup untuk menciptakan transaksi nyata yang harus dibatalkan secara manual.
Lingkungan uji juga sering diisi ulang, disalin ke laptop, atau dipakai bersama vendor luar. Setiap salinan menambah satu tempat lagi yang menyimpan data kartu pelanggan. Karena itu aturan industri yang berlaku umum menuntut lingkungan pengembangan dan pengujian bebas dari data pemegang kartu yang asli.
Apa perbedaannya dengan kartu kredit sungguhan?
Perbedaannya terletak pada tiga hal yang jarang terlihat dari luar:
| Aspek | Kartu sungguhan | Nomor uji |
|---|---|---|
| Rekening di belakangnya | Ada dan bisa ditagih | Tidak ada sama sekali |
| Hasil otorisasi | Bergantung penerbit | Hanya ditentukan sandbox |
| Boleh disimpan di lingkungan uji | Tidak | Ya, karena bukan data pribadi |
Perlu ditegaskan satu hal yang sering disalahpahami: nomor yang dihasilkan alat pembangkit bersifat benar secara struktur, tetapi tidak pernah diterbitkan oleh bank mana pun. Menerimanya di formulir hanya berarti bentuknya lolos, bukan berarti pembayaran bisa diselesaikan.
Di mana nomor semacam ini dipakai
- Uji unit dan uji integrasi untuk fungsi pembersihan masukan dan pemeriksaan panjang.
- Fixture otomatis yang perlu masukan stabil dan tidak berubah antar build.
- Demo produk di depan calon pelanggan, tanpa mengetik data siapa pun.
- Seed basis data staging yang harus terlihat realistis saat dijelajahi tim internal.
- Dokumentasi internal yang menjelaskan alur checkout langkah demi langkah.
Semua pemakaian di atas bersifat lokal atau internal. Begitu sebuah pengujian menyentuh jaringan pembayaran sungguhan, aturannya berubah: gunakan lingkungan sandbox milik penyedia dan kredensial uji yang mereka keluarkan sendiri.
Menyiapkan satu batch di generator kartu virtual
Kalau Anda butuh beberapa nomor sekaligus, generator kartu virtual di situs ini bisa membuat sekumpulan nomor dalam satu kali klik. Anda tinggal memilih jaringan, menentukan jumlah, lalu menyalin hasilnya ke formulir, berkas fixture, atau lembar kerja tim. Ada juga mode melengkapi nomor, berguna bila Anda sudah memegang sebagian prefiks dan ingin sisanya diisi sampai panjang asli jaringan tersebut.
Karena hasilnya bisa dibuat berulang dengan pengaturan yang sama, batch tersebut cocok dijadikan acuan regresi. Simpan daftar nomornya bersama berkas uji, bukan di dalam kepala seseorang.
Catatan untuk pengembang: memilih nomor untuk fixture
Saat menulis fixture, tiga hal berikut biasanya menentukan apakah pengujian Anda bertahan lama atau tidak.
- Pilih nomor yang bisa direproduksi. Fixture yang isinya berubah setiap kali dijalankan akan menyulitkan penelusuran kegagalan. Simpan nomor yang tetap, dan perlakukan seperti data acuan lain di repositori.
- Pisahkan data uji dari data rahasia. Berkas fixture tidak boleh memuat kredensial sandbox, apalagi data kartu nyata. Kesalahan konfigurasi paling mahal biasanya terjadi ketika kunci uji berpindah ke lingkungan produksi.
- Uji juga masukan yang rusak. Nomor yang lolos checksum hanya mencakup jalur bahagia. Tambahkan kasus panjang salah, karakter nonangka, prefiks tak dikenal, dan nomor kedaluwarsa, karena di situlah bug mahal bersembunyi.
Urutan pemeriksaan yang lazim dipakai adalah membersihkan pemisah, memeriksa panjang, memeriksa karakter, mengenali prefiks, lalu menghitung checksum. Menaruh pemeriksaan pada urutan yang salah membuat pesan galat membingungkan pengguna. Pola lengkapnya dibahas di panduan memvalidasi nomor kartu, sedangkan dasar aritmetikanya ada di penjelasan algoritma Luhn.
Satu kebiasaan kecil yang menghemat banyak waktu: beri nama berkas fixture sesuai skenarionya, bukan sesuai tanggal pembuatannya. Ketika pengujian gagal setahun kemudian, nama yang menjelaskan maksud akan jauh lebih berguna daripada stempel waktu.
Soal jumlah, mulailah dari luasnya skenario yang Anda dukung. Untuk formulir sederhana, satu nomor per jaringan sudah memadai. Untuk pengujian yang lebih serius, siapkan beberapa varian sekaligus: satu nomor normal, satu nomor dengan panjang tidak lazim, satu masukan yang checksum-nya sengaja dirusak, dan satu nomor yang sudah lewat masa berlakunya. Variasi seperti ini membuat pengujian Anda tidak hanya membuktikan bahwa jalur sukses berjalan, tetapi juga bahwa setiap penolakan muncul dengan pesan yang benar.
Apakah nomor uji boleh dipakai di mode produksi?
Tidak, dan alasan utamanya bukan soal teknis melainkan soal akibat. Di mode uji, nomor yang tidak pernah diterbitkan hanya menghasilkan galat dari sandbox. Di mode produksi, permintaan yang sama berjalan menuju jaringan pembayaran sungguhan dan tercatat sebagai percobaan transaksi, lengkap dengan jejak audit yang harus dijelaskan kemudian.
Batas ini juga berlaku untuk konfigurasi. Kunci sandbox yang tertinggal di berkas lingkungan produksi adalah kesalahan yang mahal karena biasanya ditemukan oleh pelanggan pertama, bukan oleh alat pemeriksa kode. Cara paling sederhana untuk mencegahnya adalah menjaga nama berkas lingkungan tetap eksplisit dan memeriksa ulang variabel lingkungan sebelum setiap penerapan.
Langkah berikutnya
Mulailah dari kebutuhan Anda. Kalau yang dicari hanya masukan untuk formulir atau demo, buat satu batch di halaman generator lalu simpan hasilnya sebagai berkas acuan. Kalau yang dicari adalah pemahaman tentang mengapa sebuah nomor diterima atau ditolak, lanjutkan ke pembahasan checksum. Dan bila pekerjaan Anda menyentuh apa pun yang bisa mencapai pelanggan nyata, baca dulu aturan kepatuhannya sebelum menyalin nomor apa pun ke lembar kerja bersama.