71 lines
3.1 KiB
Markdown
71 lines
3.1 KiB
Markdown
# 🛡️ QA & System Testing Guide - MPG HRIS
|
|
|
|
Dokumen ini disusun untuk membantu tim Quality Assurance (QA) memahami alur bisnis, aturan validasi, dan skenario pengujian untuk ekosistem MPG HRIS (Web & Mobile).
|
|
|
|
---
|
|
|
|
## 👥 1. Matriks Peran & Izin (RBAC)
|
|
|
|
Sistem ini menggunakan Role-Based Access Control yang ketat. Berikut adalah daftar akun uji coba default:
|
|
|
|
| Role | Email | Password | Cakupan Akses |
|
|
| :--- | :--- | :--- | :--- |
|
|
| **Super Admin** | `superadmin@mpg.co.id` | `password` | Seluruh data & seluruh kantor (Global). |
|
|
| **Admin** | `admin@mpg.co.id` | `admin123` | Manajemen data master & operasional (Global). |
|
|
| **Manajer** | (Sesuai User) | `Mpg123!` | Approval Izin & Koreksi Presensi (**Hanya Kantor Sendiri**). |
|
|
| **Supervisor** | (Sesuai User) | `Mpg123!` | Management Jadwal Pegawai (**Hanya Kantor Sendiri**). |
|
|
| **Pegawai** | `budi@mpg.co.id` | `Mpg123!` | Presensi & Pengajuan Izin via Mobile. |
|
|
|
|
---
|
|
|
|
## 🏢 2. Isolasi Data Per Kantor (Feature Highlight)
|
|
|
|
Fitur ini memastikan Manajer dan Supervisor **tidak bisa** melihat atau memproses data dari kantor lain.
|
|
|
|
**Skenario Test QA:**
|
|
1. Login sebagai Manajer Kantor A.
|
|
2. Pastikan di Dashboard/Laporan tidak muncul nama pegawai dari Kantor B.
|
|
3. Coba akses ID Izin/Presensi dari Kantor B via URL langsung (ID di URL).
|
|
4. **Expected Result**: Muncul error 403 (Forbidden) atau redirect kembali dengan pesan error.
|
|
|
|
---
|
|
|
|
## 📱 3. Skenario Pengujian Mobile (Pegawai)
|
|
|
|
### A. Presensi Real-time
|
|
1. **Validasi Radius**: Gunakan Mock Location. Coba absen di luar radius (misal > 100m dari titik kantor).
|
|
- **Expected**: Status presensi menjadi "Pending" (menunggu validasi admin) dan muncul peringatan "Di Luar Radius".
|
|
2. **Face Recognition**:
|
|
- Absen dengan wajah yang sudah terdaftar -> **Lolos**.
|
|
- Absen dengan wajah orang lain/foto -> **Gagal/Pending verifikasi**.
|
|
3. **Shift Kerja**: Absen sesuai jam shift. Jika lewat toleransi 15 menit, status otomatis "Terlambat".
|
|
|
|
### B. Pengajuan Izin/Cuti
|
|
1. **Aturan Cuti**: Coba ajukan cuti kurang dari 7 hari dari tanggal mulai (H-7).
|
|
- **Expected**: Muncul error "Pengajuan Cuti minimal H-7".
|
|
2. **Signature**: Pastikan tanda tangan tersimpan dengan jelas dan muncul di PDF/Web Panel.
|
|
|
|
---
|
|
|
|
## 💻 4. Skenario Pengujian Web (Manajer/Admin)
|
|
|
|
### A. Alur Persetujuan Izin (Workflow)
|
|
1. **Flow**: Pegawai (Mobile) -> Manajer (Approve) -> HRD/Admin (Approve).
|
|
2. **Dampak Data**: Setelah disetujui HRD (Final), cek tabel Presensi pegawai tersebut.
|
|
- **Expected**: Data presensi otomatis terisi sesuai jenis izin (Cuti/Sakit) pada rentang tanggal tersebut.
|
|
|
|
### B. Penjadwalan (Scheduling)
|
|
1. **Bulk Create**: Buat jadwal untuk 10 pegawai sekaligus untuk 1 bulan.
|
|
2. **Conflict Detect**: Buat jadwal pada tanggal di mana pegawai sudah mengajukan Cuti.
|
|
- **Expected**: Muncul peringatan konflik penggunaan poin/cuti.
|
|
|
|
---
|
|
|
|
## 🛠️ 5. Prasyarat Teknis QA
|
|
- **Web**: Laravel 12, MySQL 8, npm installed.
|
|
- **Mobile**: Flutter SDK, Dio, Google ML Kit (Face Detection).
|
|
- **Environment**: Pastikan `BASE_URL` di mobile `.env` sudah mengarah ke IP/Domain server Laravel.
|
|
|
|
---
|
|
*Dibuat oleh Tim Development MPG*
|