Skip to content

Latest commit

 

History

History
155 lines (122 loc) · 24.9 KB

File metadata and controls

155 lines (122 loc) · 24.9 KB

OpenMRS Test Cases - Service Queues Module

Version: 1.0
Last Updated: 2025-12-19
Total Test Cases: 59


Module 1: Authentication

TC ID Test Case Title Priority Type Preconditions Test Steps Expected Results Test Data
TC001 Successful Login with Valid Credentials Critical Functional, Smoke User is on login page 1. Navigate to login page
2. Enter username: admin
3. Click Continue
4. Enter password: Admin123
5. Click Log in
- Redirected to Service Queues page
- URL contains /home/service-queues
- Service Queues header visible
- No error messages
username: admin
password: Admin123
TC002 Login Failure with Invalid Credentials Critical Functional, Negative User is on login page 1. Navigate to login page
2. Enter username: invaliduser
3. Click Continue
4. Enter password: wrongpassword
5. Click Log in
- Error notification displayed
- User remains on login page
- URL contains /login
username: invaliduser
password: wrongpassword
TC003 Login with Empty Username High Functional, Validation User is on login page 1. Navigate to login page
2. Leave username empty
3. Click Continue
- Validation error displayed
- Continue button disabled OR error message shown
- Cannot proceed to password field
username: (empty)
password: Admin123
TC004 Login with Empty Password High Functional, Validation User on password screen 1. Navigate to login page
2. Enter username: admin
3. Click Continue
4. Leave password empty
5. Click Log in
- Validation error displayed
- Log in button disabled OR error shown
- Form submission prevented
username: admin
password: (empty)
TC005 Login with Empty Username and Password Medium Functional, Validation User is on login page 1. Navigate to login page
2. Leave username empty
3. Leave password empty
4. Attempt to click Continue
- Validation error for username
- Form submission prevented
- User remains on login page
username: (empty)
password: (empty)
TC006 Login with Special Characters in Username Medium Security, Negative User is on login page 1. Navigate to login page
2. Enter username: admin@#$%
3. Click Continue
4. Enter password: Admin123
5. Click Log in
- Login fails with error message
- No SQL injection/XSS vulnerabilities
- Special characters handled gracefully
username: admin@#$%
password: Admin123
TC007 Login with SQL Injection Attempt High Security, Negative User is on login page 1. Navigate to login page
2. Enter username: admin' OR '1'='1
3. Click Continue
4. Enter password: ' OR '1'='1
5. Click Log in
- Login fails
- No database errors exposed
- Malicious input handled safely
- No system info revealed
username: admin' OR '1'='1
password: ' OR '1'='1
TC008 Login with XSS Attempt High Security, Negative User is on login page 1. Navigate to login page
2. Enter username: <script>alert('XSS')</script>
3. Click Continue
4. Enter password: Admin123
5. Click Log in
- Script not executed
- Input sanitized/escaped
- No alert popup
- Login fails appropriately
username: <script>alert('XSS')</script>
password: Admin123
TC009 Login with Very Long Username Low Functional, Boundary User is on login page 1. Navigate to login page
2. Enter 500+ character username
3. Click Continue
4. Enter password: Admin123
5. Click Log in
- Input handled gracefully
- Truncated OR validation error
- Application doesn't crash
- Login fails with message
username: 'a' repeated 500 times
password: Admin123
TC010 Case Sensitivity in Username Medium Functional User is on login page 1. Navigate to login page
2. Enter username: ADMIN (uppercase)
3. Click Continue
4. Enter password: Admin123
5. Click Log in
- Verify case-sensitive behavior
- Document expected result
- Consistent error handling
username: ADMIN
password: Admin123
TC011 Successful Logout Critical Functional, Smoke User is logged in 1. Login with valid credentials
2. Verify on Service Queues page
3. Click user menu button
4. Click Logout option
- Redirected to login page
- Login form visible
- URL contains /login
- Session terminated
N/A
TC012 Session Persistence After Page Refresh High Functional User is logged in 1. Login with valid credentials
2. Verify on Service Queues page
3. Refresh browser (F5)
4. Wait for page reload
- User remains logged in
- Service Queues page reloads
- No redirect to login
- Session data preserved
N/A
TC013 Multiple Failed Login Attempts Medium Security, Negative User is on login page 1. Attempt login with invalid credentials (5 times)
2. Observe behavior after each attempt
- Each attempt shows error
- Account lockout may occur (if implemented)
- No account enumeration
- Activity logged
username: invaliduser
password: wrongpassword
TC014 Browser Back Button After Logout Medium Security User is logged in 1. Login with valid credentials
2. Navigate to Service Queues
3. Logout successfully
4. Click browser back button
- Cannot access protected page
- Redirect to login page
- Session invalidated
- No cached sensitive data
N/A

Module 2: Service Queues - Page Load & Navigation

TC ID Test Case Title Priority Type Preconditions Test Steps Expected Results Test Data
TC015 Service Queues Page Initial Load Critical Functional, Smoke User is logged in 1. Login with valid credentials
2. Verify redirect to Service Queues
3. Wait for page to fully load
- Page header 'Service queues' visible
- Breadcrumb shows 'Clinic'
- All metrics cards displayed
- Patient queue table visible
- Action buttons present
- No loading spinners
N/A
TC016 Navigation to Service Queues from Other Modules High Functional User is on different page 1. Navigate to another module (Appointments)
2. Click 'Service queues' in side nav
3. Wait for page load
- Service Queues page loads
- URL changes to /home/service-queues
- Page content displayed correctly
- No console errors
N/A

Module 3: Service Queues - Metrics

TC ID Test Case Title Priority Type Preconditions Test Steps Expected Results Test Data
TC017 Checked In Patients Metric Display High Functional User is on Service Queues page 1. Locate 'Checked in patients' card
2. Verify card is visible
3. Verify 'Patients: X' label
4. Verify count is valid number
- Card displays header
- Patient count shown as 'Patients: X'
- Count is numeric and non-negative
- Card properly styled
N/A
TC018 Waiting For Metric Display High Functional User is on Service Queues page 1. Locate 'Waiting for:' card
2. Verify card visible
3. Verify 'Patients: X' displayed
4. Verify 'Urgent: X' displayed
5. Verify dropdown filter present
- Card displays header
- Total patients count shown
- Urgent patients count shown
- Dropdown filter functional
- All counts numeric and non-negative
N/A
TC019 Average Wait Time Metric Display High Functional User is on Service Queues page 1. Locate 'Average wait time today' card
2. Verify card visible
3. Verify 'Minutes: X' or 'Minutes: --' displayed
- Card displays header
- Wait time shown as 'Minutes: X' or '--'
- Format is consistent
- Card properly styled
N/A
TC020 Metrics Update After Queue Changes Medium Functional, Integration User is on Service Queues page 1. Note current metrics values
2. Add a patient to queue
3. Observe metrics cards
4. Verify metrics update
- Metrics refresh automatically or after reload
- 'Checked in patients' count increases
- 'Waiting for' count updates
- Changes reflect in real-time
Patient data

Module 4: Service Queues - Patient Queue Table

TC ID Test Case Title Priority Type Preconditions Test Steps Expected Results Test Data
TC021 Patient Queue Table Structure Critical Functional, Smoke User is on Service Queues page 1. Locate patient queue table
2. Verify table header
3. Verify all column headers present
- Table visible
- Columns: Name, Coming from, Priority, Status, Queue, Wait time, Actions
- Table properly formatted
N/A
TC022 Empty Queue State High Functional Queue is empty 1. Navigate to Service Queues with empty queue
2. Verify table display
- Table structure visible
- Empty state message displayed
- No error messages
- Action buttons functional
N/A
TC023 Patient Queue Table with Data Critical Functional Queue has patients 1. Navigate to Service Queues
2. Verify patient rows displayed
3. Verify each row has data in all columns
- Patient rows visible
- Each row shows: name (link), coming from, priority, status, queue, wait time, actions
- Data properly aligned
Patient data
TC024 Patient Name Link Navigation Medium Functional Queue has patients 1. Locate patient row
2. Click patient name link
3. Verify navigation
- Navigates to patient chart
- New page loads with patient details
- URL contains patient ID
- Back navigation returns to queues
Patient data
TC025 Queue Table Pagination Medium Functional Queue has 100+ patients 1. Navigate to Service Queues
2. Verify pagination controls
3. Click next page
4. Verify page navigation
- Pagination controls visible
- Page numbers displayed
- Next/Previous buttons work
- Patient count per page consistent
Large dataset
TC026 Queue Table Sorting Low Functional Queue has multiple patients 1. Click column header (Name, Wait time)
2. Verify sorting behavior
3. Click again to reverse sort
- Table sorts by selected column
- Sort order indicator displayed
- Data correctly sorted
- Sorting persists during session
Patient data

Module 5: Service Queues - Search & Filter

TC ID Test Case Title Priority Type Preconditions Test Steps Expected Results Test Data
TC027 Search Patient by Name High Functional Queue has multiple patients 1. Locate search box (ID: table-toolbar-search-:rt:)
2. Enter patient name or partial name
3. Verify search results
- Search box accepts input
- Table filters to matching patients
- Non-matching patients hidden
- Search is case-insensitive
- Partial matches supported
Patient data
TC028 Search with No Results Medium Functional, Negative Queue has patients 1. Enter search term with no matches
2. Verify empty state
- Table shows empty state
- Message indicates no results
- Search can be cleared
- No errors occur
Search: 'NonExistentName'
TC029 Clear Search Results Medium Functional Search has been performed 1. Perform a search
2. Clear search box
3. Verify table resets
- All patients displayed again
- Table returns to original state
- Filters remain applied
N/A
TC030 Filter by Service High Functional Queue has patients from different services 1. Locate Service filter (ID: downshift-:r1k:-toggle-button)
2. Click to open dropdown
3. Select a service
4. Verify filtering
- Dropdown opens with options
- Selecting service filters table
- Only patients from selected service shown
- Filter can be cleared
Service names
TC031 Filter by Status High Functional Queue has patients with different statuses 1. Locate Status filter (ID: downshift-:rs:-toggle-button)
2. Click to open dropdown
3. Select a status
4. Verify filtering
- Dropdown shows status options
- Table filters to selected status
- Label shows 'Show patients with status: [selected]'
- Multiple selections may be supported
Status values
TC032 Filter by Waiting For Medium Functional Queue has patients 1. Locate 'Waiting for:' metrics card
2. Click dropdown filter (ID: downshift-:r1g:-toggle-button)
3. Select an option
4. Verify filtering
- Dropdown opens with options
- Selecting option filters data
- Metrics update accordingly
- Filter can be cleared
N/A
TC033 Combined Search and Filter Medium Functional, Integration Queue has multiple patients 1. Apply service filter
2. Apply status filter
3. Enter search term
4. Verify combined filtering
- All filters work together (AND logic)
- Only patients matching ALL criteria shown
- Clearing one filter maintains others
- Results are accurate
Patient data, filters
TC034 Filter Persistence Across Navigation Low Functional Filters have been applied 1. Apply filters to queue table
2. Navigate to another page
3. Return to Service Queues
4. Verify filter state
- Filters may reset OR persist
- Document expected behavior
- Behavior is consistent
N/A

Module 6: Service Queues - Add Patient

TC ID Test Case Title Priority Type Preconditions Test Steps Expected Results Test Data
TC035 Open Add Patient to Queue Dialog Critical Functional User is on Service Queues page 1. Click 'Add patient to queue' button (testid: Search Patient Button)
2. Verify dialog opens
- Modal/dialog opens
- Patient search interface displayed
- Search input field focused
- Dialog has close button
- Background dimmed
N/A
TC036 Search Patient in Add Dialog High Functional Add patient dialog is open 1. Enter patient name or ID in search
2. Verify search results appear
3. Select a patient from results
- Search executes as user types
- Matching patients displayed
- Patient details shown (name, ID, age)
- Clicking patient selects them
Patient search data
TC037 Add Patient to Specific Queue Critical Functional Patient selected in add dialog 1. Select patient from search results
2. Choose queue from dropdown
3. Set priority (if applicable)
4. Set status (if applicable)
5. Click Add/Submit button
6. Verify patient added
- Patient appears in queue table
- Row shows correct queue, priority, status
- Metrics update (checked in count increases)
- Success notification displayed
- Dialog closes automatically
Patient data, queue data
TC038 Add Patient - Cancel Action Medium Functional Add patient dialog is open 1. Search for a patient
2. Select a patient
3. Click Cancel or close button
4. Verify dialog closes
- Dialog closes without adding patient
- No changes to queue table
- No error messages
- User returns to Service Queues page
N/A
TC039 Add Patient - Validation Errors Medium Functional, Negative Add patient dialog is open 1. Attempt to submit without selecting patient
2. Attempt to submit without selecting queue
3. Verify validation messages
- Validation errors displayed
- Required fields highlighted
- Submit button may be disabled
- Cannot proceed without valid data
N/A
TC040 Add Duplicate Patient to Same Queue Medium Functional, Negative Patient already in a queue 1. Attempt to add same patient to same queue
2. Verify system behavior
- System prevents duplicate OR shows warning
- Existing queue entry highlighted
- User informed of existing entry
Existing patient data

Module 7: Service Queues - Move Patient

TC ID Test Case Title Priority Type Preconditions Test Steps Expected Results Test Data
TC041 Move Patient to Different Queue High Functional Queue has at least one patient 1. Locate patient row in table
2. Click 'Move' button (aria-label='Move')
3. Verify move dialog opens
4. Select destination queue
5. Click confirm/submit
6. Verify patient moved
- Move dialog opens
- Available queues listed
- Selecting queue moves patient
- Patient row updates with new queue name
- Success notification displayed
Patient data, queue names
TC042 Move Patient - Cancel Action Medium Functional Move dialog is open 1. Click 'Move' button for a patient
2. Move dialog opens
3. Click Cancel or close button
4. Verify dialog closes
- Dialog closes without moving patient
- Patient remains in original queue
- No changes to table
- No error messages
N/A
TC043 Move Patient - Update Priority/Status Medium Functional Move dialog is open 1. Open move dialog for a patient
2. Change priority level
3. Change status
4. Submit changes
5. Verify updates
- Priority updates in table
- Status updates in table
- Changes are saved
- Wait time may reset or adjust
Patient data, priority/status values

Module 8: Service Queues - Queue Operations

TC ID Test Case Title Priority Type Preconditions Test Steps Expected Results Test Data
TC044 Clear Queue - Confirmation Dialog High Functional Queue has patients 1. Click 'Clear queue' button
2. Verify confirmation dialog appears
- Confirmation dialog displayed
- Warning message explains action
- 'Confirm' and 'Cancel' buttons present
- Action not executed until confirmed
N/A
TC045 Clear Queue - Confirm Action High Functional Confirmation dialog is open 1. Click 'Clear queue' button
2. Confirmation dialog appears
3. Click 'Confirm' button
4. Verify queue cleared
- All patients removed from queue
- Table shows empty state
- Metrics reset to zero
- Success notification displayed
- Action logged (if applicable)
N/A
TC046 Clear Queue - Cancel Action Medium Functional Confirmation dialog is open 1. Click 'Clear queue' button
2. Confirmation dialog appears
3. Click 'Cancel' button
4. Verify queue unchanged
- Dialog closes
- Queue remains unchanged
- All patients still visible
- No notifications
N/A
TC047 Clear Empty Queue Low Functional, Edge Case Queue is already empty 1. Verify queue is empty
2. Click 'Clear queue' button
3. Verify system behavior
- Button may be disabled OR action completes without error
- Appropriate message shown
- No negative side effects
N/A
TC048 Expand All Rows Low Functional Queue has patients with expandable rows 1. Click 'Expand all rows' button
2. Verify all rows expand
- All patient rows expand
- Additional details visible
- Button text may change to 'Collapse all rows'
- Expansion is smooth
Patient data
TC049 Collapse All Rows Low Functional All rows are expanded 1. Click 'Collapse all rows' button
2. Verify all rows collapse
- All expanded rows collapse
- Only summary info visible
- Button text changes to 'Expand all rows'
- Table returns to compact view
N/A

Module 9: Service Queues - Wait Time & Priority

TC ID Test Case Title Priority Type Preconditions Test Steps Expected Results Test Data
TC050 Wait Time Display Format Medium Functional Queue has patients 1. Verify wait time column in table
2. Check format of wait time values
- Wait time in consistent format
- Format: 'X min', 'X hours Y min', etc.
- Time calculated from check-in
- Time updates periodically or on refresh
Patient data
TC051 Wait Time Calculation Accuracy Medium Functional Patient has been in queue for known duration 1. Note patient check-in time
2. Calculate expected wait time
3. Compare with displayed wait time
4. Verify accuracy
- Displayed wait time matches calculation
- Time accurate within acceptable margin
- Time increases as patient waits
- Time resets appropriately when moved
Patient data with timestamps
TC052 Average Wait Time Calculation Medium Functional Multiple patients have been processed 1. Note individual wait times
2. Calculate expected average
3. Compare with 'Average wait time today' metric
4. Verify accuracy
- Average calculated correctly
- Metric updates as patients added/removed
- Calculation includes only relevant patients
- Display shows '--' when no data
Patient data
TC053 Priority Display in Table Medium Functional Queue has patients with different priorities 1. Verify priority column in table
2. Check priority values (Urgent, Normal, Low)
3. Verify visual indicators
- Priority clearly displayed
- Visual indicators (colors, icons) differentiate levels
- Urgent patients highlighted
- Priority is sortable (if sorting available)
Patient data with priorities
TC054 Urgent Patient Count in Metrics Medium Functional Queue has urgent patients 1. Locate 'Waiting for:' metrics card
2. Verify 'Urgent: X' count
3. Compare with table data
- Urgent count matches number of urgent patients in table
- Count updates when priority changes
- Count is accurate and real-time
Patient data with urgent priority
TC055 Status Change Workflow Medium Functional Patient is in queue 1. Select a patient
2. Change status (via Move or Edit action)
3. Verify status updates
4. Verify metrics update
- Status changes successfully
- Table reflects new status
- Metrics update accordingly
- Change is persisted
Patient data, status values

Module 10: Service Queues - Accessibility & Performance

TC ID Test Case Title Priority Type Preconditions Test Steps Expected Results Test Data
TC056 Keyboard Navigation Medium Accessibility User is on Service Queues page 1. Use Tab key to navigate through elements
2. Use Enter/Space to activate buttons
3. Use arrow keys in dropdowns
4. Verify all interactive elements accessible
- All interactive elements keyboard accessible
- Focus indicators visible
- Tab order is logical
- No keyboard traps
- Screen reader announcements appropriate
N/A
TC057 ARIA Labels and Roles Medium Accessibility User is on Service Queues page 1. Inspect elements with screen reader
2. Verify ARIA labels present
3. Verify roles are appropriate
4. Test with NVDA or JAWS
- All buttons have aria-label or accessible name
- Table has proper ARIA roles
- Form fields have labels
- Dynamic content changes announced
- Page structure is semantic
N/A
TC058 Page Load Time Medium Performance User is logged in 1. Clear browser cache
2. Navigate to Service Queues page
3. Measure page load time
4. Verify performance metrics
- Page loads within acceptable time (< 3 seconds)
- First Contentful Paint (FCP) < 1.5s
- Time to Interactive (TTI) < 3s
- No performance warnings in console
N/A
TC059 Large Queue Performance Medium Performance Queue has 100+ patients 1. Navigate to Service Queues with large dataset
2. Perform search, filter, sort operations
3. Measure response times
4. Verify UI remains responsive
- Page handles large datasets gracefully
- Pagination or virtual scrolling implemented
- Operations complete within acceptable time
- No browser freezing or lag
- Memory usage reasonable
Large dataset (100+ patients)

Test Case Summary

Module Test Cases Priority Breakdown
Authentication TC001-TC014 (14) Critical: 3, High: 3, Medium: 7, Low: 1
Page Load & Navigation TC015-TC016 (2) Critical: 1, High: 1
Metrics TC017-TC020 (4) High: 3, Medium: 1
Patient Queue Table TC021-TC026 (6) Critical: 2, High: 1, Medium: 2, Low: 1
Search & Filter TC027-TC034 (8) High: 3, Medium: 4, Low: 1
Add Patient TC035-TC040 (6) Critical: 2, High: 1, Medium: 3
Move Patient TC041-TC043 (3) High: 1, Medium: 2
Queue Operations TC044-TC049 (6) High: 2, Medium: 1, Low: 3
Wait Time & Priority TC050-TC055 (6) Medium: 6
Accessibility & Performance TC056-TC059 (4) Medium: 4
TOTAL 59 Critical: 8, High: 12, Medium: 31, Low: 8

Document Version: 1.0
Last Updated: 2025-12-19
Author: Senior SDET