Belajar QA Tester - Functional & Usability Testing
Episode 5 of 28

Belajar QA Tester - Functional & Usability Testing

Menguasai functional testing dan usability testing untuk memastikan aplikasi berfungsi sesuai requirement dan mudah digunakan oleh pengguna

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Setelah di episode 4 kita mempelajari test management & documentation, pada episode ini kita mempelajari functional & usability testing — dua jenis testing yang paling fundamental dalam QA. Functional testing memastikan aplikasi berfungsi sesuai requirement, sementara usability testing memastikan aplikasi mudah dan nyaman digunakan.

Mengapa kedua jenis ini penting? Karena aplikasi yang berfungsi tapi sulit digunakan akan membuat frustrasi pengguna, dan aplikasi yang mudah digunakan tapi tidak berfungsi sama sekali tidak berguna. QA Tester harus bisa melakukan keduanya.

Functional Testing

Apa itu Functional Testing?

Functional testing memverifikasi bahwa setiap fungsi aplikasi bekerja sesuai requirement:

text
Functional Testing Checklist:
├── Input validation: apakah input diterima/ditolak dengan benar?
├── Output: apakah hasil sesuai yang diharapkan?
├── Business logic: apakah aturan bisnis diimplementasikan?
├── Error handling: apakah error ditangani dengan benar?
├── Data integrity: apakah data tersimpan dengan benar?
└── Integration: apakah komponen berkomunikasi dengan benar?

Jenis Functional Testing

JenisFokusContoh
Unit TestingSatu fungsi/moduleFungsi calculateTotal()
Integration TestingInteraksi modulLogin → Dashboard
System TestingSistem lengkapAplikasi end-to-end
Acceptance TestingKebutuhan bisnisUser acceptance

Praktik: Functional Test untuk Fitur Login

text
Functional Test Cases - Login:
├── TC-FUNC-001: Login dengan valid credentials
│   ├── Input: email valid, password valid
│   ├── Expected: Redirect ke dashboard
│   └── Priority: High
├── TC-FUNC-002: Login dengan invalid credentials
│   ├── Input: email valid, password salah
│   ├── Expected: Error message "Invalid credentials"
│   └── Priority: High
├── TC-FUNC-003: Login dengan empty fields
│   ├── Input: email kosong, password kosong
│   ├── Expected: Validasi error "Email harus diisi"
│   └── Priority: Medium
└── TC-FUNC-004: Login dengan remember me
    ├── Input: valid credentials + remember me checked
    ├── Expected: Session tetap aktif setelah browser ditutup
    └── Priority: Medium

Tip

Functional testing harus cover happy path, edge cases, dan error cases. Jangan hanya test happy path — bug paling sering muncul di edge cases dan error handling.

Usability Testing

Apa itu Usability Testing?

Usability testing mengevaluasi seberapa mudah dan nyaman aplikasi digunakan oleh pengguna. Fokusnya bukan pada "apakah berfungsi?" tapi pada "apakah mudah digunakan?"

Aspek Usability

text
Usability Aspects:
├── Learnability: seberapa cepat pengguna baru bisa menggunakan?
├── Efficiency: seberapa cepat pengguna yang sudah mahir bisa menyelesaikan task?
├── Memorability: seberapa mudah pengguna mengingat cara menggunakannya?
├── Error Prevention: seberapa baik aplikasi mencegah error?
├── Error Recovery: seberapa mudah pengguna memulihkan dari error?
└── Satisfaction: seberapa menyenangkan pengguna menggunakan aplikasi?

Usability Heuristics (Nielsen)

10 usability heuristics dari Jakob Nielsen:

HeuristicDeskripsiContoh
Visibility of System StatusSistem memberikan feedbackLoading indicator saat upload
Match Between System and Real WorldGunakan bahasa penggunaTombol "Keranjang" bukan "Cart"
User Control and FreedomUndo/redo tersediaTombol "Batal" yang jelas
Consistency and StandardsKonsisten dengan platformTombol submit di posisi yang sama
Error PreventionCegah error sebelum terjadiConfirm dialog sebelum delete
Recognition Rather Than RecallTampilkan informasi yang dibutuhkanHistory pencarian
Flexibility and Efficiency of UseShortcut untuk user mahirKeyboard shortcuts
Aesthetic and Minimalist DesignJangan terlalu banyak infoHanya tampilkan yang penting
Help Users Recognize and Recovery from ErrorsError message yang jelas"Password harus 8 karakter"
Help and DocumentationHelp yang mudah diaksesTooltip, FAQ

Praktik: Usability Test untuk Fitur Checkout

text
Usability Test - Checkout Flow:
├── Task: "Beli produk seharga Rp 100.000 dengan kartu kredit"
├── Metrics:
│   ├── Time to complete: berapa lama?
│   ├── Error rate: berapa kali user error?
│   ├── Satisfaction: rating 1-5
│   └── Help needed: apakah user perlu bantuan?
├── Observations:
│   ├── Apakah user menemukan tombol checkout?
│   ├── Apakah user mengerti langkah-langkahnya?
│   ├── Apakah ada confusion di payment method?
│   └── Apakah user berhasil menyelesaikan task?
└── Recommendations:
    ├── Simplify form fields
    ├── Add progress indicator
    └── Improve error messages

Kombinasi Functional + Usability

QA Tester harus melakukan keduanya dalam satu sesi testing:

text
Combined Testing Approach:
├── 1. Functional: Apakah checkout berfungsi?
│   ├── Input valid → Success
│   ├── Input invalid → Error handled
│   └── Edge cases → Covered
├── 2. Usability: Apakah checkout mudah digunakan?
│   ├── Form fields jelas
│   ├── Steps terlihat
│   ├── Error messages membantu
│   └── Overall experience menyenangkan
└── 3. Report: Gabungkan findings
    ├── Bugs functional
    ├── Usability issues
    └── Recommendations

Penutup

Pada episode 5 ini, kalian telah mempelajari functional & usability testing.

Inti yang harus dibawa pulang:

  • Functional testing memverifikasi aplikasi berfungsi sesuai requirement.
  • Usability testing mengevaluasi seberapa mudah aplikasi digunakan.
  • QA Tester harus melakukan keduanya — aplikasi yang berfungsi tapi sulit digunakan tetap bermasalah.
  • Gunakan usability heuristics Nielsen sebagai panduan evaluasi.

Di episode 6 selanjutnya, kita akan membahas regression & smoke testing — bagaimana memastikan perubahan kode tidak merusak fitur yang sudah ada. Sampai jumpa di episode 6!

Belajar QA Tester - Functional & Usability Testing | Belajar QA Tester