Dalam pengujian suatu aplikasi / software , email memainkan peran penting, terutama untuk fitur yang melibatkan registrasi, notifikasi, dan keamanan. Memastikan email bekerja dengan benar tidak hanya penting untuk memberikan pengalaman pengguna yang optimal, tetapi juga untuk menjaga kepercayaan pengguna terhadap sistem kita. Dalam kesempatan ini saya ingin berbagi pengalaman saya terkait testing yang berkaitan menggunakan email.
Mengapa Testing Email Penting?
Email adalah salah satu media komunikasi utama antara aplikasi dan pengguna. Ketika fitur email tidak berfungsi, dampaknya bisa sangat besar:
- Pengalaman Pengguna yang Buruk: Pengguna tidak menerima email konfirmasi atau reset kata sandi.
- Masalah Keamanan: Email pemberitahuan aktivitas mencurigakan tidak dikirim.
- Kehilangan Kepercayaan: Pengguna tidak mendapatkan notifikasi transaksi yang penting.
Karena itu, pengujian fitur email harus menjadi bagian integral dari proses pengembangan dan pengujian perangkat lunak.
Contoh umum testing yang menggunakan email
- Registrasi dan Aktivasi Akun
- Memastikan email konfirmasi dikirim setelah pengguna mendaftar.
- Menguji link aktivasi akun untuk memastikan mengarahkan ke halaman yang benar.
- Reset Kata Sandi
- Validasi bahwa email reset dikirim dengan link yang aman.
- Memastikan link hanya dapat digunakan satu kali dan memiliki masa berlaku.
- Notifikasi Transaksi
- Memastikan email konfirmasi pembayaran atau pembelian berisi informasi lengkap dan akurat.
- Pemberitahuan Keamanan
- Mengirim email saat pengguna login dari perangkat baru atau lokasi yang mencurigakan.
- Newsletter dan Promosi
- Memastikan email promosi dikirim sesuai jadwal dan tidak masuk ke folder spam.
Challenge dalam Testing Email
- Keterbatasan Email Unik
- Sulit untuk membuat email unik untuk setiap pengujian.
- Masuk ke Folder Spam
- Email dari lingkungan staging/testing sering dianggap sebagai spam.
- Validasi Link dalam Email
- Link yang dikirim harus diuji apakah mengarahkan ke halaman yang benar.
- Pengujian pada Skala Besar
- Pengujian pengiriman email massal bisa memakan waktu dan memerlukan infrastruktur tambahan.
Strategi untuk Testing Email
1. Gunakan Email Alias
Untuk mengatasi alamat email yang terbatas kita bisa memanfaatkan email alias, kita cukup tambahkan tanda “+” di alamat email Anda untuk membuat alias unik. Contoh:
example+test1@gmail.com
example+test2@outlook.com
Alias ini dianggap sebagai email unik oleh sistem tetapi tetap masuk ke inbox utama Anda. namun kadang beberapa sistem membatasi untuk memasukan karakter “+”, alternatifnya bisa menggunakan “+” atau “%2B”. Contoh:
example+test1@gmail.com
example%2Btest2@outlook.com
2. Manfaatkan Layanan Email Sementara
Dalam Dunia QA mungkin udah tidak asing lagi dengan tool seperti Yopmail, Mailinator atau Temp Mail untuk mendapatkan email unik sementara.
3. Mock Email di Staging
Biasanya jika testing masih dalam scope staging ataupun local, email biasanya diarahkan ke-logger atau satu email tertentu sehingga mempermudah dalam testing. Email yang dikirim dari aplikasi tanpa benar-benar mengirimkannya ke penerima asli.
4. Pengujian Manual dan Otomasi
- Manual: Periksa inbox untuk memastikan email diterima, cek subjek, isi, dan link.
- Otomasi: Gunakan skrip pengujian (misalnya dengan Cypress atau Selenium) untuk memvalidasi pengiriman email dan isi email.
5. Validasi Konten Email
Pastikan elemen penting di dalam email diuji, seperti:
- Nama pengguna yang dipersonalisasi.
- Tautan yang aman dan valid.
- Informasi transaksi yang lengkap.
- Styling email sesuai dengan design
Tips untuk Testing Email
- Gunakan Scope env staging untuk testing Jangan sempai kirim email testing ke real user ya guys !. 😀
- Pastikan email mengikuti aturan standard
- Periksa apakah email memiliki header yang benar, seperti From, Reply-To, dan Subject.
- Sertakan opsi unsubscribe untuk email promosi.
- Pastikan email tidak menggukan asset yang berukuran besar contoh logo, images dll.
- Pastikan email tidak terkirim berulang kali.
- Pengujian pada Berbagai Klien Email Uji email pada berbagai platform (Gmail, Outlook, Yahoo) dan perangkat (desktop, mobile) untuk memastikan kompatibilitas.
- Monitoring dan Logging Pantau log email untuk memastikan tidak ada kesalahan pengiriman.
- Uji Load dan Skala Simulasikan pengiriman email dalam jumlah besar untuk memastikan sistem Anda dapat menangani beban tanpa gagal.
Contoh Kasus Pengujian Email
Kasus: Pengujian Email Reset Password
- Langkah-langkah:
- Masukkan email valid di halaman lupa kata sandi.
- Periksa apakah email reset diterima.
- Klik link reset dan masukkan kata sandi baru.
- Coba login dengan kata sandi baru.
- Hasil yang Diharapkan:
- Email reset diterima dalam waktu kurang dari 2 menit.
- Link reset mengarahkan ke halaman reset kata sandi.
- Login berhasil menggunakan kata sandi baru.
- Link reset hanya bisa digunakan 1x.
- Tidak bisa menggunakan link jika sudah expired
Bonus : List Skenario Testing menggunakan Email
Testing Registrasi
Validasi Email Unik: Memastikan sistem menolak email yang sudah digunakan.
Email Konfirmasi: Mengirimkan email untuk mengonfirmasi pendaftaran pengguna.
Testing Link Aktivasi: Memastikan link aktivasi dalam email mengarahkan ke halaman yang benar.
Testing Login
Login dengan Email: Memastikan pengguna dapat login menggunakan email terdaftar.
Error Handling: Menguji pesan kesalahan untuk email yang tidak terdaftar.
Pengaturan Ulang Kata Sandi (Forgot Password)
Pengiriman Email Reset: Memastikan email reset kata sandi dikirim dengan link yang valid.
Validasi Link Expired: Memastikan link reset kata sandi tidak berlaku setelah batas waktu tertentu.
Penggunaan Link Sekali Pakai: Memastikan link hanya bisa digunakan sekali.
Testing Notifikasi
Notifikasi Transaksi: Email yang dikirimkan setelah transaksi, seperti pembelian atau pembayaran.
Pemberitahuan Aktivitas: Email tentang aktivitas penting, seperti login dari perangkat baru atau perubahan data akun.
Promosi atau Newsletter: Email yang dikirim untuk promosi atau kampanye.
Testing Fitur Verifikasi
Verifikasi Dua Langkah (2FA): Menguji kode OTP yang dikirim melalui email.
Verifikasi Perubahan Email: Menguji pengiriman email untuk mengonfirmasi perubahan alamat email pengguna.
Testing Penghapusan Akun
Email Konfirmasi Penghapusan Akun: Menguji email yang dikirim untuk memastikan pengguna benar-benar ingin menghapus akun.
Testing Alur Transaksi
Email Invoice/Resi: Memastikan pengguna menerima email konfirmasi pembelian beserta detail transaksi.
Email Pengiriman: Menguji email status pengiriman, seperti nomor resi atau status pesanan.
Testing Feedback atau Support
Formulir Kontak: Memastikan formulir kontak atau feedback mengirimkan email ke tim support.
Tiket Support: Menguji pengiriman email notifikasi saat tiket support dibuat atau di-update.
Testing Sistem Keanggotaan
Email Pembaruan Keanggotaan: Notifikasi tentang perpanjangan atau berakhirnya langganan.
Email Peningkatan Keanggotaan: Email konfirmasi untuk upgrade akun pengguna.
Testing Penghapusan dan Pemulihan Data
Notifikasi Penghapusan Data: Memastikan pengguna mendapat email jika data mereka dihapus.
Pengembalian Data: Email konfirmasi untuk memulihkan data atau akun yang dihapus.
Testing Perubahan Data Akun
Perubahan Kata Sandi: Email notifikasi untuk perubahan kata sandi.
Perubahan Informasi Akun: Menguji email untuk perubahan profil, seperti nama atau nomor telepon.
Testing Keamanan
Email Peringatan Login: Notifikasi saat login dari perangkat atau lokasi yang tidak dikenal.
Notifikasi Aktivitas Mencurigakan: Menguji email untuk aktivitas yang tidak biasa, seperti percobaan login gagal.
Testing Email Bounce dan Delivery
Email Gagal Terkirim: Menguji bagaimana sistem menangani email yang tidak bisa dikirim.
Email Spam: Memastikan email tidak ditandai sebagai spam oleh penyedia email.
Testing A/B Testing Email
Perbedaan Subjek/Isi Email: Menguji efektivitas beberapa varian email.
Tracking Metrics: Menguji pelacakan open rate dan click-through rate.
Testing Ketahanan Sistem Email
Bulk Email: Menguji pengiriman email massal untuk pengguna skala besar.
Delay dalam Pengiriman: Memastikan email tetap dikirim walaupun ada jeda waktu pengiriman.
Kesimpulan
Pengujian email adalah bagian penting dari pengembangan aplikasi modern. Dengan menggunakan strategi dan alat yang tepat, Kita dapat memastikan email bekerja dengan lancar, memberikan pengalaman pengguna yang luar biasa, dan menjaga keamanan sistem kita. Jangan abaikan pengujian email dalam siklus pengembangan sistem, karena dampaknya sangat besar pada keberhasilan aplikasi kita di mata pengguna.
Mulai implementasikan praktik ini sekarang dan tingkatkan kualitas pengujian Anda!