9.2 KiB
🧪 TESTING GUIDE - Panduan Uji Coba UI Baru
🎯 Objective
Memverifikasi bahwa semua UI screens berfungsi dengan benar sesuai mockup yang diberikan.
📱 Test Case 1: Login Screen
Pre-requisite
- App terbuka dan menampilkan LoginScreen
- Tidak ada user yang login sebelumnya
Steps
- Lihat email field dengan icon envelope (✉️)
- Lihat password field dengan icon lock (🔒)
- Lihat button LOGIN berwarna putih dengan teks hijau
Expected Result
✅ UI sesuai mockup (green theme #2E7D32) ✅ Email field active dan bisa diinput ✅ Password field active, input tersembunyi ✅ Login button muncul
Test Case 1.1: Invalid Input
Steps:
- Kosongkan email field
- Kosongkan password field
- Klik LOGIN
Expected Result: ❌ Error message "Email dan Password harus diisi"
Test Case 1.2: Valid Input
Steps:
- Input email:
budi@student.com - Input password:
password123 - Klik LOGIN
Expected Result: ✅ Navigate ke MenuScreen
📱 Test Case 2: Menu Screen
Pre-requisite
- Sudah login (dari Test Case 1.2)
Steps
- Lihat greeting "Selamat Datang, Budi!"
- Lihat 2 menu cards:
- 📅 Jadwal Kuliah
- 📋 Riwayat Absensi
- Lihat button "MULAI ABSENSI" berwarna putih
- Lihat icon X di top-right (logout)
Expected Result
✅ Menu Screen muncul dengan layout benar ✅ Greeting text visible ✅ 2 menu cards dengan icon dan deskripsi ✅ Button "MULAI ABSENSI" berwarna putih dengan teks hijau ✅ Tombol logout (X) di corner
Test Case 2.1: Click Jadwal Kuliah
Steps:
- Klik card "Jadwal Kuliah"
Expected Result: ✅ Navigate ke Schedule screen (jika ada)
Test Case 2.2: Click Riwayat Absensi
Steps:
- Klik card "Riwayat Absensi"
Expected Result: ✅ Navigate ke HistoryScreen
Test Case 2.3: Click MULAI ABSENSI
Steps:
- Klik button "MULAI ABSENSI"
Expected Result: ✅ Navigate ke AttendanceScreen
Test Case 2.4: Click Logout (X)
Steps:
- Klik icon X di top-right
- Confirm logout
Expected Result: ✅ Navigate ke LoginScreen (user logged out)
📱 Test Case 3: Attendance Screen
Pre-requisite
- Dari Menu screen, klik "MULAI ABSENSI"
- AttendanceScreen visible
Steps
- Lihat top bar hijau dengan title "Absen Kehadiran"
- Lihat back arrow (←) di top-left
- Lihat 4 sections:
- User Info (nama, NPM)
- Lokasi (dengan status ✓/✗)
- Mata Kuliah (input field) ← NEW
- Foto Selfie (dengan button)
- Lihat button "KIRIM ABSENSI" hijau di bawah
Expected Result
✅ Attendance screen layout sesuai mockup ✅ Top bar berwarna hijau (#2E7D32) ✅ Semua sections visible ✅ Mata kuliah field tersedia (NEW)
Test Case 3.1: Update Location
Steps:
- Di section Lokasi, klik "Perbarui Lokasi"
- Berikan permission akses lokasi
- Tunggu GPS initialize
Expected Result: ✅ Lokasi coordinates ditampilkan (Lat, Lon, Jarak) ✅ Status: ✓ "Dalam Area Absensi" atau ✗ "Luar Area" ✅ Icon location berubah warna (hijau/merah)
Test Case 3.2: Take Photo
Steps:
- Di section Foto Selfie, klik "AMBIL FOTO"
- Berikan permission akses kamera
- Ambil foto selfie
Expected Result: ✅ Kamera app terbuka ✅ Foto berhasil diambil ✅ Section Foto Selfie status berubah ke "✓ Foto berhasil diambil"
Test Case 3.3: Input Mata Kuliah ← NEW
Steps:
- Di section Mata Kuliah, klik input field
- Type: "Pemrograman Mobile"
- Confirm input
Expected Result: ✅ Text "Pemrograman Mobile" tersimpan di field ✅ Field tidak kosong ✅ Input bisa diedit
Test Case 3.4: Submit Attendance
Steps:
- Pastikan lokasi valid (✓)
- Pastikan foto sudah diambil (✓)
- Pastikan mata kuliah sudah diisi (✓)
- Klik "KIRIM ABSENSI"
- Tunggu loading selesai
Expected Result: ✅ Loading spinner muncul ✅ Status message: "⏳ Mengirim absensi..." ✅ Request terkirim ke N8N ✅ Navigate ke SuccessScreen
Test Case 3.5: Submit Without Mata Kuliah
Steps:
- Kosongkan mata kuliah field
- Klik "KIRIM ABSENSI"
Expected Result: ❌ Error message: "⚠️ Harap masukkan nama mata kuliah terlebih dahulu" ❌ Submit button disabled/tidak berfungsi
Test Case 3.6: Back Button
Steps:
- Klik arrow (←) di top-left
Expected Result: ✅ Navigate kembali ke MenuScreen
📱 Test Case 4: Success Screen
Pre-requisite
- Dari Test Case 3.4, submit attendance berhasil
Steps
- Lihat background hijau (#2E7D32)
- Lihat icon checkmark besar dalam lingkaran putih (✅)
- Lihat title "Absensi Berhasil!"
- Lihat 2 status indicators:
- ✓ Lokasi Tervalidasi
- ✓ Foto Terekam
- Lihat card dengan waktu dan status
- Lihat button "LIHAT RIWAYAT" putih
Expected Result
✅ Success screen muncul dengan layout sesuai mockup ✅ Large checkmark icon visible (✅) ✅ Green background (#2E7D32) ✅ White button "LIHAT RIWAYAT" ✅ All text visible dan readable
Test Case 4.1: View History
Steps:
- Klik button "LIHAT RIWAYAT"
Expected Result: ✅ Navigate ke HistoryScreen ✅ List absensi visible ✅ Data mata kuliah yang baru disubmit terlihat
Test Case 4.2: Back to Menu (Alternative)
Steps:
- Dari HistoryScreen, klik back button
- Kembali ke MenuScreen
Expected Result: ✅ Navigate ke MenuScreen ✅ Bisa klik "MULAI ABSENSI" lagi untuk absensi berikutnya
🎨 UI/UX Test Cases
Test Case 5.1: Color Consistency
Steps:
- Lihat semua screen
- Check warna yang digunakan
Expected Result: ✅ Green (#2E7D32) konsisten di semua top bars ✅ Buttons putih dengan teks hijau ✅ Cards dengan background hijau muda ✅ Status indicators: hijau untuk valid, merah untuk invalid
Test Case 5.2: Text Readability
Steps:
- Lihat semua text di setiap screen
- Check apakah text mudah dibaca
Expected Result: ✅ All text visible dan readable ✅ No text cutoff ✅ Font size sesuai (headlines, body, labels) ✅ Color contrast sufficient
Test Case 5.3: Button Usability
Steps:
- Klik semua buttons yang tersedia
- Check responsiveness
Expected Result: ✅ Semua button responsive ✅ Visual feedback saat ditekan ✅ Disabled state jelas ✅ Touch target size adequate (min 48dp)
Test Case 5.4: Responsive Layout
Steps:
- Test di berbagai ukuran layar:
- Small phone (4.7")
- Medium phone (5.5")
- Large phone (6.5")
- Rotate landscape
Expected Result: ✅ Layout tetap rapi di semua ukuran ✅ Text tidak cut off ✅ Buttons mudah diklik ✅ Landscape mode works correctly
🔧 Technical Test Cases
Test Case 6.1: Navigation State
Steps:
- Navigate: Login → Menu → Attendance → Success
- Klik back button
- Navigate forward lagi
- Check app state
Expected Result: ✅ State preserved correctly ✅ Data tidak hilang ✅ Navigation smooth tanpa glitch ✅ Back stack correct
Test Case 6.2: Mata Kuliah Data Persistence
Steps:
- Submit absensi dengan mata kuliah: "Database"
- Go to HistoryScreen
- Check apakah "Database" tersimpan
Expected Result: ✅ Mata kuliah "Database" visible di history ✅ Data persisted ke database ✅ Data dikirim ke N8N webhook
Test Case 6.3: Field Reset After Submit
Steps:
- Submit absensi dengan all fields filled
- Kembali ke Menu
- Klik "MULAI ABSENSI" lagi
- Check semua fields kosong
Expected Result: ✅ Mata kuliah field kosong ✅ Foto field reset ✅ Lokasi field kosong (need to update again) ✅ Ready untuk absensi berikutnya
Test Case 6.4: Error Handling
Steps:
- Test dengan no location (disable GPS)
- Test dengan no photo
- Test dengan empty mata kuliah
- Test dengan network error
Expected Result: ✅ Proper error messages displayed ✅ Submit button disabled appropriately ✅ User guided ke fix error ✅ No app crash
📊 Test Results Summary
Color Theme
- Green #2E7D32 applied correctly
- White buttons visible
- Success green #4CAF50 shows
- Error red #f44336 shows
Screens
- LoginScreen displays correctly
- MenuScreen displays correctly
- AttendanceScreen displays correctly
- SuccessScreen displays correctly
- All screens responsive
Features
- Mata kuliah field works
- Location validation works
- Photo capture works
- Submit functionality works
- Navigation flows correctly
Data
- Mata kuliah saved
- Data sent to N8N
- Data visible in history
- No data loss
🎯 Pass/Fail Criteria
PASS if:
✅ All color scheme correct ✅ All screens display as mockup ✅ All buttons functional ✅ Mata kuliah feature works ✅ Navigation smooth ✅ No crashes ✅ Data persisted correctly ✅ Responsive layout
FAIL if:
❌ Colors don't match ❌ Screen layout wrong ❌ Buttons don't work ❌ Mata kuliah not saved ❌ Navigation broken ❌ App crashes ❌ Data lost ❌ Layout broken
🚀 Go-Live Checklist
Before deploying:
- All test cases PASS
- No crashes found
- UI matches mockup
- Mata kuliah feature verified
- Database integration confirmed
- N8N webhook tested
- Performance acceptable
- Documentation reviewed
Test Date: _______________ Tester Name: _______________ Status: ☐ PASS ☐ FAIL ☐ PARTIAL Notes: _____________________________