# ๐Ÿงช 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 1. Lihat email field dengan icon envelope (โœ‰๏ธ) 2. Lihat password field dengan icon lock (๐Ÿ”’) 3. 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**: 1. Kosongkan email field 2. Kosongkan password field 3. Klik LOGIN **Expected Result**: โŒ Error message "Email dan Password harus diisi" ### Test Case 1.2: Valid Input **Steps**: 1. Input email: `budi@student.com` 2. Input password: `password123` 3. Klik LOGIN **Expected Result**: โœ… Navigate ke MenuScreen --- ## ๐Ÿ“ฑ Test Case 2: Menu Screen ### Pre-requisite - Sudah login (dari Test Case 1.2) ### Steps 1. Lihat greeting "Selamat Datang, Budi!" 2. Lihat 2 menu cards: - ๐Ÿ“… Jadwal Kuliah - ๐Ÿ“‹ Riwayat Absensi 3. Lihat button "MULAI ABSENSI" berwarna putih 4. 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**: 1. Klik card "Jadwal Kuliah" **Expected Result**: โœ… Navigate ke Schedule screen (jika ada) ### Test Case 2.2: Click Riwayat Absensi **Steps**: 1. Klik card "Riwayat Absensi" **Expected Result**: โœ… Navigate ke HistoryScreen ### Test Case 2.3: Click MULAI ABSENSI **Steps**: 1. Klik button "MULAI ABSENSI" **Expected Result**: โœ… Navigate ke AttendanceScreen ### Test Case 2.4: Click Logout (X) **Steps**: 1. Klik icon X di top-right 2. 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 1. Lihat top bar hijau dengan title "Absen Kehadiran" 2. Lihat back arrow (โ†) di top-left 3. Lihat 4 sections: - User Info (nama, NPM) - Lokasi (dengan status โœ“/โœ—) - Mata Kuliah (input field) โ† NEW - Foto Selfie (dengan button) 4. 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**: 1. Di section Lokasi, klik "Perbarui Lokasi" 2. Berikan permission akses lokasi 3. 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**: 1. Di section Foto Selfie, klik "AMBIL FOTO" 2. Berikan permission akses kamera 3. 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**: 1. Di section Mata Kuliah, klik input field 2. Type: "Pemrograman Mobile" 3. Confirm input **Expected Result**: โœ… Text "Pemrograman Mobile" tersimpan di field โœ… Field tidak kosong โœ… Input bisa diedit ### Test Case 3.4: Submit Attendance **Steps**: 1. Pastikan lokasi valid (โœ“) 2. Pastikan foto sudah diambil (โœ“) 3. Pastikan mata kuliah sudah diisi (โœ“) 4. Klik "KIRIM ABSENSI" 5. 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**: 1. Kosongkan mata kuliah field 2. 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**: 1. 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 1. Lihat background hijau (#2E7D32) 2. Lihat icon checkmark besar dalam lingkaran putih (โœ…) 3. Lihat title "Absensi Berhasil!" 4. Lihat 2 status indicators: - โœ“ Lokasi Tervalidasi - โœ“ Foto Terekam 5. Lihat card dengan waktu dan status 6. 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**: 1. 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**: 1. Dari HistoryScreen, klik back button 2. 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**: 1. Lihat semua screen 2. 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**: 1. Lihat semua text di setiap screen 2. 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**: 1. Klik semua buttons yang tersedia 2. 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**: 1. Test di berbagai ukuran layar: - Small phone (4.7") - Medium phone (5.5") - Large phone (6.5") 2. 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**: 1. Navigate: Login โ†’ Menu โ†’ Attendance โ†’ Success 2. Klik back button 3. Navigate forward lagi 4. 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**: 1. Submit absensi dengan mata kuliah: "Database" 2. Go to HistoryScreen 3. 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**: 1. Submit absensi dengan all fields filled 2. Kembali ke Menu 3. Klik "MULAI ABSENSI" lagi 4. 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**: 1. Test dengan no location (disable GPS) 2. Test dengan no photo 3. Test dengan empty mata kuliah 4. 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**: _____________________________