115 lines
6.6 KiB
Markdown
115 lines
6.6 KiB
Markdown
# Blackbox Testing - Equivalence Partitioning
|
|
|
|
Dokumen ini berisi test case blackbox berbasis Equivalence Partitioning untuk aplikasi `mobile_monitoring`.
|
|
|
|
## Ruang Lingkup
|
|
- Login
|
|
- Register
|
|
- Forgot Password
|
|
- Profile Update
|
|
- Change Password
|
|
- Home Monitoring Section
|
|
- Flow Monitoring + Rekap
|
|
- Growth Phase
|
|
- Graph
|
|
|
|
## Aturan Umum Equivalence Partition
|
|
- Setiap input dibagi ke kelas ekuivalen `valid` dan `invalid`.
|
|
- Satu test case mewakili satu kelas input.
|
|
- Fokus pada perilaku output UI (pesan, navigasi, tampilan data), bukan implementasi internal.
|
|
|
|
## A. Login
|
|
|
|
| ID | Kelas Ekuivalen | Data Uji | Langkah Uji | Expected Result |
|
|
|---|---|---|---|---|
|
|
| LGN-01 | Valid email + valid password | email: `user@test.com`, pass: `123456` | Isi form login, klik Masuk | Login sukses, navigasi ke Home |
|
|
| LGN-02 | Invalid email format | email: `usertest.com`, pass: `123456` | Isi form login, klik Masuk | Validasi gagal, tampil pesan error email |
|
|
| LGN-03 | Empty email | email: ``, pass: `123456` | Isi form login, klik Masuk | Validasi gagal, tidak submit |
|
|
| LGN-04 | Empty password | email: `user@test.com`, pass: `` | Isi form login, klik Masuk | Validasi gagal, tidak submit |
|
|
| LGN-05 | Wrong credential (kelas invalid backend) | email valid, pass salah | Isi form login, klik Masuk | Tetap di login, tampil error dari service |
|
|
|
|
## B. Register
|
|
|
|
| ID | Kelas Ekuivalen | Data Uji | Langkah Uji | Expected Result |
|
|
|---|---|---|---|---|
|
|
| REG-01 | Semua field valid | name: `Budi`, email valid, pass `123456`, confirm `123456` | Isi form register, klik Daftar | Register sukses, navigasi ke Home |
|
|
| REG-02 | Nama kosong | name: ``, email valid, pass valid | Isi form register, klik Daftar | Validasi gagal, pesan `Nama tidak boleh kosong` |
|
|
| REG-03 | Email tidak valid | email: `budi.com` | Isi form register, klik Daftar | Validasi gagal, pesan email tidak valid |
|
|
| REG-04 | Password < 6 karakter | pass: `12345`, confirm `12345` | Isi form register, klik Daftar | Validasi gagal, pesan minimal 6 karakter |
|
|
| REG-05 | Confirm password tidak sama | pass: `123456`, confirm: `123457` | Isi form register, klik Daftar | Validasi gagal, pesan konfirmasi password |
|
|
| REG-06 | Email sudah terdaftar | email existing | Isi form register, klik Daftar | Register gagal, tampil pesan error backend |
|
|
|
|
## C. Forgot Password
|
|
|
|
| ID | Kelas Ekuivalen | Data Uji | Langkah Uji | Expected Result |
|
|
|---|---|---|---|---|
|
|
| FGP-01 | Email valid terdaftar | `user@test.com` | Di login, klik lupa password | Tampil notifikasi sukses kirim reset |
|
|
| FGP-02 | Email kosong | `` | Klik lupa password tanpa isi email | Tampil error minta isi email |
|
|
| FGP-03 | Email format tidak valid | `user.com` | Klik lupa password | Tampil error email tidak valid |
|
|
| FGP-04 | Email valid tidak terdaftar | `none@test.com` | Klik lupa password | Tampil error dari auth provider |
|
|
|
|
## D. Profile Update
|
|
|
|
| ID | Kelas Ekuivalen | Data Uji | Langkah Uji | Expected Result |
|
|
|---|---|---|---|---|
|
|
| PRF-01 | Nama valid | `Nama Baru` | Buka profile, ubah nama, simpan | Update sukses, snackbar sukses |
|
|
| PRF-02 | Nama kosong/whitespace | ` ` | Ubah nama lalu simpan | Update gagal, tampil pesan error |
|
|
| PRF-03 | User belum login (invalid precondition) | - | Akses profile saat sesi tidak valid | Muncul error autentikasi / redirect sesuai alur |
|
|
|
|
## E. Change Password
|
|
|
|
| ID | Kelas Ekuivalen | Data Uji | Langkah Uji | Expected Result |
|
|
|---|---|---|---|---|
|
|
| CHP-01 | Old password benar + new password valid | old benar, new `abcdef` | Buka dialog, submit | Password berhasil diubah |
|
|
| CHP-02 | Old password salah | old salah, new valid | Submit dialog | Gagal, tampil error |
|
|
| CHP-03 | New password < 6 karakter | new `12345` | Submit dialog | Validasi gagal, tidak kirim request |
|
|
| CHP-04 | Confirm new password mismatch | new `123456`, confirm `123457` | Submit dialog | Validasi gagal, pesan mismatch |
|
|
|
|
## F. Home Monitoring Section
|
|
|
|
| ID | Kelas Ekuivalen | Data Uji/State | Langkah Uji | Expected Result |
|
|
|---|---|---|---|---|
|
|
| HOM-01 | Valid user + data tersedia | user login, data sensor ada | Buka Home | Muncul 2 `MonitoringCard` (pH dan Nutrisi) |
|
|
| HOM-02 | Valid user + data kosong | user login, koleksi kosong | Buka Home | Section monitoring kosong (tidak crash) |
|
|
| HOM-03 | User tidak terautentikasi | userId null/kosong | Buka Home | Stream error ditangani, UI tetap stabil |
|
|
|
|
## G. Flow Monitoring + Rekap
|
|
|
|
| ID | Kelas Ekuivalen | Data Uji/State | Langkah Uji | Expected Result |
|
|
|---|---|---|---|---|
|
|
| FLW-01 | Data sensor tersedia | data latest ada | Buka Flow | `MonitoringCard` pH dan Nutrisi tampil |
|
|
| FLW-02 | Data sensor tidak ada | latest null | Buka Flow | Bagian card tidak tampil, halaman tetap normal |
|
|
| FLW-03 | Histori tersedia | docs histori > 0 | Buka Flow | `MonitoringRecapTable` terisi data |
|
|
| FLW-04 | Histori kosong | docs histori = 0 | Buka Flow | `MonitoringRecapTable` tampil state kosong |
|
|
| FLW-05 | User tidak login | userId invalid | Buka Flow | Stream error, tidak crash |
|
|
|
|
## H. Growth Phase
|
|
|
|
| ID | Kelas Ekuivalen | Data Uji/State | Langkah Uji | Expected Result |
|
|
|---|---|---|---|---|
|
|
| GPH-01 | User login + belum ada siklus | cycle null | Buka Home | `GrowthPhaseCard` tampil tombol `Mulai Tanam` |
|
|
| GPH-02 | Set tanggal tanam valid | pilih tanggal 2020..hari ini | Klik `Mulai Tanam` | Data siklus tersimpan, snackbar sukses |
|
|
| GPH-03 | User batalkan date picker | cancel picker | Klik `Mulai Tanam` lalu batal | Tidak ada perubahan data |
|
|
| GPH-04 | Siklus aktif | start_date ada | Buka Home | Tampil fase aktif, progress, aksi Reset/Panen |
|
|
| GPH-05 | Reset siklus dikonfirmasi | pilih `Reset` + konfirmasi | Klik reset | Siklus dihapus/reset, snackbar hasil |
|
|
| GPH-06 | Panen pada siklus aktif | klik `Panen` | Klik panen | Status panen ter-update, snackbar hasil |
|
|
|
|
## I. Graph
|
|
|
|
| ID | Kelas Ekuivalen | Data Uji/State | Langkah Uji | Expected Result |
|
|
|---|---|---|---|---|
|
|
| GRF-01 | User valid + histori tersedia | docs > 0 | Buka menu Grafik | Muncul grafik pH dan TDS |
|
|
| GRF-02 | User valid + histori kosong | docs = 0 | Buka menu Grafik | Tampil state `Belum Memulai Tanam` |
|
|
| GRF-03 | User tidak login | userId kosong | Buka menu Grafik | Tampil state `Silakan Login` |
|
|
| GRF-04 | Error stream backend | putus koneksi/permission | Buka menu Grafik | Tampil state error + tombol `Coba Lagi` |
|
|
|
|
## Prioritas Eksekusi
|
|
- P1: LGN-01..05, REG-01..06, FLW-01..05
|
|
- P2: PRF-01..03, CHP-01..04, GRF-01..04
|
|
- P3: GPH-01..06, HOM-01..03
|
|
|
|
## Catatan Eksekusi
|
|
- Gunakan 2 akun: `akun_valid` dan `akun_tidak_valid`.
|
|
- Siapkan 3 kondisi data Firestore: `kosong`, `normal`, `error/permission`.
|
|
- Dokumentasikan hasil actual per test case: `PASS/FAIL`, screenshot, dan timestamp.
|