STD: Reports (REPORTS)
Version: v1.0.0 Status: Draft SRS Source:
docusaurus/docs/srs/reports.mdDomain: REPORTS
Overview
This document specifies tests for the Reports domain, which covers analytical and statistical report generation, viewing, and export for PCR run data including Levey Jennings quality control charts, outcome trends analysis, and detailed outcomes reporting.
Domain Characteristics:
- Primary function: Data visualization and export (charts, tables)
- Secondary function: Backend aggregation, statistical calculation, alerting
- Configuration dependency: Westgard settings, alert thresholds, display options
- Integration points: Notifications (alerts), Run data, Multi-site filtering
Test Method Rationale: Per Test Plan Section 3.3, Reporting domains use TM-HYB as primary method with TM-MAN fallback. Reports involve significant backend statistical logic (TM-API) combined with chart/table rendering verification (TM-UI). Export verification uses TM-API for file content validation.
Test Case Convention: Steps describe logical actions, not UI mechanics. Use "Navigate to Levey Jennings report" or "Generate report with filters", not "Click the Reports menu and select LJ". This ensures test intent survives UI redesigns.
Coverage Summary
| REQ ID | Title | ACs | Tests | AC Coverage | Method | Gaps |
|---|---|---|---|---|---|---|
| REQ-REPORTS-001 | Generate Levey Jennings Report | 10 | TC-REPORTS-001, TC-REPORTS-002, TC-REPORTS-003 | 10/10 (100%) | TM-HYB | None |
| REQ-REPORTS-002 | Create Levey Jennings Dataset | 4 | TC-REPORTS-004, TC-REPORTS-005 | 4/4 (100%) | TM-UI | None |
| REQ-REPORTS-003 | Navigate from Levey Jennings Report | 4 | TC-REPORTS-006 | 4/4 (100%) | TM-UI | None |
| REQ-REPORTS-004 | Export Levey Jennings Report | 4 | TC-REPORTS-007 | 4/4 (100%) | TM-HYB | None |
| REQ-REPORTS-005 | Manage Westgard Ranges | 12 | TC-REPORTS-008, TC-REPORTS-009, TC-REPORTS-010 | 12/12 (100%) | TM-HYB | None |
| REQ-REPORTS-006 | Bulk Edit Westgard Limits | 4 | TC-REPORTS-011 | 4/4 (100%) | TM-UI | None |
| REQ-REPORTS-007 | Configure Westgard Display Options | 4 | TC-REPORTS-012 | 4/4 (100%) | TM-UI | None |
| REQ-REPORTS-008 | Generate Trends Report | 6 | TC-REPORTS-013, TC-REPORTS-014 | 6/6 (100%) | TM-HYB | None |
| REQ-REPORTS-009 | Create Trends Dataset | 4 | TC-REPORTS-015 | 4/4 (100%) | TM-UI | None |
| REQ-REPORTS-010 | Navigate from Trends Report | 2 | TC-REPORTS-016 | 2/2 (100%) | TM-UI | None |
| REQ-REPORTS-011 | Export and Print Trends Report | 5 | TC-REPORTS-017 | 5/5 (100%) | TM-HYB | None |
| REQ-REPORTS-012 | Aggregate Trends Data | 6 | TC-REPORTS-018 | 6/6 (100%) | TM-HYB | None |
| REQ-REPORTS-013 | Manage Trends Alerts | 8 | TC-REPORTS-019, TC-REPORTS-020 | 8/8 (100%) | TM-HYB | TC-020 Not Impl |
| REQ-REPORTS-014 | Trigger and Deliver Alert Notifications | 5 | TC-REPORTS-021 | 5/5 (100%) | TM-HYB | None |
| REQ-REPORTS-015 | Handle Special Trends Data | 3 | TC-REPORTS-022 | 3/3 (100%) | TM-UI | None |
| REQ-REPORTS-016 | Generate Outcomes Report | 5 | TC-REPORTS-023, TC-REPORTS-024 | 5/5 (100%) | TM-HYB | None |
| REQ-REPORTS-017 | Create Outcomes Dataset | 4 | TC-REPORTS-025 | 4/4 (100%) | TM-UI | None |
| REQ-REPORTS-018 | Navigate from Outcomes Report | 3 | TC-REPORTS-026 | 3/3 (100%) | TM-UI | None |
| REQ-REPORTS-019 | Export and Print Outcomes Report | 6 | TC-REPORTS-027 | 6/6 (100%) | TM-HYB | None |
| REQ-REPORTS-020 | Configure Combined Outcomes | 3 | TC-REPORTS-028 | 3/3 (100%) | TM-UI | None |
| REQ-REPORTS-021 | Multi-Site Report Access | 8 | TC-REPORTS-029, TC-REPORTS-030 | 8/8 (100%) | TM-HYB | None |
| REQ-REPORTS-022 | Exclude Archived Runs from Reports | 4 | TC-REPORTS-031 | 4/4 (100%) | TM-API | None |
| REQ-REPORTS-023 | Display Crossover Wells in Reports | 6 | TC-REPORTS-032 | 6/6 (100%) | TM-UI | None |
| REQ-REPORTS-024 | Role-Based Report Access | 5 | TC-REPORTS-033, TC-REPORTS-034 | 5/5 (100%) | TM-API | None |
| REQ-REPORTS-025 | Report Performance | 4 | TC-REPORTS-035 | 4/4 (100%) | TM-HYB | None |
Totals: 25 REQs, 125 ACs, 35 Test Cases, 100% Coverage
Test Cases
Levey Jennings Reporting
TC-REPORTS-001: Levey Jennings chart display with statistical bands
Verifies: REQ-REPORTS-001 (AC1-5: Chart Display)
Method: TM-HYB
Priority: Critical
Preconditions:
- User logged in with at least Junior User role
- Westgard-tracked controls exist with historical data points
- At least one mix with configured Westgard ranges
Test Data:
- Control with 20 data points over 30 days
- Range with Mean=25.0, SD=1.5
Steps:
- Navigate to Reports > Levey Jennings
- Select Mix, Target, and Control from filters
- Generate report
- Observe chart display
Expected Results:
- AC1: Levey Jennings chart displayed with control data points plotted against time
- AC2: Statistical bands visible (Mean, +/-1SD, +/-2SD, +/-3SD)
- AC3: Y-axis range is +/- 4 standard deviations from mean
- AC4: Background colors indicate zones (Green within 1SD, Yellow 1-2SD, Red 2-3SD, Grey beyond 3SD)
- AC5: When multiple extraction instruments selected, mean/SD lines hidden and background colors disabled by default
Automation Status: Automated
Jira: [Pending]
TC-REPORTS-002: Levey Jennings data table display
Verifies: REQ-REPORTS-001 (AC6-9: Data Table)
Method: TM-HYB
Priority: High
Preconditions:
- Same as TC-REPORTS-001
- More than one page of data (25+ records)
Test Data:
- 30 control measurements across 30 days
Steps:
- Navigate to Levey Jennings report with data
- Observe data table below chart
- Navigate through pages
Expected Results:
- AC6: Data table displays control measurements
- AC7: Table includes columns: Date, Control Name, Range Name, Thermocycler, Extraction Instrument, CT/Quantity, Mean, SD, CV, Event
- AC8: Data sorted by Extraction Date
- AC9: Page navigation available for large datasets
Automation Status: Automated
Jira: [Pending]
TC-REPORTS-003: Levey Jennings data representation
Verifies: REQ-REPORTS-001 (AC10-12: Data Representation)
Method: TM-HYB
Priority: High
Preconditions:
- Controls with various error statuses exist
- Westgard settings recently updated
Test Data:
- Control A: Normal status
- Control B: Resolved error
- Control C: Unresolved error
- CT value: 24.678 (should display as 25)
Steps:
- Navigate to Levey Jennings report
- Generate report with controls having different error statuses
- Observe control display indicators
- Verify CT value rounding
- Check for Westgard settings notification banner
Expected Results:
- AC10: Controls displayed based on error status (normal, resolved, unresolved) with distinct indicators
- AC11: CT values rounded to nearest integer (24.678 displays as 25)
- AC12: Notification banner displayed when Westgard settings have been updated
Automation Status: Not Implemented
Jira: [Pending]
TC-REPORTS-004: Levey Jennings dynamic filter behavior
Verifies: REQ-REPORTS-002 (AC1-3: Filter Options, Dynamic Behavior)
Method: TM-UI
Priority: High
Preconditions:
- Multiple mixes with different targets and controls configured
- Some filter combinations have limited options
Test Data:
- Mix A: 3 targets, 5 controls
- Mix B: 1 target, 1 control (auto-select scenario)
Steps:
- Navigate to Levey Jennings page
- Observe available filters
- Select Mix A from dropdown
- Observe downstream filter updates
- Change to Mix B
- Observe auto-selection behavior
Expected Results:
- AC1: Filters available for Date Range, Mixes, Target, Control, Control Type, Thermocycler, Extraction Instrument, Range Name
- AC2: Control Type, Thermocycler, and Extraction Instrument support multi-select
- AC3: Filter options update dynamically based on previous selections
Automation Status: Automated
Jira: [Pending]
TC-REPORTS-005: Levey Jennings filter auto-select and generate
Verifies: REQ-REPORTS-002 (AC4-5: Auto-select, Generate)
Method: TM-UI
Priority: Medium
Preconditions:
- Mix configured with only one target available
Steps:
- Navigate to Levey Jennings page
- Select Mix with single target option
- Observe Target filter behavior
- Complete remaining selections
- Click generate/confirm button
Expected Results:
- AC4: Filters with no available options are disabled
- AC4: Filters with only one option auto-select that option
- AC5: Dataset generated upon user confirmation
Automation Status: Automated
Jira: [Pending]
TC-REPORTS-006: Levey Jennings navigation
Verifies: REQ-REPORTS-003 (AC1-4)
Method: TM-UI
Priority: High
Preconditions:
- Levey Jennings report generated with data points
Steps:
- Generate Levey Jennings report
- Select a data point on chart
- Verify detailed information displayed
- Select a table row
- Verify navigation to runfile
- Use reset/clear filters control
- Use back/breadcrumb navigation
Expected Results:
- AC1: Selecting a data point displays detailed information for that point
- AC2: Selecting a table row navigates to the associated runfile
- AC3: Clear all filter selections control available and functional
- AC4: Standard page navigation (back, breadcrumbs) supported
Automation Status: Automated
Jira: [Pending]
TC-REPORTS-007: Levey Jennings export
Verifies: REQ-REPORTS-004 (AC1-4)
Method: TM-HYB (UI trigger, API file validation)
Priority: High
Preconditions:
- Levey Jennings report generated with data
- Multi-site enabled for AC4
Test Data:
- Report with Westgard configuration events
- New range created but not yet visible in table
Steps:
- Generate Levey Jennings report
- Trigger export
- Download and parse export file
- Verify column headers
- Verify Event column content
- Verify newly created range inclusion
- (Multi-site) Verify Site column present
Expected Results:
- AC1: Export includes column headers matching displayed table columns
- AC2: Event column includes Westgard configuration events
- AC3: Export includes newly created ranges not yet visible in table
- AC4: Export includes Site column when multi-site is enabled
Automation Status: Automated
Jira: [Pending]
TC-REPORTS-008: Create Westgard range
Verifies: REQ-REPORTS-005 (AC1-5: Range Creation, Range Values)
Method: TM-HYB
Priority: Critical
Preconditions:
- User has Westgard editing permissions
- Control exists without any ranges
Test Data:
- Range Name: "Test Range 2026"
- Start Date: 2026-01-01
- CT Type: CT
- Mean: 25.0
- SD: 1.5
Steps:
- Navigate to Levey Jennings page
- Select control without ranges
- Open range creation form
- Enter Name, Start Date, CT Type, Mean, SD
- Save the range
- Verify range creation
Expected Results:
- AC1: Range creation allowed with Name, Start Date, CT/Quantity type, Mean, SD
- AC2: Range name unique within the control (enforced)
- AC3: End date automatically set to start of next range (or open)
- AC4: Mean is positive number
- AC5: SD is greater than zero
Automation Status: Automated
Jira: [Pending]
TC-REPORTS-009: Westgard range values and editing
Verifies: REQ-REPORTS-005 (AC6-10: Range Values, Editing)
Method: TM-HYB
Priority: High
Preconditions:
- Existing range with associated controls
- Data visible on LJ chart
Steps:
- Navigate to Levey Jennings report with data
- View existing range details
- Verify CV calculation displayed
- Enter Benchmark CV manually
- Trigger Mean/SD calculation from visible data
- Attempt to edit date range for range with controls
- Verify confirmation prompt before save
Expected Results:
- AC6: CV calculated and displayed as percentage
- AC7: Benchmark CV enterable manually
- AC8: Each range has single Mean/SD/CV values
- AC9: Mean/SD calculated from visible graph data upon request
- AC10: Date range editing restricted for ranges with associated controls
Automation Status: Automated
Jira: [Pending]
TC-REPORTS-010: Westgard range validation and error handling
Verifies: REQ-REPORTS-005 (AC11-12, Error Handling)
Method: TM-HYB
Priority: High
Preconditions:
- User with Westgard editing permissions
- Range creation form accessible
Test Data:
- Invalid SD: 0, -1.0
- Invalid Mean: -5.0
- Duplicate Name: "Existing Range"
Steps:
- Attempt to create range with SD = 0
- Verify validation error and save disabled
- Attempt to create range with negative SD
- Verify validation error
- Attempt to create range with negative Mean
- Verify validation error
- Attempt to create range with duplicate name
- Verify specific error message
- Verify edit settings disabled until required filters filled
Expected Results:
- AC11: Changes require user confirmation before saving
- AC12: Edit settings disabled until all required filters filled
- ERR1: SD zero or negative shows validation error, save prevented
- ERR2: Mean negative shows validation error, save prevented
- ERR3: Duplicate range name shows "Range name must be unique within this control"
Automation Status: Automated
Jira: [Pending]
TC-REPORTS-011: Bulk edit Westgard limits
Verifies: REQ-REPORTS-006 (AC1-4)
Method: TM-UI
Priority: Medium
Preconditions:
- User logged in as Senior or Super-Admin
- Multiple controls with Westgard limits configured
- Some limits with invalid date ranges
- Multiple extraction instruments selected
Steps:
- Navigate to bulk Westgard edit interface
- Select multiple controls
- Apply bulk update
- Verify updates applied to matching limits
- Verify future unused limits ignored
- Observe warnings for invalid date ranges
- Verify confirmation prompt for multiple extraction instruments
Expected Results:
- AC1: Updates apply to all Westgard limits matching current selection
- AC2: Future unused Westgard limits ignored during bulk updates
- AC3: Warnings displayed for invalid date ranges
- AC4: Confirmation required before applying changes to multiple extraction instruments
Automation Status: Manual (complex multi-selection workflow)
Jira: [Pending]
Deviation: TM-MAN used due to complex multi-control selection and confirmation workflows. Remediation: Consider automation once UI stabilizes.
TC-REPORTS-012: Westgard display options
Verifies: REQ-REPORTS-007 (AC1-4)
Method: TM-UI
Priority: Medium
Preconditions:
- Levey Jennings chart displayed with data
- Multiple extraction instruments available
Steps:
- Navigate to Levey Jennings report
- Toggle Show Mean option
- Toggle Show SD Lines option
- Toggle Show Bands option
- Observe chart updates
- Verify legend displays symbol meanings
- Select multiple extraction instruments
- Enable Westgard bands display option
- Configure secondary priority ordering
Expected Results:
- AC1: Toggles available for Show Mean, Show SD Lines, Show Bands
- AC2: Legend showing symbol meanings is displayed
- AC3: When multiple extraction instruments selected, option to display Westgard bands available
- AC4: Secondary priority ordering configuration available for Westgard-tracked controls
Automation Status: Automated
Jira: [Pending]
Trends Reporting
TC-REPORTS-013: Trends report chart generation
Verifies: REQ-REPORTS-008 (AC1-4: Chart Display)
Method: TM-HYB
Priority: Critical
Preconditions:
- User logged in with at least Junior User role
- Run data exists with various outcomes over time
- Multiple intervals worth of data (days, weeks, months)
Test Data:
- 90 days of run data with mixed outcomes
Steps:
- Navigate to Reports > Trends
- Select filter criteria (Mix, Target)
- Generate report
- Observe chart display
- Change interval (Day/Week/Month)
- Verify X-axis updates
- Toggle Y-axis between count and percentage
Expected Results:
- AC1: Trends chart displayed with outcomes plotted over time
- AC2: X-axis displays date/time based on selected interval (Day/Week/Month)
- AC3: Y-axis displays count or percentage
- AC4: Outcome colors consistent with system color scheme
Automation Status: Automated
Jira: [Pending]
TC-REPORTS-014: Trends report data table
Verifies: REQ-REPORTS-008 (AC5-6: Data Table)
Method: TM-HYB
Priority: High
Preconditions:
- Trends report generated with control and patient well outcomes
Steps:
- Generate Trends report
- Observe data table below chart
- Verify control outcomes distinguished from patient well outcomes
Expected Results:
- AC5: Data table displays Date, Outcome, Count, Percentage columns
- AC6: Control outcomes included and distinguished from patient well outcomes
Automation Status: Automated
Jira: [Pending]
TC-REPORTS-015: Trends dataset creation
Verifies: REQ-REPORTS-009 (AC1-4)
Method: TM-UI
Priority: High
Preconditions:
- Multiple mixes with different targets configured
Steps:
- Navigate to Trends page
- Verify available filters
- Select a Mix
- Observe Outcome options update based on mix/target selection
- Make additional filter selections
- Navigate away and return
- Verify filter selections remembered
- Generate dataset
Expected Results:
- AC1: Filters available for Date Range, Mix, Target, Outcome, Interval
- AC2: Outcome options populated based on mix/target selection
- AC3: Filter options update dynamically based on previous selections
- AC3: Filter selections remembered during session
- AC3: Extraction date used for date filtering
- AC4: Dataset generated upon user confirmation
Automation Status: Automated
Jira: [Pending]
TC-REPORTS-016: Trends report navigation
Verifies: REQ-REPORTS-010 (AC1-2)
Method: TM-UI
Priority: Medium
Preconditions:
- Trends report displayed with data
Steps:
- Generate Trends report
- Select a data point on chart (or select table row)
- Verify navigation to Outcomes Report
- Verify matching filters applied
- Use back/breadcrumb navigation
Expected Results:
- AC1: Selecting data point or row navigates to Outcomes Report with matching filters
- AC2: Standard page navigation (back, breadcrumbs) supported
Automation Status: Automated
Jira: [Pending]
TC-REPORTS-017: Trends export and print
Verifies: REQ-REPORTS-011 (AC1-5)
Method: TM-HYB (UI trigger, file validation)
Priority: High
Preconditions:
- Trends report generated with data
Steps:
- Generate Trends report
- Export to Excel format
- Verify Excel file content
- Export to CSV format
- Verify CSV file content
- Trigger print
- Verify print preview content
- Verify file name format
Expected Results:
- AC1: Export to Excel supported
- AC2: Export to CSV supported
- AC3: Export includes all displayed columns
- AC4: Print includes headers, footers, and full table contents
- AC5: File names include report identifiers
Automation Status: Automated
Jira: [Pending]
TC-REPORTS-018: Trends data aggregation
Verifies: REQ-REPORTS-012 (AC1-6)
Method: TM-HYB
Priority: Medium
Preconditions:
- Trends report with data across multiple thermocyclers and extraction instruments
- Errors present in data
Steps:
- Generate Trends report
- Enable aggregation per filter type
- Observe aggregated data on graph
- Enable aggregated errors display
- Verify Y-axis adjusts to aggregated data
- Split data by thermocycler
- Split data by extraction instrument
- Use aggregated thermocycler option
Expected Results:
- AC1: Aggregation per filter type supported
- AC2: Aggregated errors displayable on graph
- AC3: Y-axis range adjusts to aggregated data
- AC4: Data split by thermocycler supported
- AC5: Data split by extraction instrument supported
- AC6: Aggregated thermocycler option available
Automation Status: Not Implemented
Jira: [Pending]
TC-REPORTS-019: Create and configure trends alerts
Verifies: REQ-REPORTS-013 (AC1-4: Alert Configuration)
Method: TM-HYB
Priority: High
Preconditions:
- User with alert configuration permissions
- Trends data available
Test Data:
- Alert Name: "High Invalid Rate"
- Condition: Greater than
- Threshold: 5%
- Target Mix: Mix A
Steps:
- Navigate to Trends alerts configuration
- Create new alert with name, condition, threshold
- Configure alert to target specific mix/target/outcome
- Save alert
- Enable/disable alert
- View Trends chart
- Verify threshold line displayed
Expected Results:
- AC1: Alert creation with name, condition, threshold allowed
- AC2: Alerts configurable to target specific mixes, targets, outcomes
- AC3: Alerts enableable/disableable
- AC4: Alert threshold values displayable on trends chart
Automation Status: Automated (Report Builder UI and stepper navigation verified; full alert CRUD requires seeded data)
Jira: [Pending]
TC-REPORTS-020: Trends alert scheduling
Verifies: REQ-REPORTS-013 (AC5-8: Scheduling)
Method: TM-HYB
Priority: Medium
Preconditions:
- Alert created from TC-REPORTS-019
Steps:
- Edit existing alert
- Configure scheduled evaluation (daily)
- Configure scheduled evaluation (weekly)
- Configure scheduled evaluation (monthly)
- Enable rolling time period evaluation
- Change default view mode to rolling period
- Verify schedule frequency options
Expected Results:
- AC5: Alerts support scheduled evaluation (daily, weekly, monthly)
- AC6: Alerts support rolling time period evaluation
- AC7: Default view mode changeable to rolling period
- AC8: Schedule frequency options include daily, weekly, monthly
Automation Status: Not Implemented
Jira: [Pending]
TC-REPORTS-021: Alert notification triggering and delivery
Verifies: REQ-REPORTS-014 (AC1-5)
Method: TM-HYB
Priority: High
Preconditions:
- Alert configured with threshold that will be exceeded
- Email notification recipients configured
Test Data:
- Alert threshold: 5%
- Current trend value: 8% (exceeds threshold)
Steps:
- Configure alert with threshold of 5%
- Generate or inject data that exceeds threshold (8%)
- Trigger alert evaluation (manually or wait for schedule)
- Verify notification generated
- Check email delivery to configured recipients
- Check system notification area
- Verify notification content includes alert name and timestamp
- Dismiss notification
Expected Results:
- AC1: Alerts evaluated based on configured conditions
- AC2: Notifications sent when alerts trigger
- AC3: Notifications include relevant alert details
- AC3: Email notifications sent to configured recipients
- AC4: Notifications displayed in system notification area
- AC4: Notifications include which alert triggered and timestamp
- AC5: Notifications dismissible
Automation Status: Not Implemented
Jira: [Pending]
TC-REPORTS-022: Special trends data handling
Verifies: REQ-REPORTS-015 (AC1-3)
Method: TM-UI
Priority: Low
Preconditions:
- Outcomes with wildcard/placeholder values exist
- Mix of exported and non-exported outcomes
Steps:
- Navigate to Trends report
- Generate report with data containing wildcards/placeholders
- Observe message display
- Generate report with mixed export status outcomes
- Verify both exported and non-exported displayed
- Verify export status indication
Expected Results:
- AC1: Generalized explanatory message displayed for outcomes with wildcards/placeholders
- AC2: Both exported and non-exported outcomes displayed together
- AC3: Export status indicated when relevant
Automation Status: Automated
Jira: [Pending]
Deviation: TM-MAN used due to complex test data setup for wildcard scenarios. Remediation: Create fixture data for automated testing.
Outcomes Reporting
TC-REPORTS-023: Outcomes report data display
Verifies: REQ-REPORTS-016 (AC1-3: Data Display)
Method: TM-HYB
Priority: High
Preconditions:
- User logged in with at least Junior User role
- Run data with quantification values exists
Test Data:
- Multiple runs with various outcomes including quantification data
Steps:
- Navigate to Reports > Outcomes
- Select filter criteria and generate report
- Observe table display
- Verify columns displayed
- Sort by different columns
- Verify dataset parameters displayed
- Verify quantification column shown when relevant
Expected Results:
- AC1: Table displays Run Name, Date, Mix, Target, Well, Patient ID, Outcome, Quantification
- AC2: Table sortable by configurable column
- AC3: Dataset parameters displayed
- AC3: Quantification column shown dynamically when relevant
Automation Status: Automated
Jira: [Pending]
TC-REPORTS-024: Outcomes report row expansion
Verifies: REQ-REPORTS-016 (AC4-5: Detail Expansion)
Method: TM-UI
Priority: Medium
Preconditions:
- Outcomes report displayed with multiple rows
Steps:
- Generate Outcomes report
- Expand first row
- Verify additional well details displayed
- Expand second row without collapsing first
- Verify both rows expanded simultaneously
- Collapse rows
Expected Results:
- AC4: Rows expandable to show additional well details
- AC5: Multiple rows expandable simultaneously
Automation Status: Automated
Jira: [Pending]
TC-REPORTS-025: Outcomes dataset creation
Verifies: REQ-REPORTS-017 (AC1-4)
Method: TM-UI
Priority: High
Preconditions:
- Multiple mixes and targets configured
Steps:
- Navigate to Outcomes page
- Verify available filters
- Apply multiple filters (Date Range, Mix, Target, Outcome, Patient ID)
- Verify filters combine correctly
- Observe dynamic filter updates
- Use clear all filters control
- Generate dataset
Expected Results:
- AC1: Filters available for Date Range, Mix, Target, Outcome, Patient ID
- AC2: Filters combinable
- AC3: Filter options update dynamically based on previous selections
- AC3: Clear all filter selections control available
- AC3: Extraction date used for date filtering
- AC4: Dataset generated upon user confirmation
Automation Status: Automated
Jira: [Pending]
TC-REPORTS-026: Outcomes report navigation
Verifies: REQ-REPORTS-018 (AC1-3)
Method: TM-UI
Priority: Medium
Preconditions:
- Outcomes report with multiple pages of data
Steps:
- Generate Outcomes report with 50+ records
- Select a table row
- Verify navigation to associated runfile
- Return to Outcomes report
- Navigate through pages (next, previous, page numbers)
- Use back/breadcrumb navigation
Expected Results:
- AC1: Selecting table row navigates to associated runfile
- AC2: Page navigation controls available (next, previous, page numbers)
- AC3: Standard page navigation (back, breadcrumbs) supported
Automation Status: Automated
Jira: [Pending]
TC-REPORTS-027: Outcomes export and print
Verifies: REQ-REPORTS-019 (AC1-6)
Method: TM-HYB (UI trigger, file validation)
Priority: High
Preconditions:
- Outcomes report generated with data including well comments
Steps:
- Generate Outcomes report with wells containing comments
- Export to CSV
- Verify all displayed columns in export
- Verify well comments included in export
- Trigger print
- Verify headers, footers, and full table contents in print
- Verify landscape orientation available
- Verify file name includes report identifiers
Expected Results:
- AC1: Export to CSV supported
- AC2: Export includes all displayed columns
- AC3: Well comments included in export
- AC4: Print includes headers, footers, and full table contents
- AC5: Landscape orientation supported for print
- AC6: File names include report identifiers
Automation Status: Automated
Jira: [Pending]
TC-REPORTS-028: Combined outcomes configuration
Verifies: REQ-REPORTS-020 (AC1-3)
Method: TM-UI
Priority: Medium
Preconditions:
- Combined outcome configuration accessible
- Multiple sample types configured
Steps:
- Navigate to combined outcome configuration
- Select sample type from dropdown
- Normalize groups for combined outcomes
- Verify both exported and non-exported outcomes displayable together
Expected Results:
- AC1: Sample type selection available in combined outcome configuration
- AC2: Groups normalizable for combined outcomes
- AC3: Combined outcomes support displaying both exported and non-exported outcomes together
Automation Status: Manual (configuration workflow)
Jira: [Pending]
Deviation: TM-MAN used due to configuration workflow complexity. Remediation: Automate after configuration UI stabilizes.
Cross-Cutting Report Capabilities
TC-REPORTS-029: Multi-site access and filtering
Verifies: REQ-REPORTS-021 (AC1-4: Access and Filtering)
Method: TM-HYB
Priority: High
Preconditions:
- Multi-site mode enabled
- User logged in as Manager
- Data exists across multiple sites
Steps:
- Navigate to any report page (LJ, Trends, Outcomes)
- Verify Site filter visible (multi-select)
- Verify Site column in tables
- Select multiple sites
- Observe chart with site differentiation
- Export report
- Verify Site column in export
Expected Results:
- AC1: Manager users have access to Site filter (multi-select)
- AC2: Manager users see Site column in report tables
- AC3: Charts differentiate data points by site
- AC4: Exports include Site column when multi-site enabled
Automation Status: Automated (Manager sidebar access and page load verified; data-driven AC2-4 require seeded multi-site data)
Jira: [Pending]
TC-REPORTS-030: Multi-site data handling and restrictions
Verifies: REQ-REPORTS-021 (AC5-8: Data Handling)
Method: TM-HYB
Priority: High
Preconditions:
- Multi-site mode enabled
- Alerts configured for specific sites
- Super-admin user for AC8
Steps:
- Select multiple sites in filter
- Verify data aggregated across selected sites
- Configure alert with site-specific scope
- Configure alert with global scope
- Trigger alert, verify notification indicates source site
- Login as Super-admin
- Attempt to modify Westgard settings across sites
- Verify restriction applied
Expected Results:
- AC5: Multi-site data aggregated when multiple sites selected
- AC6: Alerts support site-specific or global scope
- AC7: Alert notifications indicate source site
- AC8: Super-admin cannot modify Westgard settings across sites
Automation Status: Not Implemented
Jira: [Pending]
TC-REPORTS-031: Archived runs exclusion
Verifies: REQ-REPORTS-022 (AC1-4)
Method: TM-API
Priority: Critical
Preconditions:
- Runs exist with archive tags applied
- Unarchived runs exist in same date range
Test Data:
- Run A: Archived
- Run B: Not archived
- Same date range for both
Steps:
- Via API, query Levey Jennings dataset for date range
- Verify Run A excluded, Run B included
- Query Trends dataset for date range
- Verify Run A excluded, Run B included
- Query Outcomes dataset for date range
- Verify Run A excluded, Run B included
- Verify behavior consistent with archive mode settings
Expected Results:
- AC1: Archived runs not included in Levey Jennings report datasets
- AC2: Archived runs not included in Trends report datasets
- AC3: Archived runs not included in Outcomes report datasets
- AC4: Exclusion behavior consistent with archive mode settings
Automation Status: Not Implemented
Jira: [Pending]
TC-REPORTS-032: Crossover wells display
Verifies: REQ-REPORTS-023 (AC1-6)
Method: TM-UI
Priority: Medium
Preconditions:
- Runs with crossover wells exist
Test Data:
- Well marked as crossover well in run data
Steps:
- Navigate to Levey Jennings report with crossover well data
- Verify crossover well displays distinct indicator
- Verify "R" tag indicator displayed
- Navigate to Trends report with same data
- Verify crossover wells indicated
- Navigate to Outcomes report
- Verify crossover well indicator
- Apply crossover filter in Trends
- Verify crossover wells distinguishable in charts and tables
Expected Results:
- AC1: Crossover wells display distinct indicator in Levey Jennings
- AC2: Crossover wells display "R" tag indicator
- AC3: Crossover wells indicated in Trends report data
- AC4: Crossover wells display appropriate indicator in Outcomes
- AC5: Crossover wells filterable/highlightable in Trends
- AC6: Crossover wells distinguishable from standard wells in charts and tables
Automation Status: Not Implemented
Jira: [Pending]
TC-REPORTS-033: Role-based report viewing access
Verifies: REQ-REPORTS-024 (AC1-3)
Method: TM-API
Priority: High
Preconditions:
- Users with different roles available for testing
Steps:
- Login as Junior User
- Navigate to Reports menu
- Verify access to LJ, Trends, Outcomes reports
- Login as Senior User
- Verify same access
- Login as Super-Admin
- Verify same access
- Login as Manager
- Verify same access
Expected Results:
- AC1: All authenticated users can view reports
- AC2: Role-based restrictions apply to specific features (not viewing)
- AC3: Feature access consistent with system role definitions
Automation Status: Automated (7 scenarios: JUNIOR/SENIOR/MANAGER/SUPER_ADMIN access all 3 reports, CLIENT_ADMIN denied)
Jira: [Pending]
TC-REPORTS-034: Role-based Westgard editing restrictions
Verifies: REQ-REPORTS-024 (AC4-5)
Method: TM-API
Priority: High
Preconditions:
- Users with Junior, Senior, Super-Admin, Manager roles
Steps:
- Login as Junior User
- Navigate to Levey Jennings report
- Verify Westgard editing controls NOT available
- Login as Senior User
- Verify bulk Westgard editing available
- Login as Super-Admin
- Verify bulk Westgard editing available
- Login as Manager
- Verify multi-site features available
Expected Results:
- AC4: Senior and Super-Admin have access to bulk Westgard editing
- AC5: Manager role has access to multi-site features
Automation Status: Automated (4 scenarios: SENIOR/SUPER_ADMIN see pencil+panel, JUNIOR/MANAGER do not)
Jira: [Pending]
TC-REPORTS-035: Report performance
Verifies: REQ-REPORTS-025 (AC1-4)
Method: TM-HYB
Priority: Medium
Preconditions:
- Large dataset available (10,000+ records)
- Various browser window sizes
Test Data:
- 15,000 record dataset for testing
Steps:
- Generate report with typical dataset (100 records)
- Measure initial population time
- Apply filter change
- Measure repopulation time
- Generate report with 15,000 records
- Verify progressive loading or pagination used
- Resize browser window
- Verify responsive resizing
Expected Results:
- AC1: Reports initially populate within acceptable time for typical datasets
- AC2: Reports repopulate within acceptable time after filter changes
- AC3: Large datasets use progressive loading or pagination
- AC4: Reports resize responsively when browser window resized
Automation Status: Manual (performance measurement)
Jira: [Pending]
Deviation: TM-MAN used for performance testing due to timing measurement requirements. Remediation: Integrate with performance monitoring tools.
Gap Analysis
No gaps identified. All 125 acceptance criteria have test coverage.
Coverage by AC Type
| AC Category | Count | Covered | Notes |
|---|---|---|---|
| Chart/Visual Display | 28 | 28 | Verified via TM-UI + TM-API backend |
| Data Table Display | 18 | 18 | Verified via TM-HYB |
| Filter/Navigation | 25 | 25 | Verified via TM-UI |
| Export/Print | 14 | 14 | Verified via TM-HYB (file validation) |
| Configuration/Settings | 22 | 22 | Verified via TM-HYB |
| Role/Access | 8 | 8 | Verified via TM-API |
| Performance | 4 | 4 | Verified via TM-MAN |
| Error Handling | 6 | 6 | Verified via TM-HYB |
Method Distribution
| Method | Test Cases | Percentage |
|---|---|---|
| TM-HYB | 18 | 51% |
| TM-UI | 12 | 34% |
| TM-API | 3 | 9% |
| TM-MAN | 2 | 6% |
Traceability to SRS Tests
The SRS file contains Gherkin-style acceptance tests for many requirements. This STD formalizes those into structured test cases with explicit method assignment and coverage tracking.
| SRS Test Anchor | STD Test Cases |
|---|---|
| test-req-reports-001 | TC-REPORTS-001, TC-REPORTS-002, TC-REPORTS-003 |
| test-req-reports-002 | TC-REPORTS-004, TC-REPORTS-005 |
| test-req-reports-003 | TC-REPORTS-006 |
| test-req-reports-004 | TC-REPORTS-007 |
| test-req-reports-005 | TC-REPORTS-008, TC-REPORTS-009, TC-REPORTS-010 |
| test-req-reports-008 | TC-REPORTS-013, TC-REPORTS-014 |
| test-req-reports-009 | TC-REPORTS-015 |
| test-req-reports-013 | TC-REPORTS-019, TC-REPORTS-020 |
| test-req-reports-014 | TC-REPORTS-021 |
| test-req-reports-016 | TC-REPORTS-023, TC-REPORTS-024 |
| test-req-reports-021 | TC-REPORTS-029, TC-REPORTS-030 |
| test-req-reports-022 | TC-REPORTS-031 |
| test-req-reports-023 | TC-REPORTS-032 |
| test-req-reports-024 | TC-REPORTS-033, TC-REPORTS-034 |
| test-req-reports-025 | TC-REPORTS-035 |
Notes
- REPORTS is a complex domain with three major sub-areas (LJ, Trends, Outcomes)
- Cross-cutting requirements (multi-site, archive exclusion, crossover wells) tested across all report types
- Performance testing requires production-like data volumes
- Alert notification testing requires email infrastructure verification
- Manual test deviations documented with remediation plans