Fredy Siswanto

QA

Non-Functional Testing

23 Maret 2025 4 min read 0 Komentar
Non-Functional Testing - Panduan QA

Apa Itu Non-Functional Testing?

Non-Functional Testing adalah jenis software testing yang berfokus pada aspek non-fungsional dari sebuah aplikasi, seperti performa, usability, keandalan (reliability), dan keamanan. Tes ini bertujuan untuk memastikan kesiapan sistem terhadap parameter non-fungsional yang tidak diuji dalam functional testing.

Contoh sederhana dari non-functional testing adalah menguji berapa banyak pengguna yang bisa masuk secara bersamaan ke dalam aplikasi. Meskipun sering kali kurang mendapat perhatian dibanding functional testing, pengujian ini sangat penting untuk kepuasan pengguna dan keberhasilan produk di dunia nyata.

Tujuan Non-Functional Testing

  1. Meningkatkan usability, efisiensi, kemudahan perawatan, dan portabilitas produk.
  2. Mengurangi risiko produksi dan biaya terkait aspek non-fungsional.
  3. Mengoptimalkan cara instalasi, konfigurasi, eksekusi, serta pemantauan produk.
  4. Mengumpulkan metrik dan data untuk riset dan pengembangan.
  5. Memahami lebih dalam perilaku produk serta teknologi yang digunakan.

Karakteristik Non-Functional Testing

  • Harus terukur (measurable), bukan sekadar subjektif seperti “baik” atau “lebih baik”.
  • Angka pasti sering kali tidak diketahui di awal proses pengembangan.
  • Penting untuk memprioritaskan kebutuhan pengujian.
  • Harus mengidentifikasi atribut kualitas dengan benar dalam software engineering.

Kategori Utama dalam Software Testing

Secara umum, ada tiga kategori utama dalam pengujian perangkat lunak:

  • Functional Testing
  • Non-Functional Testing
  • Maintenance Testing

Setiap kategori memiliki berbagai jenis testing yang lebih spesifik, tergantung pada kebutuhan proyek. Tidak semua jenis testing cocok untuk semua proyek, sehingga pemilihan metode harus disesuaikan dengan skala dan kompleksitas aplikasi yang diuji.

Jenis-Jenis Non-Functional Testing

Berikut adalah jenis Non-Functional Testing yang paling umum digunakan:
Performance Testing – Mengukur kinerja sistem di berbagai kondisi.
Load Testing – Menguji performa sistem di bawah beban pengguna tertentu.
Failover Testing – Memeriksa apakah sistem dapat berpindah ke cadangan saat terjadi kegagalan.
Compatibility Testing – Menguji kompatibilitas dengan berbagai perangkat, OS, atau browser.
Usability Testing – Menilai kemudahan penggunaan oleh pengguna akhir.
Stress Testing – Menguji batas maksimal sistem sebelum mengalami kegagalan.
Maintainability Testing – Menguji seberapa mudah sistem bisa diperbaiki dan diperbarui.
Scalability Testing – Mengukur sejauh mana sistem bisa menangani peningkatan jumlah pengguna.
Volume Testing – Menguji performa saat menangani data dalam jumlah besar.
Security Testing – Menguji ketahanan sistem terhadap ancaman keamanan.
Disaster Recovery Testing – Menguji kesiapan sistem dalam menghadapi bencana atau kegagalan besar.
Compliance Testing – Memeriksa apakah sistem memenuhi standar atau regulasi industri.
Portability Testing – Menguji kemudahan sistem dalam berpindah antar lingkungan.
Efficiency Testing – Mengukur penggunaan sumber daya sistem.
Reliability Testing – Menguji keandalan sistem dalam jangka waktu lama.
Baseline Testing – Membandingkan performa sistem sebelum dan sesudah perubahan.
Endurance Testing – Menguji stabilitas sistem dalam jangka waktu lama.
Documentation Testing – Mengevaluasi kelengkapan dokumentasi sistem.
Recovery Testing – Menguji kecepatan pemulihan sistem setelah kegagalan.
Internationalization Testing – Menguji apakah sistem mendukung berbagai bahasa dan budaya.

Berikut adalah contoh tabel Test Cases untuk Non-Functional Testing:

NoTest Case ScenarioTesting TypeDescriptionExpected ResultTools Used
1Respons waktu aplikasi di bawah beban normalPerformance TestingMengukur waktu respons aplikasi saat 500 pengguna aktif mengakses halaman utama.Waktu respons ≤ 2 detik, tanpa error.JMeter, LoadRunner
2Aplikasi di bawah beban puncakLoad TestingSimulasi 1000 pengguna mengakses fitur checkout bersamaan.CPU & memory usage ≤ 80%, waktu respons ≤ 4 detik, error rate < 1%.Gatling, Apache Bench
3Sistem saat melebihi kapasitas maksimumStress TestingMemaksa aplikasi dengan 2000 pengguna melebihi batas server.Sistem tetap stabil atau melakukan graceful degradation (tidak crash total).BlazeMeter, StressNG
4Keamanan dari serangan SQL InjectionSecurity TestingUji input field login dengan kode SQL malicious.Sistem memblokir input berbahaya dan menampilkan pesan error umum.OWASP ZAP, Burp Suite
5Kemudahan penggunaan antarmukaUsability TestingEvaluasi user experience melalui 50 partisipan.≥90% partisipan menyelesaikan tugas dalam ≤3 menit tanpa bantuan.SurveyMonkey, Hotjar
6Kompatibilitas di browser berbedaCompatibility TestingUji tampilan dan fungsi di Chrome, Firefox, Safari, dan Edge.Konsistensi tampilan & fungsi di semua browser (deviasi < 5%).Selenium, BrowserStack
7Sistem berjalan terus-menerus selama 48 jamReliability TestingMonitor performa aplikasi tanpa restart dengan beban normal.Tidak ada crash, memory leak, atau downtime. Error rate < 0.5%.Prometheus, New Relic
8Penambahan server saat traffic meningkatScalability TestingTambahkan node server saat traffic naik 200%.Sistem otomatis menambah sumber daya, waktu respons tetap stabil (±10%).Kubernetes, AWS Auto Scaling
9Perbaikan bug dalam waktu 2 jamMaintainability TestingModifikasi kode untuk memperbaiki bug kritis.Tim developer menyelesaikan perbaikan dalam ≤2 jam dengan downtime minimal.JIRA, Git
10Pemulihan data setelah crash databaseRecovery TestingSimulasikan crash database dan pulihkan dari backup.Data terpulihkan 100% dalam ≤1 jam, aplikasi kembali normal.Veeam, AWS Backup
11Kepatuhan terhadap GDPRCompliance TestingAudit sistem untuk memastikan kepatuhan privasi data.Semua data pribadi dienkripsi, hak akses terbatas, dan audit trail tercatat.GDPR Checklist, Qualys
Test Case Non-Functional Testing

Kesimpulan

Non-Functional Testing sangat penting dalam pengujian perangkat lunak karena memastikan bahwa sistem tidak hanya bekerja secara fungsional, tetapi juga siap digunakan dalam kondisi nyata. Pengujian ini membantu meningkatkan keandalan, keamanan, dan pengalaman pengguna, sehingga mengurangi risiko kegagalan saat produk sudah dirilis.

0 Komentar

Tambahkan Komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *


Math Captcha
− seven = one


Belum ada komentar.