9.8 KiB
🧪 Step-by-Step Testing Guide untuk Registrasi
🎯 Tujuan
Memastikan fitur registrasi dan login bekerja dengan sempurna setelah perbaikan.
📋 Pre-Test Checklist
- Android Studio sudah open
- Project sudah ter-load
- Emulator/Device sudah connected
- Tidak ada build error
🚀 Test Scenario 1: Registrasi Pertama Kali (Sukses)
Input Data:
Nama Lengkap: Febby Dwiss
NPM: 20231071513
Password: password123
Langkah-Langkah:
-
Jalankan aplikasi
- Tekan ▶️ (Run) di Android Studio
- Tunggu app terbuka di emulator
- Pastikan melihat LoginScreen
-
Klik "Belum punya akun? Daftar"
- Otomatis navigate ke RegisterScreen
- Melihat 3 input field: Nama, NPM, Password
-
Isi form dengan data di atas
- Nama:
Febby Dwiss(atau nama apa saja) - NPM:
20231071513(atau NPM valid yang belum terdaftar) - Password:
password123
- Nama:
-
Klik tombol "Daftar"
- Tunggu beberapa detik
- Observasi: Lihat Toast notification
Expected Output ✅:
Toast: "Pendaftaran Berhasil! Silakan login"
Screen: Automatically navigate to LoginScreen
Database: Akun disimpan ke database
Jika Gagal ❌:
Buka Logcat:
1. View → Tool Windows → Logcat
2. Filter: DatabaseHelper
3. Cari ERROR message
4. Screenshot error dan share
🚀 Test Scenario 2: Registrasi dengan NPM Duplikat (Harus Ditolak)
Input Data:
Nama Lengkap: User Berbeda
NPM: 20231071513 (SAMA dengan Test 1)
Password: password456
Langkah-Langkah:
-
Dari LoginScreen, klik "Belum punya akun? Daftar"
- Navigate ke RegisterScreen
-
Isi form dengan data di atas
- Nama:
User Berbeda - NPM:
20231071513(SAMA dengan test sebelumnya) - Password:
password456
- Nama:
-
Klik tombol "Daftar"
- Tunggu beberapa detik
Expected Output ✅:
Toast: "NPM sudah terdaftar! Gunakan NPM lain atau login"
Screen: TETAP di RegisterScreen (tidak navigate)
Database: Data TIDAK ditambahkan
Jika Gagal ❌:
Jika toast mengatakan berhasil padahal NPM sudah ada = BUG
→ Screenshot dan share
🚀 Test Scenario 3: Registrasi dengan NPM Terlalu Pendek
Input Data:
Nama Lengkap: Test User
NPM: 2023107 (HANYA 7 DIGIT, kurang dari 8)
Password: password123
Langkah-Langkah:
-
Dari LoginScreen, klik "Belum punya akun? Daftar"
-
Isi form:
- Nama:
Test User - NPM:
2023107(hanya 7 digit) - Password:
password123
- Nama:
-
Klik tombol "Daftar"
Expected Output ✅:
Toast: "NPM harus minimal 8 karakter"
Screen: TETAP di RegisterScreen
Database: Data TIDAK ditambahkan
🚀 Test Scenario 4: Registrasi dengan NPM Mengandung Huruf
Input Data:
Nama Lengkap: Test User
NPM: 2023ABC7 (BERISI HURUF)
Password: password123
Langkah-Langkah:
-
Dari LoginScreen, klik "Belum punya akun? Daftar"
-
Isi form:
- Nama:
Test User - NPM:
2023ABC7(atau kombinasi huruf+angka apa saja) - Password:
password123
- Nama:
-
Klik tombol "Daftar"
Expected Output ✅:
Toast: "NPM hanya boleh berisi angka"
Screen: TETAP di RegisterScreen
Database: Data TIDAK ditambahkan
🚀 Test Scenario 5: Registrasi dengan Password Terlalu Pendek
Input Data:
Nama Lengkap: Test User
NPM: 20231071234
Password: pass1 (HANYA 5 KARAKTER)
Langkah-Langkah:
-
Dari LoginScreen, klik "Belum punya akun? Daftar"
-
Isi form:
- Nama:
Test User - NPM:
20231071234(angka valid) - Password:
pass1(hanya 5 karakter)
- Nama:
-
Klik tombol "Daftar"
Expected Output ✅:
Toast: "Password minimal 6 karakter"
Screen: TETAP di RegisterScreen
Database: Data TIDAK ditambahkan
🚀 Test Scenario 6: Registrasi dengan Form Kosong
Input Data:
Nama Lengkap: (KOSONG)
NPM: (KOSONG)
Password: (KOSONG)
Langkah-Langkah:
-
Dari LoginScreen, klik "Belum punya akun? Daftar"
-
Langsung klik "Daftar" tanpa isi form
Expected Output ✅:
Toast: "Nama lengkap tidak boleh kosong"
(atau salah satu validasi yang dipicu duluan)
Screen: TETAP di RegisterScreen
Database: Data TIDAK ditambahkan
🚀 Test Scenario 7: Login dengan Data Terdaftar (Sukses)
Input Data:
NPM: 20231071513 (dari Test Scenario 1)
Password: password123 (dari Test Scenario 1)
Langkah-Langkah:
-
Dari RegisterScreen, klik "Sudah punya akun? Login"
- Navigate ke LoginScreen
-
Isi form dengan data di atas
- NPM:
20231071513 - Password:
password123
- NPM:
-
Klik tombol "Login"
- Tunggu beberapa detik
Expected Output ✅:
Toast: (tidak ada atau success toast)
Screen: Navigate ke AbsensiScreen (Home)
Display: "Selamat Datang, Febby Dwiss"
"NPM: 20231071513"
Database: Session saved
🚀 Test Scenario 8: Login dengan NPM Salah
Input Data:
NPM: 99999999999 (NPM yang tidak terdaftar)
Password: password123
Langkah-Langkah:
-
Di LoginScreen, isi form:
- NPM:
99999999999 - Password:
password123
- NPM:
-
Klik tombol "Login"
Expected Output ✅:
Toast: "NPM atau Password salah"
Screen: TETAP di LoginScreen
Database: Session NOT saved
🚀 Test Scenario 9: Login dengan Password Salah
Input Data:
NPM: 20231071513 (BENAR)
Password: wrongpass (SALAH)
Langkah-Langkah:
-
Di LoginScreen, isi form:
- NPM:
20231071513 - Password:
wrongpass
- NPM:
-
Klik tombol "Login"
Expected Output ✅:
Toast: "NPM atau Password salah"
Screen: TETAP di LoginScreen
Database: Session NOT saved
📊 Test Results Summary
Buat tabel untuk tracking test results:
| # | Test Case | Input | Expected | Actual | Pass/Fail |
|---|---|---|---|---|---|
| 1 | Registrasi Sukses | NPM baru | Toast sukses + navigate | ✅/❌ | |
| 2 | NPM Duplikat | NPM existing | Toast ditolak | ✅/❌ | |
| 3 | NPM Pendek | 7 digit | Toast ditolak | ✅/❌ | |
| 4 | NPM Huruf | ABC+angka | Toast ditolak | ✅/❌ | |
| 5 | Password Pendek | 5 karakter | Toast ditolak | ✅/❌ | |
| 6 | Form Kosong | Semua kosong | Toast ditolak | ✅/❌ | |
| 7 | Login Sukses | Data benar | Toast sukses + navigate | ✅/❌ | |
| 8 | Login NPM Salah | NPM tidak ada | Toast ditolak | ✅/❌ | |
| 9 | Login Pass Salah | Password salah | Toast ditolak | ✅/❌ |
🔍 Debugging Tools
1. Logcat untuk Error Tracking
# Buka Logcat di Android Studio:
View → Tool Windows → Logcat
# Filter untuk DatabaseHelper:
Search: "DatabaseHelper"
# Filter untuk RegisterScreen:
Search: "RegisterScreen"
# Jalankan test scenario
# Lihat apakah ada E/ (ERROR) message
2. Database Inspector (Optional)
# Android Studio Built-in:
View → Tool Windows → App Inspection
# Atau gunakan terminal:
adb shell
cd /data/data/id.ac.ubharajaya.sistemakademik/databases/
sqlite3 Akademik.db
SELECT * FROM users;
.exit
3. Shared Preferences Viewer (Optional)
# Untuk debug local data
adb shell
cd /data/data/id.ac.ubharajaya.sistemakademik/shared_prefs/
ls
cat filename.xml
⚠️ Common Issues & Solutions
Issue 1: "Database is locked"
Gejala: Registrasi hang/tidak response
Solusi:
1. Klik STOP ⏹️ di Android Studio
2. Tunggu 5 detik
3. Klik RUN ▶️ lagi
4. Hapus app data sebelum test lagi
Issue 2: "UNIQUE constraint failed"
Gejala: Toast "Pendaftaran Gagal" saat NPM sudah ada
Solusi:
1. Gunakan NPM yang berbeda
2. Atau clear app data:
Settings → Apps → Sistem Akademik → Storage → Clear All Data
Issue 3: "File not found Akademik.db"
Gejala: Error saat first run
Solusi:
1. App akan auto-create database on first run
2. Tunggu 2-3 detik
3. Jika tetap error, clear app data dan restart
Issue 4: "NPM format invalid but still goes through"
Gejala: NPM dengan huruf tetap berhasil register
Solusi:
1. Buka MainActivity.kt
2. Periksa validasi NPM di RegisterScreen
3. Pastikan !npm.all { it.isDigit() } di-check sebelum db.addUser()
📱 Device/Emulator Requirements
- Android Version: API 24+ (Android 7.0+)
- RAM: Minimal 2GB
- Storage: Minimal 100MB
- Internet: Tidak diperlukan untuk testing lokal
🎯 Success Criteria
✅ Semua 9 test scenario PASS
✅ Tidak ada force-close/crash
✅ Logcat tidak ada ERROR message
✅ Database file terbuat otomatis
✅ Data persisten (tidak hilang setelah restart app)
📝 Test Report Template
# Test Report - Registrasi & Login
**Tanggal Testing:** [Tanggal]
**Tester:** [Nama]
**Device/Emulator:** [Device Name, API Level]
**App Version:** [Build Version]
## Test Results
| Test Case | Status | Notes |
|-----------|--------|-------|
| 1. Registrasi Sukses | PASS/FAIL | |
| 2. NPM Duplikat | PASS/FAIL | |
| 3. NPM Pendek | PASS/FAIL | |
| 4. NPM Huruf | PASS/FAIL | |
| 5. Password Pendek | PASS/FAIL | |
| 6. Form Kosong | PASS/FAIL | |
| 7. Login Sukses | PASS/FAIL | |
| 8. Login NPM Salah | PASS/FAIL | |
| 9. Login Pass Salah | PASS/FAIL | |
## Summary
- **Total Tests:** 9
- **Passed:** X
- **Failed:** Y
- **Success Rate:** X/9 (XX%)
## Issues Found
- [Issue 1]
- [Issue 2]
## Recommendations
- [Rec 1]
- [Rec 2]
✨ Tips untuk Testing Efisien
- Buat 2-3 akun test untuk digunakan di multiple scenarios
- Catat NPM/Password yang sudah dibuat
- Clear app data antar test cycle jika diperlukan
- Screenshots error untuk reference
- Test di emulator + real device untuk konsistensi
🎉 After All Tests Passed
Jika semua test passed:
- ✅ Dokumentasikan hasil
- ✅ Screenshot successful screens
- ✅ Clear app data untuk production use
- ✅ Siap untuk fitur berikutnya (Absensi, GPS, Camera)
Happy Testing! 🚀