Menu

Generator alamat acak yang tetap konsisten untuk data uji

Generator alamat acak menyusun catatan dari banyak negara dengan bidang yang saling cocok, dan kunci tetap membuat hasilnya dapat diulang saat kutu dilaporkan.

Diterbitkan

  • data uji
  • alamat
  • pengujian

Generator alamat acak sering dibayangkan sebagai tombol yang mengeluarkan alamat berbeda setiap kali ditekan, padahal kebutuhan sebenarnya lebih halus daripada itu. Yang dicari tim pengembang adalah catatan yang beragam, tetapi setiap catatannya tetap masuk akal: kotanya cocok dengan wilayahnya, kode posnya cocok dengan kotanya, dan nomor teleponnya cocok dengan negaranya. Uraian berikut menjelaskan bedanya mengacak nilai dengan menyusun catatan, mengapa keluaran yang dapat diulang lebih berguna daripada keluaran yang selalu berubah, dan cara memakai alamat acak untuk pengujian berbasis data maupun uji beban.

Acak bukan berarti sembarangan

Mengacak setiap bidang secara terpisah adalah cara tercepat menghasilkan data yang tidak berguna. Bila nama kota diambil dari daftar negara A sementara kode pos diambil dari daftar negara B, hasilnya adalah catatan yang bentuknya benar tetapi isinya bertentangan. Catatan seperti itu masih dapat dipakai untuk menguji panjang kolom dan penyandian karakter, tetapi tidak lagi dapat dipakai untuk menguji logika bisnis yang justru paling sering rusak.

Pengacakan yang berguna bekerja pada tingkat catatan, bukan pada tingkat bidang. Satu negara dipilih lebih dahulu, lalu seluruh bidang diturunkan dari kumpulan data negara itu sehingga setiap nilai saling mendukung. Kota menentukan wilayah, wilayah menentukan kode pos, kode pos menentukan awalan nomor telepon, dan nama jalan mengikuti pola penamaan setempat. Baru setelah catatan utuh terbentuk, variasi ditambahkan pada tingkat berikutnya.

Karena itu, gunakan pengacakan untuk memilih di antara catatan yang sah, bukan untuk menciptakan nilai baru di luar aturan. Prinsip ini terdengar sederhana, tetapi hampir semua generator yang dibuat sendiri dalam sehari melanggarnya, dan kegagalan pengujian yang muncul kemudian biasanya disalahkan pada kode aplikasi yang sebenarnya tidak bersalah. Pola penyusunan catatan yang konsisten dibahas lebih jauh pada data alamat dalam berkas uji.

Mengapa hasil yang berubah setiap kali menyulitkan pengujian?

Karena pengujian yang gagal harus dapat diulang, dan pengulangan menuntut masukan yang sama. Bila catatan berubah setiap kali dibangun, laporan kutu hanya dapat menyebut bahwa kolom tertentu terpotong pada suatu alamat yang tidak lagi dapat ditemukan. Pengembang lalu menebak alamat mana yang dimaksud, sering menebaknya salah, dan menghabiskan waktu untuk masalah yang bukan masalah.

Kesulitan kedua muncul pada rangkaian pengujian otomatis. Setiap perubahan kode menjalankan kembali seluruh pengujian dari keadaan kosong, dan masukan yang berubah membuat perbandingan hasil menjadi tidak bermakna. Kegagalan yang seharusnya dapat ditelusuri menjadi gejolak yang hilang begitu pengujian dijalankan ulang, dan tim berhenti mempercayai hasil pengujiannya sendiri.

Jalan tengahnya sederhana. Pakai kunci yang tetap dan negara yang tetap untuk semua pengujian yang perlu dapat diulang, lalu pakai kunci berbeda bila memang ingin keragaman. Situs ini bekerja dengan cara itu: kunci yang sama dan negara yang sama selalu menghasilkan catatan yang sama, sehingga satu contoh dapat dipatok dalam laporan dan dibuka kembali oleh siapa pun di tim.

Kunci dan negara sebagai penentu keluaran

Dua masukan itu sudah cukup untuk menentukan seluruh catatan. Negara menentukan kumpulan data yang dipakai, sedangkan kunci menentukan pilihan di dalam kumpulan itu. Hasilnya adalah keluaran yang tampak acak bagi pembaca karena tidak ada pola yang terlihat, tetapi sebenarnya tetap dan dapat dihitung ulang kapan saja.

Pemisahan peran ini berguna untuk pengujian berskala besar. Bila Anda ingin seribu catatan, gunakan seribu kunci berbeda pada negara yang sama. Bila Anda ingin catatan yang sama persis seperti kemarin, gunakan kunci yang sama. Tidak ada berkas yang perlu disimpan, tidak ada basis data yang perlu dicadangkan, dan tidak ada keadaan tersembunyi yang membuat hasil berbeda di mesin yang berbeda.

Satu hal yang perlu diperhatikan adalah pemilihan negaranya. Untuk pengujian alur pendaftaran internasional, pilih negara yang benar-benar melayani pengguna Anda, karena setiap negara membawa pola penulisan yang berbeda dan pola itulah yang diuji. Cara memilih negara untuk data uji dibahas pada memilih negara untuk data uji, termasuk pertimbangan mana negara yang sebaiknya selalu disertakan dalam himpunan uji tetap.

Ekspor berkas untuk pengujian berbasis data

Pengujian berbasis data memerlukan daftar masukan yang dapat dibaca dari berkas, dan di sinilah hasil pengacakan berpindah bentuk. Hasilkan sekumpulan catatan sekali saja, simpan sebagai berkas acuan, lalu perlakukan berkas itu seperti data tetap lainnya. Pendekatan ini menggabungkan dua keuntungan: keragaman yang dihasilkan pengacakan, dan kestabilan yang dibutuhkan pengujian yang dapat diulang.

Berkas acuan juga memudahkan peninjauan oleh orang lain. Seorang penguji dapat membuka berkas itu dan langsung melihat apakah ada catatan yang janggal, misalnya kota yang tidak ada di negara yang bersangkutan atau kode pos yang bentuknya salah. Pemeriksaan seperti ini jauh lebih sulit dilakukan bila catatan hanya muncul sekejap di layar dan tidak pernah disimpan.

Perhatikan bahwa berkas acuan cepat menjadi basi bila daftar rujukan di dalamnya diperbarui. Tetapkan satu titik dalam proyek untuk memperbarui berkas itu, catat tanggalnya, dan jangan mengubahnya di tengah proses pengujian yang sedang berjalan. Bila data harus diperbarui di tengah jalan, buat berkas baru dan bandingkan hasil pengujian antara keduanya.

Kesalahan yang paling sering muncul pada data multi-negara

Kesalahan pertama adalah ketidakcocokan antara wilayah dan kode pos. Ini muncul ketika kode pos diambil dari daftar umum lintas negara atau ketika daftar kode pos disusun tanpa memisahkan negaranya. Kesalahan ini paling sulit terlihat karena deretan angka tidak memberi petunjuk apa pun kepada pembaca yang tidak menghafal pembagian wilayah.

Kesalahan kedua adalah ketidakcocokan antara kode telepon dan kota. Nomor yang bentuknya sah tetapi memakai kode wilayah negara lain akan lolos dari pemeriksaan panjang saja, dan baru terlihat ketika sistem mengirim pesan uji ke nomor itu. Kesalahan ketiga adalah penggunaan penanda wilayah yang tidak ada di negara tersebut, misalnya singkatan negara bagian Amerika Serikat yang ditempelkan pada catatan Kanada atau Australia.

Kesalahan keempat berkaitan dengan pengodean dan penyimpanan. Kode pos yang disimpan sebagai bilangan kehilangan angka nol di depan, dan huruf bertanda diakritik rusak ketika berkas ditulis tanpa pengodean yang benar. Keduanya mudah dicegah, tetapi hanya bila Anda memang mengujinya. Perbandingan aturan kode wilayah antarnegara ada pada kode negara dan kode wilayah.

Apakah alamat acak berguna untuk uji beban dan uji fuzzing?

Ya, tetapi dengan syarat yang berbeda dari pengujian fungsional biasa. Untuk uji beban, yang dibutuhkan adalah volume besar catatan yang semuanya sah, karena tujuan pengujiannya adalah mengukur perilaku sistem pada jumlah besar dan bukan menemukan bentuk masukan yang aneh. Catatan yang saling bertentangan justru mengaburkan hasil, sebab kegagalan bisa berasal dari data yang tidak masuk akal.

Untuk uji ketahanan, yang dibutuhkan justru sebaliknya: masukan yang cacat dengan sengaja, seperti kode pos yang terlalu pendek, nama jalan yang sangat panjang, jarak berlebih di dalam satu bidang, dan huruf di tempat yang seharusnya angka. Data yang dihasilkan generator berguna sebagai dasar yang sah, lalu kerusakan ditambahkan secara terkendali di atasnya sehingga Anda tahu persis apa yang sedang diuji.

Pisahkan kedua himpunan itu sejak awal. Himpunan sah dipakai untuk uji beban dan pengujian alur normal, sedangkan himpunan cacat dipakai untuk menguji penanganan kesalahan. Mencampur keduanya membuat hasil pengujian sulit ditafsirkan, dan biasanya berakhir dengan tim yang menonaktifkan sebagian pemeriksaan hanya agar pengujiannya lewat.

Menyusun himpunan data yang dapat dipakai ulang

Mulailah dari satu negara dan satu kunci, lalu perluas hanya ketika ada alasan yang jelas. Tambahkan negara baru ketika ada pengguna dari negara itu, tambahkan kasus cacat ketika ada kesalahan nyata yang ingin dicegah, dan hapus kasus yang tidak lagi menguji apa pun. Himpunan uji yang tumbuh tanpa pemeriksaan ulang akan menjadi lambat, rapuh, dan akhirnya diabaikan.

Simpan himpunan itu dalam berkas yang dapat dibaca mesin, dengan penanda negara pada setiap catatan. Beri nama berkas yang menyebut cakupan negaranya dan tanggal pembuatannya, karena dua berkas dengan nama yang mirip tetapi isi yang berbeda adalah sumber kebingungan yang sangat mahal. Untuk keperluan pengisian cepat, generator alamat di situs ini dapat menghasilkan catatan pada kunci yang Anda tentukan, dan bila Anda memerlukan padanan negara lain, generator alamat Turki memakai prinsip yang sama dengan lapisan alamat yang lebih dalam.

Menentukan berapa banyak catatan yang cukup

Jumlah catatan yang tepat bergantung pada pertanyaan yang ingin dijawab. Untuk memastikan formulir menerima satu alamat dengan benar, satu catatan sudah memadai. Untuk memastikan daftar dan pencarian bekerja pada volume besar, beberapa ribu catatan diperlukan. Untuk menguji tata letak, beberapa puluh catatan dengan panjang yang berbeda-beda biasanya lebih berguna daripada ribuan catatan yang panjangnya seragam.

Kesalahan yang paling sering terjadi adalah memakai jumlah besar untuk pertanyaan yang sebenarnya sederhana. Pengujian yang menghasilkan puluhan ribu catatan pada setiap eksekusi akan berjalan lambat, sulit dianalisis, dan akhirnya dilewati begitu saja oleh tim. Sebaliknya, pengujian yang hanya memakai tiga catatan untuk menguji perilaku pada volume besar tidak akan pernah menemukan masalah yang baru muncul ketika datanya banyak.

Tentukan dua himpunan sejak awal. Himpunan kecil dijalankan pada setiap perubahan kode dan memuat kasus batas yang paling penting, sedangkan himpunan besar dijalankan secara berkala dan memuat keragaman yang luas. Pemisahan itu membuat setiap pengujian punya alasan yang jelas untuk ada, dan memudahkan Anda memutuskan mana yang boleh dilewati ketika waktu mendesak.

Perlu diingat bahwa volume besar juga menguji hal-hal di luar aplikasi, misalnya waktu muat basis data, ukuran berkas ekspor, dan perilaku antarmuka ketika daftarnya menjadi sangat panjang. Karena itu, hasilnya perlu dibaca dengan hati-hati. Kegagalan pada himpunan besar belum tentu menunjuk kutu pada kode Anda, kadang ia hanya menunjuk batas lingkungan yang perlu disesuaikan.

Langkah berikutnya

Putuskan dahulu himpunan mana yang perlu dapat diulang dan himpunan mana yang memang harus beragam, lalu patok kunci untuk setiap keperluan. Sesudah itu, periksa tiga kecocokan yang paling murah, yaitu wilayah dengan kode pos, kode telepon dengan kota, dan penanda wilayah dengan negaranya. Ketiganya menemukan kesalahan nyata dalam hitungan detik dan tidak memerlukan perkakas tambahan.

Seluruh catatan dari generator ini adalah data sintetis untuk pengujian perangkat lunak, demo formulir, dan pengisian lingkungan staging. Bentuk dan kecocokan bidangnya sengaja dibuat benar agar sistem Anda teruji dengan jujur, tetapi tidak ada catatan di dalamnya yang menunjuk orang, rumah, atau rekening yang sungguh ada, dan tidak satu pun boleh dipakai untuk melewati pemeriksaan identitas yang sebenarnya.

Lanjut membaca

Alat populer dan artikel cara pakai