2.1.2 Pemilihan Tipe Pengujian Berdasarkan Tujuan dan Risiko
Dalam proses Quality Assurance (QA), pengujian bukan sekadar aktivitas rutin yang dilakukan berdasarkan daftar checklist. Pengujian adalah strategi krusial dalam menjaga kualitas produk, meminimalkan risiko kegagalan, dan melindungi reputasi bisnis. Oleh karena itu, pemilihan jenis pengujian perlu disesuaikan berdasarkan kondisi dan kebutuhan spesifik proyek perangkat lunak. Beberapa faktor penting yang harus dipertimbangkan dalam menentukan tipe pengujian yang paling sesuai antara lain:
● Tujuan bisnis dari fitur atau produk
● Tingkat kompleksitas sistem
● Waktu dan sumber daya yang tersedia
● Dampak jika terjadi kegagalan (risiko)
● Skala pengguna atau trafik sistem
Sebagai QA Engineer, penting untuk menerapkan pendekatan pengujian yang fleksibel dan tepat sasaran, menyesuaikan jenis dan fokus pengujian dengan konteks proyek. Sebagai contoh, pada proyek internal dengan risiko kegagalan rendah, pengujian keamanan secara mendalam mungkin tidak perlu dilakukan. Sebaliknya, dalam pengembangan sistem transaksi keuangan dengan banyak pengguna aktif, pengujian keamanan dan regresi menjadi hal yang sangat krusial dan harus diutamakan.
Memahami “Tujuan” dalam QA
Menentukan tujuan pengujian adalah langkah penting agar proses QA fokus dan terarah. Tujuan ini menjelaskan apa yang ingin dicapai pada setiap tahap pengujian, baik dari aspek fungsionalitas, performa, keamanan, maupun pengalaman pengguna. Beberapa contoh tujuan pengujian yang sering diterapkan dalam industri antara lain:
● Memastikan fitur berfungsi sesuai dengan kebutuhan atau requirement.
● Memeriksa fitur lama agar tetap berjalan dengan baik setelah ada pembaruan.
● Menilai ketahanan dan kecepatan sistem saat digunakan dalam kondisi beban tinggi.
● Melindungi data sensitif agar tidak terjadi kebocoran atau penyalahgunaan.
● Meningkatkan pengalaman pengguna dengan memastikan aplikasi mudah dipakai dan intuitif.
Dari tujuan tersebut, QA bisa memilih tipe pengujian yang sesuai, misalnya:
● Jika tujuannya adalah memvalidasi fitur baru, maka QA bisa memilih Functional Testing.
● Jika tujuannya adalah mengukur performa sistem, maka QA bisa memilih Performance Testing.
Risiko: Faktor Kritis dalam Pemilihan Pengujian
Risiko merupakan kemungkinan terjadinya masalah atau kegagalan dalam sistem yang dapat menimbulkan dampak negatif pada kualitas produk atau pengalaman pengguna. Dalam konteks Quality Assurance, memahami dan mengelola risiko sangat penting untuk mengarahkan fokus pengujian ke area yang paling rentan. Risiko dalam QA umumnya dapat dikategorikan ke dalam beberapa jenis berikut:
● Risiko teknis, yaitu kemungkinan sistem menjadi tidak stabil, sering mengalami crash, atau berjalan lambat.
● Risiko bisnis, yaitu potensi kehilangan uang atau berkurangnya jumlah pengguna.
● Risiko keamanan, yaitu kemungkinan terjadinya kebocoran data atau penyalahgunaan sistem oleh pihak yang tidak bertanggung jawab.
● Risiko pengalaman pengguna atau user experience (UX), yaitu ketika pengguna merasa pengalaman menggunakan aplikasi terganggu atau membingungkan.
Salah satu metode populer dalam QA adalah Risk-Based Testing (RBT), yaitu pendekatan pengujian yang memusatkan perhatian pada bagian-bagian sistem yang memiliki risiko tinggi dan sangat penting. Dengan cara ini, tim QA bisa bekerja lebih efisien dengan mengalokasikan waktu dan tenaga ke area yang paling berpengaruh terhadap kualitas produk.
Adapun contoh implementasi RBT (Risk-Based Testing), yaitu sebagai berikut.
● Fitur transaksi keuangan diuji dengan kombinasi functional, regression, dan security testing.
● Halaman profil pengguna diuji lebih ringan, cukup dengan functional dan exploratory testing.
● Fitur dashboard admin diuji lebih mendalam, jika menyangkut data sensitif.
Proses Strategis: Bagaimana Menentukan Tipe Pengujian?
Seorang QA yang efektif tidak hanya melaksanakan pengujian secara teknis, tetapi juga harus mampu mengambil keputusan strategis mengenai pendekatan pengujian yang paling tepat. Sebelum memulai proses testing, QA perlu menjawab beberapa pertanyaan penting agar pengujian yang dilakukan menjadi relevan, efisien, dan memberikan dampak positif terhadap kualitas produk. Beberapa pertanyaan kunci yang sebaiknya dijawab antara lain:
- Apa tujuan utama dari pengujian kali ini?
- Apa konsekuensi jika fitur ini gagal?
- Siapa pengguna dari fitur ini dan berapa banyak yang terdampak?
- Seberapa sering fitur ini digunakan dalam alur utama aplikasi?
- Apakah fitur sudah pernah diuji sebelumnya?
Setelah menjawab pertanyaan tersebut, QA dapat menentukan beberapa hal berikut.
● Jenis pengujian yang paling tepat
● Tingkat kedalaman pengujian
● Prioritas dan urgensi pengujian
Sebelum melakukan pengujian, QA perlu menyadari bahwa tidak semua fitur memiliki tingkat risiko yang sama. Oleh sebab itu, pengujian harus diprioritaskan pada bagian kritis seperti fitur yang sering digunakan, berkaitan dengan transaksi, atau memproses data penting agar efisien dan tepat sasaran.
Tabel berikut menunjukkan contoh situasi umum dalam pengembangan perangkat lunak beserta jenis pengujian yang tepat untuk meminimalkan risiko:
Tujuan |
Risiko Tertinggi |
Testing yang Dipilih |
Rilis fitur baru |
Bug menyebabkan kerusakan pada checkout |
Functional dan Regression |
Persiapan promo besar |
Sistem crash akibat lonjakan trafik |
Performance Testing |
Update tampilan UI |
Tampilan tidak konsisten atau membingungkan |
Exploratory dan Usability Testing |
Tabel 2.1.2 Menentukan Tipe Pengujian Berdasarkan Tujuan dan Risiko
Selain itu, jenis pengujian yang dipilih juga bisa disesuaikan dengan fase pengembangan produk, misalnya:
● Tahap awal (minimum viable product): Fokus pada functional testing dan exploratory testing.
● Tahap (scale-up): Pengujian yang utama adalah regression testing dan performance testing.
● Tahap matang dan stabil: Lebih banyak menggunakan otomatisasi pengujian, pemantauan (monitoring), dan pengujian keamanan (security testing)
|
Studi Kasus: Memilih Tipe Pengujian Berdasarkan Tujuan dan Risiko
Kasus 1: Aplikasi Edukasi Online (Tujuan: Kecepatan & UX)
Sebuah startup edtech meluncurkan platform pembelajaran daring. Tim ingin segera merilis versi pertama (MVP) ke publik dalam waktu 2 minggu.
Keputusan QA:
● Fokus pada Functional Testing untuk fitur utama, seperti login, daftar kelas, dan pemutaran video.
● Melakukan Exploratory Testing untuk mengejar edge-case yang tidak tertulis di requirement.
● Tidak melakukan Security Testing mendalam karena saat ini sistem belum memuat data pengguna penting.
Alasan:
Risiko terbesar adalah kegagalan fitur dasar yang menghambat proses belajar pengguna. Pengujian keamanan akan difokuskan pada fase berikutnya.
Hasil:
Versi MVP berhasil dirilis, pengguna bisa mengakses kelas, dan QA menyiapkan regression test untuk versi mendatang.
Kasus 2: Aplikasi Fintech (Tujuan: Stabilitas & Keamanan)
Sebuah aplikasi e-wallet ingin meluncurkan fitur baru, yaitu Transfer Instan Antar Bank yang melibatkan dana dan data sensitif.
Keputusan QA:
● Melakukan Functional Testing secara lengkap pada semua skenario transfer (sukses, gagal, nominal minimal/maksimal).
● Menjalankan Regression Testing pada seluruh modul keuangan untuk memastikan fitur lama seperti top-up dan bayar tagihan tetap berjalan baik.
● Melakukan Security Testing termasuk validasi enkripsi dan manajemen sesi.
● Menjalankan Performance Testing untuk simulasi ribuan transaksi secara bersamaan.
Alasan:
Risiko utama adalah kerugian finansial dan kerusakan reputasi jika sistem gagal atau data bocor.
Hasil:
QA berhasil menemukan bug kritis pada sistem rollback transaksi yang sebelumnya tidak terdeteksi oleh developer. Pengujian ini menyelamatkan sistem dari potensi bug di lingkungan produksi.
Kasus 3: Marketplace E-Commerce (Tujuan: Ketersediaan saat Event)
Platform e-commerce akan mengadakan Flash Sale 11.11 yang diperkirakan dikunjungi lebih dari 500.000 pengguna dalam 1 jam.
Keputusan QA:
● Menjalankan Load & Stress Testing untuk melihat batas performa sistem.
● Membuat Automated Regression Test agar semua fitur utama seperti login, search, add to cart, dan checkout diuji otomatis sebelum deploy.
● Memantau hasil melalui monitoring tools real-time di lingkungan staging.
Alasan:
Risiko utama adalah website down saat puncak trafik, yang dapat menyebabkan kerugian jutaan rupiah per menit.
Hasil:
Tim QA menemukan hambatan pada proses checkout ketika jumlah pengguna yang mengakses lebih dari 30.000. Tim developer sempat melakukan optimasi sebelum hari H dan sistem berjalan stabil saat event berlangsung.
Kesimpulan Studi Kasus
Dari ketiga studi kasus di atas, dapat kita simpulkan bahwa:
● Tujuan bisnis yang berbeda memerlukan strategi pengujian yang berbeda.
● Risiko tertinggi harus menjadi fokus utama dalam memilih jenis pengujian.
● Pengujian bukan hanya aktivitas teknis, tetapi juga fungsi strategis yang mendukung keberhasilan produk.