QA Test Technique - Functional Test
Tipe Testing
Functional Test VS Non-Functional Test
| Functional Testing | Non-Functional Testing | |
|---|---|---|
| Object Of Testing | Persyaratan Fungsional | Wajib |
| Focus Area | Business Objectives | User Expectations |
| Level | Components | System |
| Stage | Pengembangan | Setelah pengujian fungsional |
| Manual/Automated | both | Automated |
| Example of types | Unit, Komponen, Sistem, UI | Performa, Load, Keamanan, Availability |
| Importance | Wajib | Tidak Wajib tapi dianjurkan |
Functional Test
Pengujian yang mengevaluasi fungsi yang harus dijalankan oleh sistem. menguji perangkat lunak berdasarkan spesifikasi dengan memberikan input dan menguji hasil.

Tahapan Functional Test
- Identifikasi fungsi yang diharapkan dapat dilakukan oleh software
- Pembuatan data masukan berdasarkan spesifikasi
- Penentuan hasil berdasarkan spesifikasi
- Eksekusi
- Perbandingan data aktual vs ekspektasi
Tujuan dari jenis pengujian fungsional
- evaluasi karakteristik fungsional dari kualitas sistem (kelengkapan, kebenaran, kelayakan)
- evaluasi karakteristik fungsional dari kualitas sistem (keandalan, produktifitas, keamanan, kompatibilitas, dan kegunaan)
- evaluasi kebenaran dan kelengkapan struktur atau arsitektur komponen atau sistem serta kesesuaian dengan spesifikasi
- evaluasi dampak peruabahn yang terjadi
Dynamic Testing
Jenis pengujian yang dilakukan dengan menjalankan software yang sedang diuji
Black Box Testing
Testing dilakukan dengan mempertimbangkan persyaratan tetapi tidak mengetahui kode internal didalamnya. pengujian didasarkan pada persyaratan dan fungsionalitas.
Tantangan dalam blackbox testing
- Exhaustive Testing: Pengujian semua kombinasi tidak memungkinkan
- Accidental Coincidence: Ada kemungkinan output benar walaupun input salah (false positive)
Keuntungan
- Cocok untuk tester yang tidak memiliki basic pemrograman
- Dapat melakukan test dari sudut pandang pengguna
- Cepat dan sederhana
Kekurangan
- Kemungkinan terjadi bug yang aman dari pandangan user tetapi bermasalah di "belakang"
- Berpotensi ada yang terlewat atau user kurang teliti
- Tester perlu mengetahui proses bisnis, pengetahuan produk, dan user flow dengan cukup mendalam
Teknik Blackbox Testing
- Equivalence Partitioning
- Boundary Value Analysis
- Cause-Effect Graphing Testing
- All-pair Testing
- Fuzz Testing
- State Testing (UI Testing) dsb.
White Box Testing
Testing yang didasarkan pada syarat yang juga mempertimbangkan pengetahuan mengenai kode internal yang dijalankan
Keuntungan
- Lebih detail
- Lebih mudah diautomasi
- Lebih cepat mengetahui bug karena ditest sebelum ada GUI dan tidak tergantung adanya GUI
Kekurangan
- Partial Source code testing
- Berpotensi mengulang tes yang sama antara tester dan developer
- Tidak semua kemungkinan flow input dan output dijalankan
