Ketika jumlah negara yang dilayani bertambah, biaya pengujian biasanya ikut bertambah lebih cepat daripada jumlah negaranya. Penyebabnya jarang berupa jumlah kasus uji, melainkan karena setiap negara diperlakukan sebagai keperluan tersendiri yang tidak berbagi aturan dengan negara lain.
Halaman ini membahas cara memperbesar data uji antar negara dengan memisahkan hal yang berlaku untuk semua negara dari hal yang memang khusus, sehingga penambahan negara tidak selalu berarti penambahan pekerjaan yang sebanding.
Apa yang paling mahal ketika negara bertambah?
Yang paling mahal bukan menambah baris data, melainkan menambah pemeriksaan yang khusus untuk satu negara. Pemeriksaan semacam itu cepat menumpuk, saling bertabrakan, dan akhirnya membuat tim enggan menambahkan negara baru meskipun secara bisnis menguntungkan.
Biaya kedua adalah pemeliharaan kumpulan data contoh. Bila setiap negara memiliki satu berkas contoh yang disalin dari negara lain lalu disunting, setiap perubahan aturan bersama harus disunting berkali-kali, dan satu berkas yang terlewat akan menghasilkan hasil uji yang berbeda tanpa alasan yang jelas.
Biaya ketiga adalah waktu menjalankan pengujian. Kumpulan data yang tumbuh mengikuti jumlah negara akan melambat sebanding dengan pertumbuhannya, sehingga umpan balik yang seharusnya cepat menjadi lambat, dan pengujian mulai dihindari.
Ketiganya berakar pada hal yang sama: memperlakukan setiap negara sebagai keperluan yang berdiri sendiri, bukan sebagai satu contoh dari sejumlah perilaku yang perlu diuji.
Bedakan invarian dari pengecualian
Invarian adalah pernyataan yang harus benar untuk semua negara tanpa kecuali. Karena berlaku luas, invarian hanya perlu diuji dengan sedikit contoh, dan contohnya boleh diganti kapan saja.
| Jenis pernyataan | Contoh | Berapa banyak contoh yang perlu diuji |
|---|---|---|
| Invarian | Nilai yang dipilih dari daftar tersimpan kembali sebagai nilai itu, tanpa berubah | Beberapa, dipilih yang paling berbeda bentuknya |
| Invarian | Mengganti bahasa antarmuka tidak mengubah nilai yang sudah tersimpan | Beberapa, cukup satu dengan perbedaan bahasa yang jelas |
| Pengecualian | Wilayah tertentu menerima bentuk masukan yang berbeda dari bentuk umum | Satu per pengecualian, ditulis alasannya |
| Pengecualian | Wilayah tertentu tidak memiliki satu kolom yang wajib di wilayah lain | Satu per pengecualian, dengan penanda kolomnya |
Pengecualian yang tidak dicatat sebagai pengecualian akan berubah menjadi pemeriksaan khusus yang tersebar di banyak tempat. Sebaliknya, pengecualian yang dicatat di satu daftar bisa ditinjau bersama, dan jumlahnya bisa dijaga agar tetap kecil.
Bila daftar pengecualian terus bertambah tanpa henti, biasanya itu pertanda bahwa invariannya belum dirumuskan dengan tepat. Invarian yang terlalu sempit akan memaksa banyak pengecualian muncul, padahal masalahnya ada pada rumusan, bukan pada negaranya.
Cara memperbesar kumpulan data tanpa menggandakan pekerjaan
Bangun kumpulan data dari aturan, bukan dari salinan. Untuk setiap perilaku yang diuji, tentukan aturannya, lalu hasilkan contoh untuk beberapa negara yang paling berbeda bentuknya. Cara ini menjaga jumlah contoh tetap terkendali sementara cakupannya tetap luas.
Pilih negara contoh berdasarkan perbedaan bentuk, bukan berdasarkan popularitas. Satu negara dengan bentuk masukan yang khas biasanya lebih berguna daripada beberapa negara yang semuanya berperilaku sama, karena yang diuji adalah kemampuan sistem menangani perbedaan, bukan kemampuan menghitung baris.
Pisahkan berkas aturan dari berkas data. Berkas aturan memuat hal yang berlaku luas, sedangkan berkas data memuat hal yang khusus. Dengan pemisahan itu, menambahkan negara baru cukup dilakukan dengan menambah data, dan aturannya tidak perlu disentuh.
Jalankan juga pemeriksaan yang menolak data yang tidak sah, tetapi pastikan pemeriksaan itu tidak bergantung pada daftar negara tertentu. Pemeriksaan yang menyebut negara satu per satu akan menua dengan cepat, dan bagian yang menua paling cepat biasanya justru yang paling jarang diperbarui.
Kapan jumlah kasus uji cukup berhenti bertambah?
Pertanyaan yang lebih berguna daripada berapa negara yang tercakup adalah berapa perilaku yang sudah tercakup. Bila setiap perilaku sudah memiliki paling sedikit satu contoh yang menantang, menambah negara biasanya hanya menambah waktu tanpa menambah temuan.
Patokan yang bisa dipakai adalah nilai tambah temuan. Tambahkan negara baru ke kumpulan uji ketika ia membawa bentuk perbedaan yang belum ada, misalnya bentuk masukan yang berbeda, kolom yang berbeda, atau urutan alamat yang berbeda.
Sebaliknya, hentikan penambahan bila negara baru hanya mengulang bentuk yang sudah terwakili. Menahan diri di titik ini penting, karena kumpulan uji yang terlalu besar akan memperlambat seluruh tim, dan perlambatan itu biasanya dibayar dengan menonaktifkan sebagian pengujian.
Keputusan untuk berhenti juga harus ditinjau ulang, karena kenyataan berubah. Peninjauan berkala bisa dikaitkan dengan jadwal pemeriksaan data, seperti yang dibahas di panduan kesegaran data negara, agar dua pekerjaan itu tidak berjalan sendiri-sendiri.
Penanda yang memudahkan penyaringan data uji
Beri setiap contoh uji penanda tentang perilaku yang diujinya, bukan hanya tentang negaranya. Dengan penanda perilaku, pengujian bisa dijalankan sebagian sesuai keperluan, misalnya hanya bagian yang menyentuh penyimpanan nilai atau hanya bagian yang menyentuh tampilan.
Penanda yang berguna biasanya mencakup hal berikut.
- Nama negara sebagai data, agar contoh mudah dilacak ke asalnya.
- Perilaku yang diuji, misalnya penyimpanan nilai, tampilan, atau pencarian.
- Sifat khusus bila ada, misalnya wilayah dengan aturan tersendiri atau kolom yang tidak berlaku.
- Tingkat kepentingan, agar ada bagian yang selalu dijalankan sebelum perubahan diterapkan.
Penanda yang lengkap memudahkan penyaringan, tetapi hendaknya jangan sampai menjadi pengganti aturan. Penanda menjelaskan contoh uji, sedangkan aturan menjelaskan perilaku yang diharapkan.
Untuk memastikan tidak ada perilaku yang terlewat ketika kumpulan data diperbesar, gunakan daftar cakupan data per negara sebagai daftar periksa, karena daftar itu menunjukkan kolom mana yang belum memiliki contoh uji sama sekali.
Catatan untuk pengembang: bangun data uji dari aturan, bukan dari salinan
Simpan aturan di satu tempat dan simpan contoh di tempat lain, lalu hasilkan data uji dari keduanya. Cara ini membuat penambahan negara menjadi pekerjaan yang kecil dan terukur.
Hindari menyalin berkas contoh antarnegara, karena salinan akan menyimpang tanpa ada yang menyadarinya. Bila sebuah contoh memang perlu berbeda, tandai perbedaannya sebagai pengecualian yang bernama.
Sediakan cara sederhana untuk menjalankan hanya sebagian pengujian, supaya kumpulan data yang besar tetap bisa dipakai sehari-hari. Kumpulan data yang hanya bisa dijalankan seluruhnya akan jarang dijalankan.
Pemahaman tentang cara kerja pemeriksaan yang dipakai pada nilai seperti nomor identitas dibahas di panduan cara kerja pemeriksaan nomor, karena aturan di lapisan itu juga perlu dipisahkan dari data negara.
Daftar invarian, pengecualian, dan contoh yang dipakai di halaman ini adalah data sintetis untuk menjelaskan cara penyusunan, bukan standar lengkap atau daftar resmi yang harus diikuti, dan bukan pengganti penilaian tim Anda sendiri.
Langkah berikutnya
Hitung berapa negara yang ada di kumpulan data uji Anda, lalu hitung berapa perilaku yang tercakup olehnya. Bila jumlah negara jauh lebih besar daripada jumlah perilaku yang tercakup, bagian pengujian yang perlu ditambah adalah perilakunya. Sebagai bahan penyusunan contoh, direktori negara dan wilayah memperlihatkan bentuk penyajian setiap negara beserta wilayah administratif di bawahnya.