- Add new phlebo/collect.php view (341 lines) for specimen collection workflow - Add route for phlebotomist collection page in Routes.php - Add collect() method to PhlebotomistController - Update error pages (notfound.php, unauthorized.php) for better user experience - Enhance login page with improved UI elements - Update shared dialogs (dialog_results_generate.php, dialog_sample.php) with improvements - Update config.php with new configurations - Update UAT checklist documentation - Fix AuthController login handling
206 lines
26 KiB
HTML
206 lines
26 KiB
HTML
|
||
<!DOCTYPE html>
|
||
<html lang="id">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<title>UAT Checklist - GDC CMOD 📋</title>
|
||
<style>
|
||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||
body {
|
||
font-family: 'Segoe UI', 'Arial', sans-serif;
|
||
line-height: 1.1;
|
||
color: #000;
|
||
background: white;
|
||
padding: 3mm;
|
||
font-size: 10pt;
|
||
}
|
||
.container {
|
||
max-width: 100%;
|
||
margin: 0 auto;
|
||
background: white;
|
||
padding: 0;
|
||
}
|
||
@media print {
|
||
body { padding: 1mm; font-size: 10pt; }
|
||
h1 {
|
||
font-size: 12pt;
|
||
padding: 1px 0;
|
||
margin: 0 0 2px 0;
|
||
page-break-after: avoid !important;
|
||
}
|
||
.data-table { margin: 0; }
|
||
table { page-break-inside: avoid !important; }
|
||
.container { padding-top: 0; }
|
||
tr { page-break-inside: avoid !important; }
|
||
input[type="text"] {
|
||
border: 1px solid #ccc !important;
|
||
background: #fff !important;
|
||
}
|
||
input[type="checkbox"] {
|
||
-webkit-appearance: square !important;
|
||
appearance: square !important;
|
||
width: 10px !important;
|
||
height: 10px !important;
|
||
}
|
||
}
|
||
h1 {
|
||
color: #000;
|
||
text-align: center;
|
||
font-size: 11pt;
|
||
border-bottom: 1px solid #000;
|
||
padding: 1px 0;
|
||
margin: 0;
|
||
page-break-after: avoid;
|
||
}
|
||
h2 {
|
||
color: #000;
|
||
text-align: center;
|
||
font-size: 10pt;
|
||
border-bottom: 1px solid #000;
|
||
padding: 1px 0;
|
||
margin: 10px 0 0 0;
|
||
page-break-after: avoid;
|
||
}
|
||
.data-table {
|
||
width: 100%;
|
||
border-collapse: collapse;
|
||
margin: 2px 0 0 0;
|
||
font-size: 8pt;
|
||
}
|
||
.data-table th {
|
||
background: #e9ecef;
|
||
color: #000;
|
||
padding: 1px 2px;
|
||
text-align: left;
|
||
font-size: 8pt;
|
||
font-weight: bold;
|
||
text-transform: uppercase;
|
||
border: 1px solid #000;
|
||
line-height: 1.1;
|
||
}
|
||
.data-table td {
|
||
border: 1px solid #000;
|
||
padding: 1px 2px;
|
||
vertical-align: top;
|
||
word-wrap: break-word;
|
||
line-height: 1.1;
|
||
}
|
||
.data-table tr:nth-child(even) { background: #f8f8f8; }
|
||
input[type="text"] {
|
||
width: 100%;
|
||
padding: 2px;
|
||
border: 1px solid #ddd;
|
||
border-radius: 2px;
|
||
font-size: 8pt;
|
||
}
|
||
input[type="checkbox"] {
|
||
margin: 0 2px;
|
||
width: 10px;
|
||
height: 10px;
|
||
}
|
||
code {
|
||
background: #ddd;
|
||
padding: 1px 2px;
|
||
border: 1px solid #999;
|
||
font-size: 8pt;
|
||
}
|
||
.spacer { height: 0; display: none; }
|
||
br { line-height: 1.5; }
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<div class="container">
|
||
<div style="page-break-inside: avoid; display: inline-block; width: 100%;">
|
||
<h1>📋 UAT (User Acceptance Testing) 🧪 - GDC CMOD Laboratory Management System 🏥</h1>
|
||
<table class="data-table">
|
||
<tr><th>ID</th><th>Judul Test Case</th><th>Langkah Utama</th><th>Expected Result</th><th>Role</th><th>Hasil</th><th>Issue/Jawaban</th></tr>
|
||
<tr><td>🎯</td><td>📌 Ready to Test!</td><td>🚀 Let's Go!</td><td>✨ Good Luck!</td><td>👥 All Roles</td><td>🎉 Fun!</td><td>📝 Notes...</td></tr>
|
||
<tr><td>TC-001</td><td>Login Berhasil 🔐</td><td>Login dengan username & password valid</td><td>Redirect ke dashboard sesuai role 🎯</td><td>AUTENTIKASI & SESI 🔑</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-002</td><td>Login Gagal - Username / Password Salah 🚫</td><td>Salah username / salah password</td><td>Error "Invalid credentials" ⚠️</td><td>AUTENTIKASI & SESI 🔐</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-003</td><td>Logout Berhasil 👋</td><td>Klik menu Logout</td><td>Session terhapus, redirect ke login ✨</td><td>AUTENTIKASI & SESI 🔑</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-004</td><td>Redirect ke Login Belum Login 🔄</td><td>Akses protected page tanpa login</td><td>Redirect otomatis ke halaman login 🚪</td><td>AUTENTIKASI & SESI 🛡️</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-005</td><td>Ganti Password Berhasil 🔑</td><td>Change password baru</td><td>Password berhasil diubah dan di-hash ✅</td><td>AUTENTIKASI & SESI 🆕</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-006</td><td>Ganti Password Gagal - Password Lama Salah ❌</td><td>Masukkan password lama salah</td><td>Error "Invalid old password" 🚫</td><td>AUTENTIKASI & SESI 🔐</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-007</td><td>Role-Based Redirect Login 👥</td><td>Login dengan berbagai role</td><td>Redirect ke dashboard sesuai role 🎯</td><td>AUTENTIKASI & SESI 🎭</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-008</td><td>Tampilkan Semua Request 📊</td><td>Login Superuser → <code>/superuser</code></td><td>Tabel requests semua status ditampilkan 📋</td><td>SU, ADM, PHLEB, CS</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-009</td><td>Filter by Status 🎛️</td><td>Pilih status di dashboard filter</td><td>Filter berfungsi sesuai status 🔍</td><td>SU</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-010</td><td>Filter by Date Range 📅</td><td>Set date1 & date2 → filter</td><td>Filter tanggal berfungsi 🗓️</td><td>SU</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-011</td><td>Search by Patient Name 👤</td><td>Masukkan nama pasien</td><td>Tampilkan request dengan nama tsb 🔍</td><td>SU</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-012</td><td>Search by Lab Number 🔢</td><td>Masukkan Lab Number</td><td>Tampilkan request tsb 🎯</td><td>SU</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-013</td><td>Search by Register Number #️⃣</td><td>Masukkan Register Number</td><td>Tampilkan request tsb 📌</td><td>SU</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-014</td><td>Table Sorting ↕️</td><td>Klik header kolom</td><td>Kolom di-sort ASC/DESC 📈📉</td><td>SU</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-015</td><td>Pagination 📖</td><td>Klik halaman berbeda</td><td>Berpindah halaman dengan benar 📄</td><td>SU</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-016</td><td>Tampilkan List User 👥</td><td>Access <code>/superuser/users</code></td><td>Tabel users ditampilkan lengkap 📋</td><td>SU, ADM</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-017</td><td>Buat User Baru ➕</td><td>Add User → isi form</td><td>User berhasil dibuat dan password di-hash 🆔</td><td>SU, ADM</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-018</td><td>Validasi Password Min 3 Karakter 🔢</td><td>Buat user dengan password < 3 char</td><td>Error "Password min 3 karakter" ⚠️</td><td>SU</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-019</td><td>Update User Role ✏️</td><td>Edit user → ubah role</td><td>Role berhasil diubah 🔄</td><td>SU</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-020</td><td>Update Password User 🔐</td><td>Edit user → ganti password</td><td>Password di-hash dengan benar 🔄</td><td>SU</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-021</td><td>Delete User 🗑️</td><td>Delete user</td><td>User terhapus dari database 🗑️</td><td>SU, ADM</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-022</td><td>Tampilkan Request Final ✨</td><td>Access <code>/superuser/validate</code></td><td>Hanya request "Fin" yang tampil ✅</td><td>SU, ADM, LAB</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-023</td><td>Filter by Date Range Validasi 📅</td><td>Set date1 & date2 → filter</td><td>Filter berfungsi di halaman validasi 🔍</td><td>SU</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-024</td><td>First Validation (VAL1) ✅</td><td>Validasi request "Fin"</td><td>ISVAL1=1, VAL1USER & VAL1DATE diset 📝</td><td>SU, ADM, LAB</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-025</td><td>Second Validation (VAL2) ✅✅</td><td>Validasi dengan user berbeda</td><td>ISVAL2=1, request duavalidated 🎉</td><td>SU, ADM, LAB</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-026</td><td>Gagal Validasi Sendiri 🚫</td><td>Coba validasi ulang sama user</td><td>Error "Cannot validate own request" 🙅</td><td>SU, ADM, LAB</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-027</td><td>Un-Validate Request ↩️</td><td>Un-validate dengan reason</td><td>ISVAL reset, PENDING diset 🔄</td><td>SU, ADM</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-028</td><td>Shortcut Keyboard ⌨️</td><td>Enter=Validate, N=Skip, Esc=Close</td><td>Shortcut berfungsi dengan benar ⚡</td><td>SU</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-029</td><td>Un-Receive Sample 🔙</td><td>Un-receive sample yang received</td><td>Status berubah, audit log tercatat 📋</td><td>SU, ADM, LAB</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-030</td><td>Print Label Individu 🏷️</td><td>Print label per tube</td><td>Label tercetak dengan ZPL format 🖨️</td><td>SU</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-031</td><td>Print Collection Label 📋</td><td>Print collection label</td><td>Label collection tercetak 🏷️</td><td>SU</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-032</td><td>Print All Labels 📄</td><td>Print semua tubes</td><td>Semua labels tercetak 🖨️</td><td>SU</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-033</td><td>View Request Audit 🔍</td><td>Buka audit dialog request</td><td>Audit trail timeline ditampilkan 📜</td><td>SU</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-034</td><td>Filter by Category 🎯</td><td>Filter: All, Validation, Receive, Sample</td><td>Filter berfungsi sesuai kategori 🔍</td><td>SU</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-035</td><td>View Report Validated 📊</td><td>View report request duavalidated</td><td>Report ditampilkan lengkap 📋</td><td>SU, ADM, LAB, CS</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-036</td><td>Cannot View Not Validated 🚫</td><td>View report belum duavalidated</td><td>Error: "Validated request required" ⚠️</td><td>SU</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-037</td><td>Print Report 🖨️</td><td>Print report request validated</td><td>Print dialog buka, audit log tercatat 📝</td><td>SU, ADM, LAB, CS</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-038</td><td>Generate PDF 📑</td><td>Generate PDF request validated</td><td>PDF berhasil di-generate ✅</td><td>SU, ADM, LAB, CS</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-039</td><td>Preview Report (No Audit) 👀</td><td>Preview report tanpa log audit</td><td>Report tampil, tidak ada audit log 📄</td><td>SU</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-040</td><td>English Version Report 🇬🇧</td><td>Access <code>/report/{id}/eng</code></td><td>Report dalam Bahasa Inggris 🗣️</td><td>SU</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-041</td><td>Error Handling 404 🚫</td><td>Akses URL tidak valid</td><td>Custom notfound page tampil 📄</td><td>SU</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-042</td><td>Error Handling Unauthorized 🔒</td><td>Coba akses role lain</td><td>Redirect ke <code>/unauthorized</code> 🚫</td><td>SU</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-043</td><td>Filter & Search 🔍</td><td>Uji berbagai filter dan search</td><td>Semua berfungsi seperti Superuser ⚡</td><td>ADMIN, PHLEB, CS</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-044</td><td>Edit Comment Enabled ✏️</td><td>Edit comment dashboard</td><td>Comment dapat diubah 💬</td><td>ADMIN</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-045</td><td>View Audit Trail 📜</td><td>Buka audit dialog</td><td>Timeline audit ditampilkan 🔍</td><td>ADM, LAB, PHLEB, CS</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-046</td><td>Update User 🔄</td><td>Edit user → ubah data</td><td>User berhasil di-update ✅</td><td>ADMIN</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-047</td><td>Cannot Access Role Lain 🚫</td><td>Coba <code>/superuser</code>, <code>/lab</code>, <code>/phlebo</code>, <code>/cs</code></td><td>Redirect ke unauthorized/error ⛔</td><td>ADM, LAB, PHLEB, CS</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-048</td><td>Filter Test Code Alphabetical 🔤</td><td>Login Lab → <code>/lab</code></td><td>Hanya request TESTS A-Z yang tampil 📋</td><td>LAB</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-049</td><td>View Request Details 👁️</td><td>Buka request</td><td>Detail request ditampilkan 📄</td><td>LAB</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-050</td><td>Filter & Search dalam Batas Filter 🔍</td><td>Uji filter & search</td><td>Sesuai batas test code A-Z ✅</td><td>LAB</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-051</td><td>Sample Buttons Enabled ✅</td><td>Buka dialog sample</td><td>Tombol Collect/Un-Coll/Un-Recv enabled 🔘</td><td>LAB</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-052</td><td>Edit Comment Disabled 🔒</td><td>Cek comment field</td><td>Comment field non-editable 🚫</td><td>LAB, PHLEB, CS</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-053</td><td>Un-Validate Disabled 🔒</td><td>Coba un-validate</td><td>Error/Unauthorized - cannot un-validate 🚫</td><td>LAB</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-054</td><td>Sample Collection Disabled 🔒</td><td>Buka dialog sample</td><td>Tombol Collect/Un-Coll/Un-Recv DISABLED 🚫</td><td>PHLEB, CS</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-055</td><td>Validation Page Denied 🔒</td><td>Coba <code>/phlebo/validate</code></td><td>Halaman tidak tersedia/unauthorized ⛔</td><td>PHLEB, CS</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-056</td><td>View Sample Details (Read-Only) 👀</td><td>Buka dialog sample</td><td>Sample details view-only 📄</td><td>PHLEB, CS</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-057</td><td>Cannot View Report 🔒</td><td>Coba view report</td><td>Report tidak tersedia/error 🚫</td><td>PHLEB</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-058</td><td>Cannot Print Report 🖨️❌</td><td>Coba print report</td><td>Print tidak tersedia 🚫</td><td>PHLEB</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-059</td><td>Cannot Generate PDF 📑❌</td><td>Coba generate PDF</td><td>PDF tidak tersedia 🚫</td><td>PHLEB</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-060</td><td>Print Labels (Limited) 🏷️</td><td>Print labels</td><td>Labels tercetak sesuai kapasitas 🖨️</td><td>CS</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-061</td><td>User Mgmt Role Restrictions 🔐</td><td>Lab/Phlebo/CS coba user management API</td><td>Error unauthorized 🚫</td><td>FITUR CROSS-ROLE 🔗</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-062</td><td>Cross-Role Validation 🤝</td><td>Lab A validasi VAL1, Superuser B validasi VAL2</td><td>Cross-role validation berhasil ✅</td><td>FITUR CROSS-ROLE 🔄</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-063</td><td>Un-Validate Role Restrictions 🔒</td><td>Lab/Phlebo/CS coba un-validate</td><td>Error unauthorized - only SU/Admin 🚫</td><td>FITUR CROSS-ROLE 🛡️</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-064</td><td>Un-Receive Role Restrictions 🔒</td><td>Lab/Phlebo/CS coba un-receive</td><td>Error unauthorized - only SU/Admin 🚫</td><td>FITUR CROSS-ROLE 🛡️</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-065</td><td>Report Access Restrictions 👁️</td><td>Coba view report semua role</td><td>SU/Admin/Lab/CS OK, Phlebo NOT ✅❌</td><td>FITUR CROSS-ROLE 🔍</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-066</td><td>Report Validated Requirement ✅✅</td><td>View report hanya VAR1 vs duavalidated</td><td>Hanya duavalidated dapat dilihat 🎯</td><td>FITUR CROSS-ROLE ✅</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-067</td><td>Comment Edit Restrictions 💬🔒</td><td>Lab/Phlebo/CS coba edit comment</td><td>Error - only SU/Admin editable 🚫</td><td>FITUR CROSS-ROLE ✏️</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-068</td><td>Validasi tidak Pengaruhi Data Lain 🛡️</td><td>Record data sebelum & sesudah validasi</td><td>Hanya status validasi berubah 📝</td><td>FITUR CROSS-ROLE 🔍</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-069</td><td>Un-Validate Mempertahankan Data 🔄</td><td>Record data sebelum & sesudah un-validate</td><td>Hanya status validasi berubah 📝</td><td>FITUR CROSS-ROLE 🔍</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-070</td><td>Audit Trail Logging 📜</td><td>Lakukan berbagai aktivitas</td><td>Semua tercatat di audit log ✅</td><td>FITUR CROSS-ROLE 🔍</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-071</td><td>Concurrent Validation ⚡</td><td>2 user buka validation dialog bersamaan</td><td>Validasi berhasil, tidak conflict ✅</td><td>FITUR CROSS-ROLE 🤝</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-072</td><td>Concurrent Sample Collection ⚡</td><td>2 user collect tube berbeda bersamaan</td><td>Semua berhasil tercatat ✅</td><td>FITUR CROSS-ROLE 🧪</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-073</td><td>Session Timeout ⏱️</td><td>Tunggu session timeout</td><td>Redirect ke login 🔄</td><td>FITUR CROSS-ROLE 🔐</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-074</td><td>Password Hashing Security 🔒</td><td>Buat user → cek database</td><td>Password dalam HASH bukan plain 🛡️</td><td>FITUR CROSS-ROLE 🔐</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-075</td><td>Legacy Read-Only 👀</td><td>Cek koneksi & fungsi Firebird</td><td>Hanya READ dari Firebird, TIDAK WRITE 🚫✍️</td><td>FITUR CROSS-ROLE 🗄️</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-076</td><td>Print Labels 🏷️</td><td>Print individual/collection/all</td><td>Semua labels tercetak 🖨️</td><td>ADM, LAB, PHLEB</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>TC-077</td><td>Edit Comment ✏️</td><td>Edit comment di dashboard</td><td>Comment berubah tersimpan 💾</td><td>SU</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
</table>
|
||
<h2>📋 Next Plan 📋</h2>
|
||
<table class="data-table">
|
||
<tr><th>ID</th><th>Judul Test Case</th><th>Langkah Utama</th><th>Expected Result</th><th>Role</th><th>Hasil</th><th>Issue/Jawaban</th></tr>
|
||
<tr><td>NP-001</td><td>Collect Sample 🧪</td><td>Buka dialog sample → Collect</td><td>STATUS=1, COLLECTIONDATE & USERID diset ✅</td><td>SU, ADM, LAB</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>NP-002</td><td>Un-Collect Sample ↩️</td><td>Buka dialog sample → Un-Collect</td><td>STATUS di-reset, audit log tercatat 📝</td><td>SU, ADM, LAB</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
<tr><td>NP-004</td><td>Sample Collection Buttons Enabled ✅</td><td>Buka dialog sample</td><td>Tombol Collect/Un-Coll/Un-Recv enabled 🔘</td><td>ADMIN</td><td><input type="checkbox"> ✅ <br> <input type="checkbox"> ❌</td><td><input type="text" value="___________"></td></tr>
|
||
</table>
|
||
</div>
|
||
</body>
|
||
</html>
|