Skip to content

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.