STD: Progress Bar (PROGRESS)
Version: v1.0.0 Status: Draft SRS Source:
docusaurus/docs/srs/progress.mdDomain: PROGRESS
Overview
This document specifies tests for the Progress Bar domain, which covers visual feedback during long-running processes with multi-user visibility.
Domain Characteristics:
- Primary function: UI display (progress indicators)
- Secondary function: Backend state tracking (cache-based)
- Real-time communication: Pusher/WebSocket for multi-user sync
Test Method Rationale: Per Test Plan §3.3, UI Features domains use TM-UI as primary method. However, PROGRESS has significant real-time communication requirements (REQ-PROGRESS-004) requiring multi-user verification. Per §3.2, real-time updates use TM-HYB. Configuration defaults can be verified via TM-API.
Test Case Convention: Steps describe logical actions, not UI mechanics. Use "Navigate to Run File page" or "Initiate long-running process", not "Click the Runs link" or "Click Reanalysis button". This ensures test intent survives UI redesigns.
Coverage Summary
| REQ ID | Title | ACs | Tests | AC Coverage | Method | Gaps |
|---|---|---|---|---|---|---|
| REQ-PROGRESS-001 | Display Progress for Long-Running Processes | 10 | TC-PROGRESS-001 through TC-PROGRESS-006, TC-PROGRESS-020, TC-PROGRESS-021, TC-PROGRESS-024, TC-PROGRESS-025 | 10/10 (100%) | TM-HYB | None |
| REQ-PROGRESS-002 | Persist Progress Tracking Across Navigation | 3 | TC-PROGRESS-007, TC-PROGRESS-008, TC-PROGRESS-022, TC-PROGRESS-023 | 3/3 (100%) | TM-UI | None |
| REQ-PROGRESS-003 | Support Multiple Concurrent Progress Indicators | 3 | TC-PROGRESS-009 | 3/3 (100%) | TM-UI | None |
| REQ-PROGRESS-004 | Display Progress to All Users Viewing Affected Resources | 3 | TC-PROGRESS-010, TC-PROGRESS-011 | 3/3 (100%) | TM-HYB | None |
Totals: 4 REQs, 19 ACs, 17 Test Cases, 100% Coverage
Test Cases
TC-PROGRESS-001: Progress indicator triggers for long-running processes
Verifies: REQ-PROGRESS-001 (AC1)
Method: TM-HYB (API triggers process, UI verifies display)
Priority: Critical
Preconditions:
- User logged in with permission to initiate Reanalysis
- Run File exists with wells that can be reanalyzed
- Long-running threshold configured to default (10 seconds)
Test Data:
- Run File with sufficient wells that Reanalysis exceeds 10 seconds
Steps:
- Navigate to Run File page
- Initiate Reanalysis on the Run File
- Observe progress indicator behavior
Expected Results:
- AC1: Progress indicator is displayed when calculated process duration exceeds threshold
Automation Status: Automated
Jira: BT-2251
TC-PROGRESS-002: Progress indicator displays process name and percentage
Verifies: REQ-PROGRESS-001 (AC2, AC3)
Method: TM-UI
Priority: High
Preconditions:
- Long-running process active with progress indicator displayed
Steps:
- Observe progress indicator while process is running
- Verify displayed elements
Expected Results:
- AC2: Process name is displayed on the progress indicator
- AC3: Percentage complete is displayed on the progress indicator
Automation Status: Automated
Jira: BT-2251
TC-PROGRESS-003: Progress percentage updates at configured interval
Verifies: REQ-PROGRESS-001 (AC4)
Method: TM-HYB (UI observation with timing verification)
Priority: High
Preconditions:
- Long-running process active with progress indicator displayed
- Progress update interval configured to default (2 seconds)
Steps:
- Start a long-running process
- Observe progress percentage over time
- Verify update frequency
Expected Results:
- AC4: Percentage complete updates at approximately the configured interval (2 seconds default)
Automation Status: Automated
Jira: BT-2251
TC-PROGRESS-004: Screen interaction during progress display
Verifies: REQ-PROGRESS-001 (AC5, AC6)
Method: TM-UI
Priority: High
Preconditions:
- Long-running process active on Run File screen
- Progress indicator displayed
Steps:
- Attempt to interact with Run File screen content (e.g., select wells, edit data)
- Attempt to use navigation elements (e.g., sidebar menu)
Expected Results:
- AC5: Primary screen content is inaccessible (blocked) while progress indicator is displayed
- AC6: Navigation elements remain accessible while progress indicator is displayed
Automation Status: Automated
Jira: BT-2251
TC-PROGRESS-005: Configuration defaults and customization
Verifies: REQ-PROGRESS-001 (AC7, AC8)
Method: TM-API
Priority: Medium
Preconditions:
- Access to system configuration
Steps:
- Verify default value for long-running process threshold
- Modify threshold to a custom value (e.g., 5 seconds)
- Initiate a process that takes 7 seconds
- Reset threshold and verify default value for progress update interval
- Modify update interval to a custom value (e.g., 1 second)
- Verify updates occur at new interval
Expected Results:
- AC7: Long-running process threshold defaults to 10 seconds and is configurable
- AC8: Progress update interval defaults to 2 seconds and is configurable
Automation Status: Manual
Deviation: The progress threshold and update interval are hardcoded in the application (2s polling interval in RunView.vue, no configurable threshold in client_configurations). There are no API-accessible configuration endpoints for these values.
Jira: BT-2159
TC-PROGRESS-006: Error handling during progress display
Verifies: REQ-PROGRESS-001 (Error Handling AC1, AC2)
Method: TM-HYB
Priority: High
Preconditions:
- Ability to trigger process failure during execution
- Ability to trigger a process where progress calculation is unavailable
Test Data:
- Scenario A: Process configured to fail mid-execution
- Scenario B: Process type that does not support progress calculation
Steps:
Scenario A: Process Failure
- Initiate a long-running process
- Trigger a failure condition during execution
- Observe progress indicator behavior and notifications
Scenario B: Indeterminate Progress
- Initiate a process where progress calculation is unavailable
- Observe progress indicator behavior
Expected Results:
- Error AC1: On process failure, progress indicator is dismissed AND error notification is displayed
- Error AC2: When progress calculation unavailable, indeterminate progress indicator is displayed
Automation Status: Manual (complex failure injection)
Jira: BT-2159
Deviation: TM-MAN used for Scenario A due to difficulty automating failure injection. Remediation: Consider mock service for failure simulation.
TC-PROGRESS-007: Progress indicator hidden on navigation away
Verifies: REQ-PROGRESS-002 (AC1, AC2)
Method: TM-UI
Priority: High
Preconditions:
- Long-running process active with progress indicator displayed
Steps:
- Note current progress percentage
- Navigate to another screen via sidebar
- Observe progress indicator behavior
- Wait several seconds
- Verify process continues (check via backend or return to screen)
Expected Results:
- AC1: Progress indicator is hidden when user navigates to another screen
- AC2: Process continues running in the background (progress advances)
Automation Status: Automated
Jira: BT-2251
TC-PROGRESS-008: Progress indicator restored on navigation return
Verifies: REQ-PROGRESS-002 (AC3)
Method: TM-UI
Priority: High
Preconditions:
- Long-running process active
- User has navigated away from the process screen
Steps:
- Initiate long-running process
- Navigate away from process screen
- Wait for some progress to occur (e.g., 5 seconds)
- Navigate back to the process screen
- Observe progress indicator
Expected Results:
- AC3: Progress indicator is displayed again with current status (percentage reflects actual progress, not initial value)
Automation Status: Manual
Deviation: Reanalysis processing completes in <1 second in the test environment, making it impossible to observe progress indicators or navigate away and return during processing. Testing requires either a mocked backend delay or a very large run fixture.
Jira: BT-2251
TC-PROGRESS-009: Multiple concurrent progress indicators
Verifies: REQ-PROGRESS-003 (AC1, AC2, AC3)
Method: TM-UI
Priority: Medium
Preconditions:
- Multiple Run Files available for Reanalysis
- Ability to initiate processes on multiple files
Test Data:
- Run File A (Reanalysis expected duration > 10s)
- Run File B (Reanalysis expected duration > 10s)
Steps:
- Initiate Reanalysis on Run File A
- Verify progress indicator for Run File A is displayed
- Initiate Reanalysis on Run File B (open in new tab or navigate)
- Navigate to view where both progress indicators can be observed
- Verify both indicators are displayed
Expected Results:
- AC1: Multiple progress indicators displayed simultaneously
- AC2: Each progress indicator displays its own process name and percentage complete
- AC3: Progress updates for each process are independent (advancing at their own rates)
Automation Status: Manual
Deviation: Reanalysis completes in <1 second in the test environment. Observing two simultaneous progress indicators requires two runs processing concurrently for >10 seconds each, which is not achievable without mocked backend delays or extremely large run fixtures.
Jira: BT-2261
TC-PROGRESS-010: Progress visible to user opening resource during process
Verifies: REQ-PROGRESS-004 (AC1)
Method: TM-HYB (requires two browser sessions)
Priority: High
Preconditions:
- Two users (User A and User B) with access to same Run File
- Two browser sessions (or incognito windows)
Test Data:
- Run File X accessible to both users
Steps:
- User A initiates Reanalysis on Run File X
- Verify progress indicator displayed for User A
- User B opens Run File X while Reanalysis is in progress
- Observe User B's view
Expected Results:
- AC1: User B sees the progress indicator for the Reanalysis initiated by User A
Automation Status: Manual
Deviation: Requires both multi-session browser testing AND a long-running reanalysis process. Processing completes in <1 second in the test environment, making multi-user progress observation impossible without mocked backend delays.
Jira: BT-2261
TC-PROGRESS-011: Progress appears and synchronizes for user with resource already open
Verifies: REQ-PROGRESS-004 (AC2, AC3)
Method: TM-HYB (requires two browser sessions with real-time sync)
Priority: High
Preconditions:
- Two users (User A and User B) with access to same Run File
- Two browser sessions
Test Data:
- Run File X accessible to both users
Steps:
- User B opens Run File X (no process active)
- User A initiates Reanalysis on Run File X
- Observe User B's view (should update without page refresh)
- Compare progress percentage shown to User A and User B at same moment
Expected Results:
- AC2: Progress indicator appears for User B when User A initiates the process (real-time notification)
- AC3: Both users see the same progress status (synchronized percentage)
Automation Status: Manual
Deviation: Same as TC-PROGRESS-010 — requires long-running processing and multi-session browser with Pusher real-time sync. Processing completes too quickly in the test environment for observable cross-user synchronization.
Jira: BT-2261
TC-PROGRESS-020: Upload Runs page displays progress table column structure
Verifies: REQ-PROGRESS-001 (AC1)
Method: TM-UI
Priority: Medium
Preconditions:
- User logged in with access to Upload Runs page
Steps:
- Navigate to Upload Runs page
- Verify the progress table column headers are displayed
Expected Results:
- AC1: Table displays column headers: Site, Name, Uploaded By, Status (with progress elements), Uploaded At, Actions
Automation Status: Automated (Browser)
TC-PROGRESS-021: Empty state message displayed when no upload records exist
Verifies: REQ-PROGRESS-001 (AC1)
Method: TM-UI
Priority: Medium
Preconditions:
- User logged in
- No upload records exist in the system
Steps:
- Navigate to Upload Runs page
- Wait for page to finish loading
- Observe table content area
Expected Results:
- AC1: "No records available." message is displayed when no upload records exist
Automation Status: Automated (Browser)
TC-PROGRESS-022: Page transition updates screen title from Run Files to Upload Runs
Verifies: REQ-PROGRESS-002 (AC1)
Method: TM-UI
Priority: Medium
Preconditions:
- User logged in
Steps:
- Navigate to Run Files page
- Verify screen title displays "Run Files"
- Navigate to Upload Runs via sidebar
- Verify screen title updates to "Upload Runs"
Expected Results:
- AC1: Screen title updates correctly during SPA page transition from Run Files to Upload Runs
Automation Status: Automated (Browser)
TC-PROGRESS-023: Page transition updates screen title from Run Files to User Management
Verifies: REQ-PROGRESS-002 (AC1)
Method: TM-UI
Priority: Medium
Preconditions:
- User logged in
Steps:
- Navigate to Run Files page
- Verify screen title displays "Run Files"
- Navigate to User Management page
- Verify screen title updates to "User Management"
Expected Results:
- AC1: Screen title updates correctly during SPA page transition from Run Files to User Management
Automation Status: Automated (Browser)
TC-PROGRESS-024: Audit Trail page loads without stale skeleton elements
Verifies: REQ-PROGRESS-001 (AC1)
Method: TM-UI
Priority: Medium
Preconditions:
- User logged in with access to Audit Trail
Steps:
- Navigate to Audit Trail page
- Wait for page to finish loading
- Verify skeleton loader is no longer visible
Expected Results:
- AC1: Audit Trail page loads successfully and skeleton-container elements are removed after data fetch completes
Automation Status: Automated (Browser)
TC-PROGRESS-025: Config import via dialog triggers processing notification
Verifies: REQ-PROGRESS-001 (AC1)
Method: TM-UI
Priority: Medium
Preconditions:
- User logged in with access to Kit Configurations page
- Valid configuration file available for upload
Steps:
- Navigate to Kit Configurations page
- Upload a configuration file via the import dialog
- Observe notification behavior
Expected Results:
- AC1: Notification toast is displayed confirming the upload was submitted for processing
Automation Status: Automated (Browser)
Gap Analysis
No gaps identified. All 19 acceptance criteria have test coverage.
Coverage by AC Type
| AC Category | Count | Covered | Notes |
|---|---|---|---|
| Display Behavior | 4 | 4 | Verified via TM-UI/TM-HYB |
| Screen Interaction | 2 | 2 | Verified via TM-UI |
| Configuration | 2 | 2 | Verified via TM-API |
| Error Handling | 2 | 2 | Verified via TM-HYB/TM-MAN |
| Navigation Persistence | 3 | 3 | Verified via TM-UI |
| Concurrent Processes | 3 | 3 | Verified via TM-UI |
| Multi-User Visibility | 3 | 3 | Verified via TM-HYB |
Traceability to Existing Tests
| Test Case | Jira Test | Automation |
|---|---|---|
| TC-PROGRESS-001 through TC-PROGRESS-004 | BT-2251 | Selenium/Behat |
| TC-PROGRESS-005, TC-PROGRESS-006 | BT-2159 | Behat/Manual |
| TC-PROGRESS-007, TC-PROGRESS-008 | BT-2251 | Selenium |
| TC-PROGRESS-009, TC-PROGRESS-010, TC-PROGRESS-011 | BT-2261 | Selenium multi-session |
| TC-PROGRESS-020 through TC-PROGRESS-025 | — | Browser (Behat/Mink) |
Notes
- PROGRESS domain is UI-heavy but with significant backend state management via cache
- Multi-user synchronization relies on Pusher WebSocket; tests must verify real-time updates
- Error handling tests require ability to inject failures; may need mock services
- TC-PROGRESS-006 is the only test with manual component due to failure injection complexity