Subtopik 1.1.3 Studi Kasus Peran QA dalam Aplikasi: Validasi proses checkout e-commerce dan transaksi digital di fintech
Dalam pengembangan aplikasi digital modern seperti e-commerce dan fintech, fitur checkout dan transaksi digital merupakan proses inti yang sangat krusial. Kegagalan pada fitur ini dapat berdampak langsung terhadap pendapatan, kepercayaan pengguna, bahkan aspek kepatuhan hukum.
Di sinilah peran QA sangat dibutuhkan karena alasan berikut:
● Berdampak langsung pada uang dan reputasi
Bug pada fitur transaksi dapat menyebabkan kerugian dana, pesanan yang hilang, atau duplikasi pembayaran.
● Melibatkan banyak sistem
Proses checkout dan transaksi berhubungan dengan berbagai integrasi, seperti payment gateway, sistem pengiriman, inventaris, hingga sistem perbankan.
● Proses kompleks dan beragam
Banyak skenario yang perlu diuji, mulai dari diskon, cashback, pengiriman instan, hingga beragam metode pembayaran seperti e-wallet, virtual account, kartu kredit, dan lain-lain.
● Terkait regulasi dan keamanan data
Terutama dalam aplikasi fintech, QA perlu memastikan perlindungan terhadap data sensitif (seperti OTP, PIN, dan saldo), serta memastikan sistem mengikuti standar keamanan yang berlaku.
Peran QA dalam Proses Checkout dan Transaksi
1. Memastikan Alur Fungsional Bekerja Sesuai Harapan
QA bertanggung jawab untuk memverifikasi bahwa seluruh tahapan dalam proses checkout atau transaksi dapat dijalankan oleh pengguna tanpa terjadi kesalahan. Beberapa hal yang perlu dipastikan antara lain:
● Pengguna dapat memilih produk atau layanan
● Harga dan biaya tambahan dihitung dengan akurat
● Metode pembayaran muncul sesuai dengan ketentuan
● Sistem memberikan konfirmasi yang jelas, baik berhasil maupun gagal
● Bukti transaksi tersedia, seperti invoice, receipt, atau notifikasi
2. Mengembangkan Test Case Berdasarkan Alur Bisnis
QA tidak hanya menguji apakah sebuah tombol dapat diklik, tetapi juga menyusun test case yang mencerminkan alur bisnis secara realistis, dengan mempertimbangkan:
● Berbagai variasi dan kondisi khusus (edge case)
● Uji batas (boundary testing)
● Validasi terhadap input yang dimasukkan pengguna
3. Mengelola Integrasi API dan Validasi Respons
Fitur checkout dan transaksi digital hampir selalu melibatkan integrasi API, seperti:
● API untuk sistem pembayaran
● API untuk inventaris (untuk memeriksa ketersediaan stok)
● API untuk kurir (untuk mengecek estimasi dan biaya pengiriman)
● API untuk verifikasi OTP atau two-factor authentication (2FA)
QA harus memahami cara kerja API tersebut serta mengetahui bagaimana sistem bereaksi saat API berjalan lambat, gagal, atau mengembalikan respons kesalahan.
4. Regression Testing dan Negative Testing
Setiap perubahan kecil pada fitur pembayaran bisa membawa dampak besar. Oleh karena itu, QA perlu:
● Melakukan regression testing secara berkala untuk memastikan fitur lama tetap berjalan dengan baik
● Menyiapkan negative test case, misalnya:
○ Apa yang terjadi jika saldo pengguna tidak mencukupi?
○ Bagaimana jika koneksi terputus saat proses pembayaran sedang berlangsung?
Validasi dalam Proses Checkout dan Transaksi Fintech
Dalam pengujian sistem checkout dan transaksi digital, QA tidak hanya memastikan alur berjalan mulus, tetapi juga memverifikasi berbagai komponen penting yang rentan terhadap kesalahan. Validasi dilakukan secara menyeluruh pada berbagai lapisan aplikasi untuk menjamin keandalan sistem.
1. Validasi Checkout
Proses checkout dalam aplikasi e-commerce mencakup sejumlah perhitungan dan logika yang harus diuji secara teliti. QA perlu memastikan bahwa:
● Harga produk dihitung dengan benar, termasuk total keseluruhan setelah dikurangi atau ditambah biaya lain
● Diskon atau voucher diterapkan sesuai ketentuan yang berlaku
● Biaya pengiriman (ongkir) muncul sesuai lokasi dan metode kirim yang dipilih
● Ketersediaan stok produk diperiksa secara real-time
● Metode pembayaran ditampilkan sesuai preferensi dan kondisi pengguna
2. Validasi Transaksi pada Aplikasi Fintech
Transaksi digital dalam aplikasi fintech menuntut validasi yang lebih ketat dan berlapis. QA perlu menguji hal-hal berikut:
● Proses autentikasi berjalan aman dan sesuai standar (OTP, PIN, two-factor authentication)
● Saldo pengguna diperiksa secara akurat sebelum transaksi diproses
● Riwayat transaksi tercatat dan ditampilkan dengan benar di antarmuka pengguna
● Sistem backend menjalankan proses rekonsiliasi, yaitu pencocokan data antara transaksi aktual dan catatan sistem untuk menghindari inkonsistensi
3. Pengujian Skenario Kegagalan (Negative Scenario)
QA juga perlu menyusun dan menjalankan skenario kegagalan yang mungkin terjadi dalam kondisi nyata, seperti:
● Pembayaran gagal akibat saldo tidak mencukupi
● Permintaan OTP yang terlambat atau tidak diterima (timeout)
● Gangguan jaringan saat proses pembayaran berlangsung
● Respons lambat atau kesalahan dari sistem pihak ketiga seperti payment gateway
Dengan menguji berbagai kemungkinan ini, QA dapat memastikan sistem tetap tangguh dan memberikan umpan balik yang jelas kepada pengguna ketika terjadi masalah.
Studi Kasus 1 Gagal Validasi Checkout Mengakibatkan Kerugian Finansial
Pada awal tahun 2023, terjadi insiden pada sebuah platform e-commerce di mana dua kode voucher diskon bernilai besar secara tidak sengaja tersebar ke publik. Padahal, voucher tersebut semestinya bersifat eksklusif hanya untuk segmen pengguna tertentu, seperti pemilik kartu kredit dari mitra bank tertentu.
Karena tidak ada pembatasan yang efektif di sistem checkout, kode tersebut digunakan secara luas oleh pengguna umum yang sebenarnya tidak memenuhi syarat program. Selama beberapa jam, ribuan transaksi dilakukan menggunakan kode tersebut dan tetap dianggap valid oleh sistem. Pesanan diproses dan beberapa bahkan sudah dalam tahap pengemasan sebelum akhirnya dilakukan pembatalan massal oleh sistem. Kerugian yang ditimbulkan mencapai miliaran rupiah.
Analisis QA
Masalah utama terletak pada lemahnya validasi di proses checkout, khususnya dalam memverifikasi kelayakan pengguna terhadap syarat voucher. Dalam sistem promosi yang kompleks, seharusnya:
● Sistem memverifikasi jenis pengguna berdasarkan segmentasi yang telah ditentukan
● Sistem menolak transaksi jika voucher tidak sesuai dengan ketentuan
● Terdapat mekanisme penolakan otomatis jika voucher sudah kadaluarsa atau tersebar di luar jalur distribusi resmi
Namun dalam kasus ini, kegagalan terjadi karena:
● Tidak ada validasi segmentasi pengguna di sisi server
● Sistem checkout tidak melakukan pengecekan syarat secara menyeluruh
● Baik sisi front-end maupun back-end menerima voucher sebagai valid tanpa pengecekan tambahan
Rekomendasi QA dan Solusi Sistem
● Validasi bisnis harus dilakukan secara ketat di sisi back-end, bukan hanya di user interface atau pengaturan kampanye
● QA perlu menyusun skenario pengujian untuk kasus kegagalan (failure scenario) pada voucher promosi, termasuk pengujian akses oleh pengguna yang tidak berhak
● Tambahkan pengujian segmentasi pengguna, termasuk simulasi penyalahgunaan kode promosi
● Sistem harus memiliki fallback mechanism yang secara otomatis menolak atau memberi peringatan saat terjadi anomali penggunaan promo
Studi Kasus 2 Transaksi Dinyatakan Berhasil, Namun Dana Tidak Diterima oleh Penerima
Seorang pengguna melakukan transfer dana antar bank melalui aplikasi keuangan digital. Setelah menyelesaikan proses autentikasi dan OTP, sistem menampilkan status "Transfer Berhasil", lengkap dengan bukti transaksi. Namun, penerima menyatakan tidak menerima dana tersebut, meskipun saldo pengirim telah berkurang.
Kasus ini menjadi perbincangan karena menimbulkan kebingungan dan ketidakpercayaan terhadap sistem. Setelah ditelusuri, diketahui bahwa sistem menampilkan status sukses berdasarkan notifikasi awal dari mitra penyedia layanan pembayaran. Notifikasi tersebut hanya menunjukkan bahwa permintaan transfer telah dikirim ke sistem switching, tetapi tidak menjamin dana telah masuk ke rekening tujuan.
Di sisi lain, ternyata terjadi gangguan pada sistem bank penerima, dan karena tidak ada callback atau reconfirmation yang ditunggu dari sisi penerima, sistem tetap menganggap transaksi berhasil.
Analisis QA
Kelemahan sistem terjadi karena:
● Status "berhasil" hanya berdasarkan permintaan awal, tanpa konfirmasi akhir dari bank penerima
● Tidak ada mekanisme pengecekan ulang atau retry jika respons dari sistem bank bersifat ambigu
● Pengujian QA tidak mencakup kemungkinan false positive, yaitu transaksi yang tampak sukses tetapi belum selesai di sisi penerima
Pengujian hanya mencakup:
● Respons sukses dari permintaan transfer
● Pemotongan saldo dari akun pengirim
● Penampilan notifikasi dan bukti transfer
Namun belum mencakup:
● Validasi bahwa dana benar-benar diterima
● Penanganan timeout atau keterlambatan respons
● Simulasi kegagalan jaringan antar bank
Rekomendasi QA dan Solusi Sistem
● QA perlu menambahkan skenario uji false positive, yaitu kondisi ketika transaksi dinyatakan sukses meskipun belum selesai
● Sistem harus menunggu konfirmasi akhir dari sistem bank penerima sebelum menampilkan status final kepada pengguna
● Saldo pengguna sebaiknya hanya dipotong setelah sistem menerima konfirmasi bahwa dana telah diterima
● Tim pengembang menerapkan sistem rekonsiliasi tambahan dan penggunaan webhook sebagai notifikasi balik dari sistem switching
● QA juga menambahkan:
○ Uji negative case untuk simulasi keterlambatan atau kegagalan respons
○ Validasi terhadap status settlement, bukan hanya pengiriman permintaan awal
○ Notifikasi "pending" bagi pengguna jika status transaksi belum dapat dipastikan dalam waktu tertentu
RefleksiBayangkan Digiers adalah seorang QA dalam sebuah aplikasi fintech. Suatu hari, muncul laporan dari pengguna bahwa proses top up melalui transfer bank gagal, padahal saldo mereka sudah terpotong dari rekening. Pertanyaan refleksi: ● Bagaimana Digiers akan menyusun skenario pengujian untuk mencoba mereproduksi masalah tersebut? ● Komponen sistem apa saja yang perlu diperiksa terlebih dahulu? Apakah tampilan antarmuka (frontend), jalur komunikasi data seperti API, atau justru sistem inti di sisi server (backend)? Dengan pertanyaan ini, Digiers diajak untuk menghubungkan pengetahuan teknis tentang alur data dan arsitektur sistem web ke dalam praktik pengujian yang sistematis dan kontekstual. |