Apa yang sebenarnya Anda uji
Alur verifikasi punya beberapa bagian bergerak, dan masing-masing bisa rusak secara terpisah. Pengujian yang baik mencakup jalur bahagia dan jalur gagal, karena penanganan kegagalan adalah tempat kepercayaan pengguna dimenangkan atau hilang.
- Kirim: kode dibuat dan dikirim untuk nomor yang valid.
- Terima dan verifikasi: kode yang benar diterima dan sesi ditingkatkan.
- Tolak: kode salah, kedaluwarsa, dan dipakai ulang ditolak.
- Batas: pembatasan laju dan jeda kirim ulang berperilaku sesuai rancangan.
- Fallback: peningkatan kanal dan keadaan kesalahan dirender dengan benar.
Gunakan kredensial uji dan kode ajaib penyedia
Setiap penyedia besar memberi Anda cara menjalankan alur tanpa mengirim pesan nyata. Twilio punya kredensial uji dan nomor telepon ajaib yang menyimulasikan keberhasilan dan respons kegagalan tertentu; Vonage, Sinch, dan MessageBird menawarkan mode sandbox dan nomor uji. Gunakan ini dalam jalan lokal dan CI agar rangkaian uji Anda tak pernah menyentuh operator nyata.
- Twilio: kredensial uji + nomor ajaib yang memaksa hasil berhasil/tidak valid/gagal.
- Lainnya: kunci API sandbox dan nomor uji yang ditentukan.
- Simpan kredensial uji dan langsung dalam konfigurasi lingkungan terpisah dengan nama jelas.
Jangan pernah menjalankan uji terhadap kredensial langsung di CI โ satu bug perulangan bisa mengirim ribuan pesan berbayar dan membuat pengirim Anda ditandai.
Sediakan nomor uji yang Anda kendalikan
Untuk uji ujung ke ujung yang benar-benar mengirim pesan, sediakan nomor terprogram yang Anda miliki sebagai penerima uji, lalu baca kembali kode yang terkirim melalui API pesan penyedia dan umpankan ke langkah verifikasi Anda. Karena Anda memiliki nomor dan aplikasi, ini adalah uji lingkaran tertutup yang bersih atas sistem Anda sendiri.
- 1
Sediakan nomor uji
Buat nomor terprogram di akun penyedia Anda yang didedikasikan untuk lingkungan pengujian.
- 2
Picu pengiriman Anda
Panggil endpoint pendaftaran/verifikasi Anda sendiri agar aplikasi Anda mengirim kode nyata ke nomor uji.
- 3
Baca kode via API
Ambil pesan masuk melalui API penyedia dan ekstrak kode secara terprogram.
- 4
Selesaikan dan tegaskan
Kirim kode ke endpoint verifikasi Anda dan tegaskan sesi ditingkatkan; lalu lepas nomor.
Otomatiskan di CI
Sambungkan hal di atas ke pipeline Anda agar verifikasi diperiksa pada setiap build. Gunakan jalur tiruan/sandbox untuk uji unit dan integrasi cepat yang berjalan pada setiap commit, dan sisihkan uji lingkaran tertutup nyata (dengan nomor milik sendiri) untuk tahap malam atau prarilis guna mengendalikan biaya.
- Jalur cepat: tiru penyedia atau pakai kredensial uji pada setiap commit.
- Jalur lambat: uji kirim nyata ke nomor milik sendiri secara malam atau sebelum rilis.
- Tegaskan juga jalur gagal: kode kedaluwarsa, kode salah, dan respons batas laju.
- Beri peringatan atas regresi latensi pengiriman, bukan hanya lulus/gagal.
Uji keterkiriman, bukan hanya logika
Uji logika membuktikan kode Anda benar; ia tidak membuktikan pesan sampai di dunia nyata. Secara berkala kirim lalu lintas uji nyata ke nomor di operator dan negara utama Anda dan ukur tingkat pengiriman serta latensi nyata, sehingga Anda menangkap regresi perutean atau penyaringan sebelum pengguna Anda.
Masalah pengiriman sering muncul per negara atau per operator. Putar pemantauan Anda melintasi bauran tujuan nyata Anda โ panduan keterkiriman menjelaskan alasannya.