Poin utama

  • Uji label, persyaratan, dan format pembaruan peralihan negara tersebut secara bersamaan
  • Pisahkan input mentah, nilai yang dinormalisasi, dan hasil server
  • Konfigurasikan token pelengkapan otomatis semantik dan label lokal yang terlihat
  • Pertahankan masukan setelah kegagalan dan alihkan fokus ke kesalahan yang berguna

Penulis dan tinjauan

Prinsip editorial
Ditulis oleh
Tim Editorial Penghasil Alamat Acak
Ditinjau oleh
Formulir dan Tim Peninjau QA
Pembaruan substantif terakhir
Menambahkan peralihan negara, bidang dinamis, token pelengkapan otomatis, dan matriks pengujian berlapis.

Lapisan satu: status pergantian negara

Memilih suatu negara dapat memberi label ulang Kota, mengubah Negara Bagian menjadi Provinsi atau Prefektur, menyembunyikan wilayah, dan mengganti petunjuk kode pos. Tegaskan bahwa UI dan API berasal dari konfigurasi negara yang sama.

Jangan pernah menghapus teks yang dimasukkan secara diam-diam saat terjadi perubahan negara. Konfirmasikan terlebih dahulu atau simpan draf per negara, lalu masukkan perilaku tersebut ke dalam uji regresi.

NegaraLabel yang dilokalkanPerilaku kunci
Amerika SerikatNegara / Kode PosStatus dua huruf dan ZIP lima digit
KanadaProvinsi/Kode PosA1A 1A1 dengan spasi
Inggris RayaPost Town / Kode PosDaerah biasanya opsional
JepangPrefektur / Kode PosKode tujuh digit dan beberapa level
AustraliaSuburb / Negara Bagian / Kode PosKode pos empat digit

Lapisan dua: HTML semantik dan isi otomatis

nama, label, dan pelengkapan otomatis memiliki tugas berbeda. Label menjelaskan makna lokal; nama mengikuti kontrak API; pelengkapan otomatis menggunakan token standar seperti negara, address-line1, address-level1, address-level2, dan postal-code.

Jangan gabungkan alamat jalan dengan address-line1 dan address-line2 untuk representasi alamat yang sama.

<input name="addressLine1" autocomplete="shipping address-line1" />
<input name="locality" autocomplete="shipping address-level2" />
<input name="region" autocomplete="shipping address-level1" />
<input name="postalCode" autocomplete="shipping postal-code" />

Lapisan ketiga: validasi, normalisasi, dan verifikasi

Validasi menanyakan apakah bentuk masukan dapat diterima. Normalisasi membakukan case dan separator. Verifikasi membandingkan dengan data referensi. Beri mereka status dan pesan terpisah.

Hindari menulis ulang pada setiap penekanan tombol. Normalisasikan pada blur atau kirim dan tunjukkan perubahan yang dihasilkan.

  • Bedakan kesalahan karakter yang kosong, terlalu panjang, dan tidak valid
  • Pertahankan rawValue sebelum normalisasi
  • Jangan hapus formulir setelah batas waktu pencarian habis
  • Jangan pernah melabeli pencocokan ekspresi reguler sebagai dapat dikirimkan

Lapisan empat: pemulihan kesalahan dan aksesibilitas

Setelah kegagalan, fokuskan ringkasan kesalahan atau bidang pertama yang tidak valid. Hubungkan pesan dengan aria-describedby, jangan pernah hanya mengandalkan warna, dan pertahankan nilai bidang lainnya.

Pemilihan negara pengujian keyboard, daftar saran, tautan kesalahan, dan fokus pasca pengiriman. Temukan pengujian otomatis berdasarkan label atau peran, bukan berdasarkan negara tertentu.

Lapisan lima: verifikasi payload API yang sebenarnya

Tangkap permintaan yang dikirimkan dan tegaskan countryCode, regionCode, postalCode, rawAddress, dan normalizedAddress. Baca kembali catatan untuk mendeteksi kegagalan pengkodean dan konversi nol.

Pernyataan khusus UI dapat melewatkan pilihan Provinsi yang menampilkan Ontario dengan benar namun mengirimkan Ontario, bukan AKTIF. Itu juga dapat melewatkan baris kedua yang telah dihapus sehingga meninggalkan nilai sebelumnya dalam penyimpanan. Jalankan satu rekaman melalui pembuatan, edit, buka kembali, dan ekspor sehingga pengujian membuktikan perjalanan bolak-balik yang lengkap, bukan satu status layar yang berhasil.

Latih perilaku pencarian pihak ketiga dengan respons lambat, pembatasan kecepatan, kesalahan server, tidak ada saran, dan beberapa saran yang masuk akal. Kegagalan jaringan tidak boleh dikatakan karena alamat Anda salah. Ketidaktersediaan sistem dan masukan yang tidak dapat diterima adalah kondisi berbeda dengan solusi berbeda.

Versi konfigurasi negara yang digunakan dalam pengujian. Ketika peraturan pos atau persyaratan produk berubah, kegagalan harus mengidentifikasi apakah aplikasi berubah atau snapshot referensi berubah.

  • Cuplikan permintaan terakhir JSON
  • Konfirmasikan penghapusan bidang opsional akan menghapus nilai lamanya
  • Simulasikan batas waktu, 429, 500, tidak ada hasil, dan banyak hasil
  • Pisahkan salinan kesalahan sistem dari salinan input-error

Pertanyaan umum

Haruskah setiap negara menampilkan kolom Negara Bagian?

Tidak. Beri label ulang pada Provinsi, Prefektur, atau Wilayah jika diperlukan, dan sembunyikan jika negara tersebut tidak mewajibkan tingkat tersebut.

Bisakah pelengkapan otomatis menggantikan label yang terlihat?

Tidak. Pelengkapan otomatis melayani browser; label melayani manusia dan teknologi bantu.

Bisakah pencarian yang gagal menghapus formulir?

Seharusnya tidak. Pertahankan masukan, identifikasi bidang, dan biarkan pengguna memperbaikinya pada tempatnya.

Sumber dan bacaan

  1. MDN: Atribut pelengkapan otomatis HTML
  2. WHATWG: Alamat nama kolom isi otomatis