Praktik apa yang ada untuk pengujian unit khusus lokal?

17

Kami baru-baru ini menemukan masalah khusus lokal di aplikasi kami dan meskipun mudah untuk diperbaiki (setelah kami mengetahui apa yang sedang terjadi), hal itu membuat tim saya memikirkan tentang praktik unit testing dalam hal ini.

Kami ingin menangkap masalah ini lebih cepat, idealnya sebelum ditemukan oleh pelanggan, dan kami ingin melindungi diri dari memperkenalkan kembali bug spesifik lokal di masa mendatang, tetapi menduplikasi setiap unit test di setidaknya satu budaya lain sepertinya banyak sekali atas.

Bagaimana Anda atau bagaimana Anda akan mendekati pengujian unit multi-lokal?

Adam Lear
sumber
1
Ingin memberikan detail lebih lanjut tentang masalah yang Anda alami? Kedengarannya menarik, dan saya ingin tahu lebih banyak tentangnya.
Mchl
1
@ Mcl Ini adalah bug lokal Turki . Kami memiliki beberapa kode perbandingan string yang menyertakan huruf i.
Adam Lear

Jawaban:

4

Secara umum Anda tidak perlu menduplikasi setiap unit test. Anda harus mengidentifikasi apa yang benar-benar tergantung pada lokal (daftar periksa yang baik ada di sini ). Banyak hal yang terkait dengan internasionalisasi tunduk pada tingkat pengujian yang lebih tinggi daripada tes unit.

Jika Anda berurusan dengan data string yang mungkin datang dalam pengkodean yang berbeda, maka Anda dapat menggunakan "data driven testing", yaitu meneruskan data dalam pengkodean berbeda ke metode pengujian yang sama. Untuk Java, TestNG paling cocok untuk ini.

Masalah lain yang mungkin terjadi adalah format / parsing tanggal / waktu. Sebagian besar lokal menggunakan: untuk memisahkan elemen waktu, tetapi ada yang menggunakan titik dan Brasil menggunakan hm dan s (12h15m30s). Ini juga dapat digunakan oleh data yang dilewatkan di lokasi yang berbeda - Anda tidak perlu menguji semuanya.

Dan menguji GUI dengan lokal kanan-ke-kiri biasanya bukan subjek pengujian unit.

Intinya adalah bahwa Anda perlu mengidentifikasi data apa dalam unit test Anda yang spesifik lokal dan menggunakan pengujian berbasis data (penyedia data) untuk memasok data ini ke tes Anda.

Sergii Pozharov
sumber
3

Berikut beberapa saran:

  • Selalu kembangkan pada mesin dengan pengaturan lokal yang berbeda dari audiens target utama Anda. Ini akan membantu Anda menemukan bug yang terkait dengan tanggal, mata uang, dan setiap masalah pemformatan numerik dengan sangat cepat. Lakukan hal yang sama dengan server build Anda, letakkan di Brazil atau Vietnam (bukan secara fisik, hanya pengaturannya).

  • Gunakan aksen dan karakter khusus dalam judul, string, dll dalam tes unit Anda. Masalah internasionalisasi yang paling umum saya dapatkan dengan perangkat lunak yang saya gunakan (bukan yang saya kembangkan) adalah dengan é dan è atau bahkan ç dalam bahasa Prancis. Tempatkan mereka di setiap string yang Anda gunakan dalam tes Anda. Gunakan kata umum yang Anda gunakan sepanjang waktubrèç©

  • Jangan lupa untuk menggunakan aksen dan grafik khusus di jalur juga. Visual Studio.NET sendiri masih memiliki banyak masalah dengan itu! Anda harus mengakses membuat direktori seperti itu dan membaca / menulis dari mereka dalam tes Anda.

  • Jika Anda menggunakan Visual Studio .NET, di properti proyek, di bawah Analisis Kode , aktifkan Aturan Globalisasi . Sebagian besar masalah umum akan menghasilkan peringatan saat kompilasi.

  • Pekerjakan orang asing di tim Anda.


sumber