Test Plan: Admin User Listing and Search
| Version |
Date |
Author |
Change Description |
| 1.0 |
2025-09-11 |
Senior QA Lead |
Initial Draft |
| 1.1 |
2025-09-11 |
Senior QA Lead |
Added missing Entry/Exit Criteria |
1.0 Introduction
This document details the testing strategy for Feature 05: Admin User Listing and Search. This feature provides administrators with a user interface to view a paginated list of all users in the system, search for specific users, and filter the list based on user status.
This plan is based on the requirements defined in:
- docs/features/05-admin-user-listing-and-search/index.md (BRD)
- docs/features/05-admin-user-listing-and-search/use_case.md (Use Cases)
2.0 Scope
2.1 In Scope
- Accessing the "User Management" page by an authorized administrator.
- Displaying a paginated list of users with key information (Email, Display Name, Status).
- Searching for users by their email address (exact match).
- Searching for users by their display name (partial match).
- Filtering the user list by status (Active, Inactive, LockedOut).
- Functionality of pagination controls (Next, Previous, page numbers).
- Verifying that a user without the admin:user:list permission cannot access the page.
2.2 Out of Scope
- The functionality of the "Add User" button (covered in Feature 06).
- Clicking on a user to view or edit their details (covered in Feature 07).
- Performance of the search and listing with a very large number of users (will be covered in a separate performance test plan).
3.0 Test Strategy & Approach
- Functional Testing: Manual tests will be performed to validate the user listing, search, filtering, and pagination functionalities.
- UI/UX Testing: The layout and responsiveness of the user list and search controls will be checked for clarity and usability.
- Security Testing: Tests will be conducted to ensure that only users with the appropriate permissions can access this administrative feature.
- Test Environments: QA, Staging.
- Test Data:
- An admin_user@example.com with the admin:user:list permission.
- A standard_user@example.com without the admin:user:list permission.
- A sufficient number of dummy users (e.g., 25+) to properly test pagination, with a mix of statuses (Active, Inactive, LockedOut) and varied names/emails.
4.0 Test Environment Requirements
- Backend Service: The AuthService must be deployed and running with the gRPC endpoints for listing and searching users.
- Frontend Application: The web-based enterprise console must be deployed with the User Management list/search UI implemented.
- Supported Browsers: Google Chrome, Mozilla Firefox, Microsoft Edge (latest stable versions).
- Database: The test database must be populated with the test user accounts defined in the Test Data section.
5.0 Test Cases
5.1 Listing and Pagination
| Test Case ID |
User Story |
Description |
Steps |
Expected Result |
| TC-LIST-001 |
US-09 |
Happy Path: View the first page of the user list. |
1. Log in as admin_user@example.com. \<br> 2. Navigate to the "User Management" page. |
The page displays a table of users. The table shows the correct columns (Email, Display Name, Status). Pagination controls are visible and indicate Page 1. |
| TC-LIST-002 |
US-09 |
Functional: Navigate through paginated results. |
1. On the "User Management" page, confirm there is more than one page of users. \<br> 2. Click the "Next" button. \<br> 3. Click the "Previous" button. |
Clicking "Next" loads the second page of users. The list updates correctly. Clicking "Previous" returns to the first page of users. |
5.2 Search and Filter Functionality
| Test Case ID |
User Story |
Description |
Steps |
Expected Result |
| TC-LIST-003 |
US-10 |
Happy Path: Search for a user by partial display name. |
1. On the User Management page, enter a partial, known display name into the search box. \<br> 2. Click "Search". |
The user list updates to show only the user(s) whose display name contains the search term. |
| TC-LIST-004 |
US-10 |
Happy Path: Filter users by status. |
1. On the User Management page, select "Inactive" from the status filter dropdown. \<br> 2. Apply the filter. |
The user list updates to show only users with the "Inactive" status. |
| TC-LIST-005 |
US-10 |
Functional: Combine search and filter criteria. |
1. Enter a partial display name in the search box. \<br> 2. Select a status (e.g., "Active") from the filter. \<br> 3. Apply. |
The list updates to show only active users whose names match the search term. |
| TC-LIST-006 |
US-10 |
Negative: Search yields no results. |
1. Enter a random, non-existent name into the search box. \<br> 2. Click "Search". |
The user list becomes empty. A clear message, such as "No users found matching your criteria," is displayed. |
| TC-LIST-007 |
US-10 |
Functional: Clear search/filter criteria. |
1. Perform a search and apply a filter. \<br> 2. Click a "Clear" or "Reset" button. |
The search and filter fields are cleared. The user list resets to show the first page of all users. |
5.3 Access Control
| Test Case ID |
User Story |
Description |
Steps |
Expected Result |
| TC-LIST-008 |
US-09 |
Security: User without permission cannot access the page. |
1. Log in as standard_user@example.com (who lacks admin:user:list permission). \<br> 2. Check the sidebar navigation. \<br> 3. Manually type the URL for the user management page into the address bar. |
The "User Management" link is not visible in the sidebar. Navigating directly to the URL results in an "Unauthorized" or "Access Denied" error page, not the user list. |
6.0 UAT Scenarios
| Scenario ID |
User Story |
Scenario Description |
Acceptance Criteria |
| UAT-LIST-01 |
US-09 |
An admin needs to see a list of all users. |
When I go to the User Management page, I can see a list of all the users in the system and can click through different pages. |
| UAT-LIST-02 |
US-10 |
An admin needs to find a specific person quickly. |
I can type part of a user's name into a search box, and the list will update to show me only the people who match. |
| UAT-LIST-03 |
US-10 |
An admin needs to find all users with a specific status. |
I can use a filter to show me only the users who are, for example, "Locked Out", so I can manage their accounts. |
7.0 Entry & Exit Criteria
7.1 Entry Criteria
- All development for this feature and its backend dependencies is complete and deployed to the QA environment.
- All related unit tests are passing.
- The QA database is populated with the required test data.
7.2 Exit Criteria
- All test cases in this plan have been executed.
- 100% of Critical and High severity defects are closed.
- UAT has been successfully completed and signed off by stakeholders.