2026-01-14 21:33:58 +07:00

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:

  1. Jalankan aplikasi

    • Tekan ▶️ (Run) di Android Studio
    • Tunggu app terbuka di emulator
    • Pastikan melihat LoginScreen
  2. Klik "Belum punya akun? Daftar"

    • Otomatis navigate ke RegisterScreen
    • Melihat 3 input field: Nama, NPM, Password
  3. Isi form dengan data di atas

    • Nama: Febby Dwiss (atau nama apa saja)
    • NPM: 20231071513 (atau NPM valid yang belum terdaftar)
    • Password: password123
  4. 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:

  1. Dari LoginScreen, klik "Belum punya akun? Daftar"

    • Navigate ke RegisterScreen
  2. Isi form dengan data di atas

    • Nama: User Berbeda
    • NPM: 20231071513 (SAMA dengan test sebelumnya)
    • Password: password456
  3. 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:

  1. Dari LoginScreen, klik "Belum punya akun? Daftar"

  2. Isi form:

    • Nama: Test User
    • NPM: 2023107 (hanya 7 digit)
    • Password: password123
  3. 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:

  1. Dari LoginScreen, klik "Belum punya akun? Daftar"

  2. Isi form:

    • Nama: Test User
    • NPM: 2023ABC7 (atau kombinasi huruf+angka apa saja)
    • Password: password123
  3. 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:

  1. Dari LoginScreen, klik "Belum punya akun? Daftar"

  2. Isi form:

    • Nama: Test User
    • NPM: 20231071234 (angka valid)
    • Password: pass1 (hanya 5 karakter)
  3. 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:

  1. Dari LoginScreen, klik "Belum punya akun? Daftar"

  2. 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:

  1. Dari RegisterScreen, klik "Sudah punya akun? Login"

    • Navigate ke LoginScreen
  2. Isi form dengan data di atas

    • NPM: 20231071513
    • Password: password123
  3. 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:

  1. Di LoginScreen, isi form:

    • NPM: 99999999999
    • Password: password123
  2. 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:

  1. Di LoginScreen, isi form:

    • NPM: 20231071513
    • Password: wrongpass
  2. 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

  1. Buat 2-3 akun test untuk digunakan di multiple scenarios
  2. Catat NPM/Password yang sudah dibuat
  3. Clear app data antar test cycle jika diperlukan
  4. Screenshots error untuk reference
  5. Test di emulator + real device untuk konsistensi

🎉 After All Tests Passed

Jika semua test passed:

  1. Dokumentasikan hasil
  2. Screenshot successful screens
  3. Clear app data untuk production use
  4. Siap untuk fitur berikutnya (Absensi, GPS, Camera)

Happy Testing! 🚀