Photo Read Validation (MX03US02)
Photo Read Validation (MX03US02) - Comprehensive Test Cases
Test Scenario Analysis
A. Functional Test Scenarios
- Core Reading Validation Workflow - Validator can process readings through Pass/Exempt/Revisit/Adjust actions
- Cycle Management - Display and navigate through reading cycles with accurate counts
- Estimation Engine - Apply three estimation methods with business rule compliance
- New Meter Processing - Add new meters to system with proper validation
- Route Transfer Operations - Transfer meters between routes with audit trail
- Batch Operations - Process multiple readings simultaneously (Supervisor only)
- Service Order Creation - Generate service requests from meter validation
- GPS and Location Validation - Validate meter location accuracy within 100m tolerance
- Consumption Analytics - Display historical consumption with anomaly detection
- Data Export and Integration - Export validated readings for billing system
B. Non-Functional Test Scenarios
- Performance - Page load <3s, API response <500ms, concurrent user handling
- Security - Role-based access, data protection, audit trails
- Compatibility - Cross-browser, responsive design, device compatibility
- Usability - Navigation flow, error handling, user experience
- Reliability - Data integrity, error recovery, system stability
C. Edge Case & Error Scenarios
- Boundary Conditions - Min/max consumption values, GPS tolerance limits
- Invalid Inputs - Malformed readings, unauthorized access attempts
- System Failures - Network timeouts, service unavailability
- Data Inconsistencies - Duplicate meters, missing estimation data
Test Cases
TC_001: Core Reading Validation - Pass Reading
Test Case ID: MX03US02_TC_001
Title: Validator can successfully pass a valid meter reading
Created By: Test Automation
Created Date: 2025-06-03
Version: 1.0
Classification:
- Module/Feature: Reading Validation
- Test Type: Functional
- Test Level: System
- Priority: P1-Critical
- Execution Phase: Smoke
- Automation Status: Planned-for-Automation
Business Context:
- Customer_Segment: Enterprise/SMB/All
- Revenue_Impact: High
- Business_Priority: Must-Have
- Customer_Journey: Daily-Usage
- Compliance_Required: Yes
- SLA_Related: Yes
Quality Metrics:
- Risk_Level: Low
- Complexity_Level: Medium
- Expected_Execution_Time: 2 minutes
- Reproducibility_Score: High
- Data_Sensitivity: High
- Failure_Impact: Critical
Test Environment:
- Environment: Staging
- Browser/Version: Chrome 115+, Firefox 110+, Safari 16+
- Device/OS: Windows 10/11, macOS 12+
- Screen_Resolution: Desktop-1920x1080
- Performance_Baseline: <1 second response
Prerequisites:
- User logged in with Validator role
- Active reading cycle available (May 2025 Cycle)
- Meter M100001 in Pending status
- Valid meter reading data present
Test Procedure:
Step | Action | Expected Result | Test Data | Comments |
---|---|---|---|---|
1 | Navigate to Meter Read Guardian dashboard | Dashboard displays with cycle information "May 2025 Cycle: 01/05/2025 to 31/05/2025" | - | Verify cycle dates |
2 | Click on "View Readings" tab | List view shows all readings with status counts | - | Check count accuracy |
3 | Select meter M100001 from list | Detailed view opens showing meter information | Meter: M100001, Status: Pending | Verify all sections load |
4 | Review meter reading details | Previous: 3602, Current: 3900, Consumption: 298 | Consumer 1, ACC-200001 | Check calculation accuracy |
5 | Verify meter image and GPS status | Image displays, GPS status shows "GPS Mismatch" flag | Distance: 62.0 meters | GPS within tolerance |
6 | Click "Pass" button | Reading status changes to "Passed", moves to Pass tab | - | Verify status update |
7 | Navigate to Pass tab | Meter M100001 appears in Pass list with count increment | Pass count: 342 | Verify count update |
Verification Points:
- Primary_Verification: Reading successfully moved to Pass status
- Secondary_Verifications: Tab counts updated, audit trail created
- Negative_Verification: Reading should not appear in other status tabs
TC_002: Reading Exemption with Reason Code
Test Case ID: MX03US02_TC_002
Title: Validator can exempt reading with mandatory reason code selection
Priority: P1-Critical
Test Procedure:
Step | Action | Expected Result | Test Data | Comments |
---|---|---|---|---|
1 | Open meter M100001 in detailed view | Meter details displayed | Meter: M100001 | - |
2 | Click "Exempt" button | Exempt Reading modal opens | - | Modal validation |
3 | Verify reason code dropdown is empty | "Select a reason code" placeholder shown | - | Required field check |
4 | Click "Exempt" without selecting reason | Error message or button disabled | - | Validation check |
5 | Select reason code "EX-01: Meter Inaccessible" | Reason code selected and highlighted | EX-01: Meter Inaccessible | Valid selection |
6 | Click "Exempt" button | Modal closes, reading exempted | - | Action completion |
7 | Verify reading moved to Exemptions tab | Count increases, meter appears in list | Exemptions: 125 | Status verification |
TC_003: Manual Reading Adjustment
Test Case ID: MX03US02_TC_003
Title: Validator can manually adjust reading value with consumption calculation
Priority: P1-Critical
Test Procedure:
Step | Action | Expected Result | Test Data | Comments |
---|---|---|---|---|
1 | Open meter M100001 in detailed view | Meter details displayed | Current: 3900, Previous: 3602 | - |
2 | Click "Adjust" button | Adjust Reading modal opens with tabs | - | Modal validation |
3 | Verify "Manual Adjustment" tab is active | Tab highlighted, form fields visible | - | Default tab check |
4 | Enter adjusted reading value | Consumption automatically calculated | New reading: 4444 | Real-time calculation |
5 | Verify consumption calculation | "Consumption will be: 842" displayed | 4444 - 3602 = 842 | Math verification |
6 | Click "Adjust" button | Modal closes, reading adjusted | - | Action completion |
7 | Verify reading status updated | Status shows "Adjusted" in Pass tab | Status: Adjusted | Status verification |
TC_004: Estimation Rule Application
Test Case ID: MX03US02_TC_004
Title: Validator can apply estimation rules for missing readings
Priority: P1-Critical
Test Procedure:
Step | Action | Expected Result | Test Data | Comments |
---|---|---|---|---|
1 | Navigate to Missing Readings tab | List of 130 missing readings displayed | - | Tab navigation |
2 | Select meter M100002 with missing reading | Meter details show previous reading only | Previous: 2850 (01/04/2025) | Missing current |
3 | Click "Adjust" button | Adjust Reading modal opens | - | - |
4 | Click "Apply Estimation" tab | Estimation options displayed | - | Tab switch |
5 | Select "Average Consumption" radio button | Option selected with description | 3-month average | Method selection |
6 | Click "Apply Estimation" | Estimation calculated and applied | Estimated: 3148 (298 avg) | Calculation check |
7 | Verify reading moved to Pass tab | Status shows "Estimated" | Status: Estimated | Status update |
TC_005: Batch Estimation for Missing Readings (Supervisor)
Test Case ID: MX03US02_TC_005
Title: Supervisor can apply batch estimation to all missing readings
Priority: P2-High
Prerequisites:
- User logged in with Supervisor role
- Multiple meters with missing readings available
Test Procedure:
Step | Action | Expected Result | Test Data | Comments |
---|---|---|---|---|
1 | Navigate to Missing Readings tab | 130 missing readings displayed | - | Initial count |
2 | Click "Estimate All" button | Estimate All Missing Readings modal opens | - | Batch modal |
3 | Verify count display | "114 missing readings" shown in modal | 114 readings | Count accuracy |
4 | Select "Same Month Last Year" option | Radio button selected | May 2024 data | Method selection |
5 | Click "Estimate All" button | Processing indicator shown | - | Batch processing |
6 | Wait for completion | Modal closes, success message displayed | - | Process completion |
7 | Verify Missing Readings count reduced | Count decreases significantly | New count: 16 | Batch result |
8 | Check Pass tab for estimated readings | Multiple readings with "Estimated" status | Status: Estimated | Status verification |
TC_006: New Meter Registration
Test Case ID: MX03US02_TC_006
Title: Supervisor can add new meter to system with proper validation
Priority: P2-High
Test Procedure:
Step | Action | Expected Result | Test Data | Comments |
---|---|---|---|---|
1 | Navigate to New Readings tab | Shows 3 new readings | - | Tab access |
2 | Select meter NEW-86754 | New meter details displayed | Reading: 100, Status: new | New meter |
3 | Click "Add Meter to System" button | Add Meter modal opens | - | Modal validation |
4 | Verify auto-populated serial number | Serial number field shows NEW-86754 | Serial: NEW-86754 | Auto-population |
5 | Check device number field | Shows "NM202505001" | Device: NM202505001 | Device validation |
6 | Select route from dropdown | Current route selected | Route: Current Route | Route assignment |
7 | Select premise from dropdown | Premise options available | Premise 1 | Premise selection |
8 | Click "Confirm" button | Modal closes, meter added | - | Addition complete |
9 | Verify meter appears in system | Meter with "unassigned" status created | Status: unassigned | System update |
TC_007: Route Transfer Operation
Test Case ID: MX03US02_TC_007
Title: Supervisor can transfer meter between routes with audit tracking
Priority: P2-High
Test Procedure:
Step | Action | Expected Result | Test Data | Comments |
---|---|---|---|---|
1 | Open meter DEV-78901 with different route status | Meter shows "registered_different_route" | From Route B | Wrong route |
2 | Click "Transfer to Route" button | Transfer modal opens | - | Transfer option |
3 | Verify source route information | Shows "Route B to your current route" | From: Route B | Source identification |
4 | Select destination route | Dropdown shows available routes | To: Route A | Destination selection |
5 | Select destination premise | Premise options for selected route | Premise 2 | Premise assignment |
6 | Review transfer implications | Bulleted impact list displayed | Update assignments | Impact awareness |
7 | Click "Transfer Meter" button | Transfer completed, modal closes | - | Transfer action |
8 | Verify meter route updated | Status changed to normal route assignment | Status: normal | Route verification |
9 | Check activity log for transfer record | Transfer logged with timestamp and user | Log entry created | Audit trail |
TC_008: Service Order Creation
Test Case ID: MX03US02_TC_008
Title: User can create service order for meter requiring field service
Priority: P3-Medium
Test Procedure:
Step | Action | Expected Result | Test Data | Comments |
---|---|---|---|---|
1 | Open meter NEW-86754 requiring service | New meter displayed | Status: new | Service needed |
2 | Click "Create Service Order" button | Create Service Order modal opens | - | Service modal |
3 | Verify meter identification | Shows target meter "NM202505001" | Target: NM202505001 | Meter reference |
4 | Select priority from dropdown | Priority options available | Priority: Medium | Priority setting |
5 | Enter service description | Text area accepts input | "Uninstall ghosted meter" | Description entry |
6 | Click "Create Service Order" button | Service order submitted | - | Order creation |
7 | Verify confirmation message | Success notification displayed | "Service order created" | Confirmation |
8 | Check service order tracking | Order appears in service management | Order ID generated | Tracking setup |
TC_009: GPS Mismatch Detection and Handling
Test Case ID: MX03US02_TC_009
Title: System detects and flags GPS location mismatches beyond tolerance
Priority: P1-Critical
Test Procedure:
Step | Action | Expected Result | Test Data | Comments |
---|---|---|---|---|
1 | Open meter M100001 with GPS data | Location information displayed | Lat: 37.766992, Long: -122.399930 | GPS coordinates |
2 | Check distance difference | "62.0 meters" shown in red | Distance: 62.0m | Within tolerance |
3 | Verify GPS mismatch flag | "GPS Mismatch" warning displayed | Flag: GPS Mismatch | Automatic detection |
4 | Review location vs registered address | Address matches: "123 Main Street, Cityville" | Address verification | Location validation |
5 | Check route assignment | Shows "Route D" | Route: Route D | Route accuracy |
6 | Verify reading can still be processed | Pass/Exempt/Adjust buttons available | - | Processing allowed |
7 | Pass reading with GPS mismatch | Reading processes with GPS flag retained | Flag preserved | Flag retention |
TC_010: Consumption History Analysis
Test Case ID: MX03US02_TC_010
Title: System displays consumption history with anomaly detection
Priority: P2-High
Test Procedure:
Step | Action | Expected Result | Test Data | Comments |
---|---|---|---|---|
1 | Open meter M100001 detailed view | Consumption History section visible | - | History access |
2 | Review monthly consumption chart | Bar chart shows 5 months of data | Dec-Apr data | Visual display |
3 | Identify normal consumption months | Blue bars for typical usage | Dec: 299, Jan: 340, Feb: 282, Mar: 271 | Normal pattern |
4 | Identify anomaly month | Red bar for unusual usage | Apr: 702 (>50% average) | Anomaly detection |
5 | Verify current reading context | May consumption: 298 (normal pattern) | May: 298 | Current validation |
6 | Check daily average calculation | Shows "Avg: 9.93 per day" | 298รท30 = 9.93 | Math accuracy |
7 | Use history for validation decision | Historical pattern supports current reading | Decision: Pass | Context usage |
TC_011: Mark Reading for Revisit
Test Case ID: MX03US02_TC_011
Title: Validator can mark reading for revisit with reason tracking
Priority: P2-High
Test Procedure:
Step | Action | Expected Result | Test Data | Comments |
---|---|---|---|---|
1 | Open meter M100001 requiring review | Meter details displayed | - | Initial state |
2 | Click "Revisit" button | Mark for Revisit modal opens | - | Revisit option |
3 | Verify reason code requirement | Dropdown shows "RV-01: Suspicious Reading" | Selected: RV-01 | Reason required |
4 | Review reason code description | Full description of suspicious reading | Description visible | Reason clarity |
5 | Click "Mark for Revisit" button | Modal closes, reading marked | - | Action completion |
6 | Verify reading moved to Revisit tab | Count increases, meter in Revisit list | Revisit: 134 | Status update |
7 | Check reason code in list view | Reason code displayed in list | Code: RV-01 | Reason tracking |
TC_012: Cross-Browser Compatibility Validation
Test Case ID: MX03US02_TC_012
Title: Meter validation interface functions across supported browsers
Priority: P2-High
Test Environment:
- Browsers: Chrome 115+, Firefox 110+, Safari 16+, Edge Latest
- Screen_Resolution: 1920x1080
Test Procedure:
Step | Action | Expected Result | Test Data | Comments |
---|---|---|---|---|
1 | Open application in Chrome | Dashboard loads correctly | - | Chrome test |
2 | Navigate through all tabs | All navigation functions work | All tabs accessible | Chrome navigation |
3 | Process a reading validation | Pass/Exempt/Adjust/Revisit all function | Meter M100001 | Chrome functionality |
4 | Repeat steps 1-3 in Firefox | Identical functionality and appearance | - | Firefox test |
5 | Repeat steps 1-3 in Safari | Identical functionality and appearance | - | Safari test |
6 | Repeat steps 1-3 in Edge | Identical functionality and appearance | - | Edge test |
7 | Compare visual consistency | UI elements aligned and styled consistently | - | Cross-browser UI |
8 | Test modal dialogs in all browsers | All modals open, close, and function properly | - | Modal compatibility |
TC_013: Mobile Responsive Design Validation
Test Case ID: MX03US02_TC_013
Title: Interface adapts properly to mobile and tablet screen sizes
Priority: P3-Medium
Test Environment:
- Screen_Resolution: Mobile-375x667, Tablet-1024x768
- Device/OS: iOS 16+, Android 13+
Test Procedure:
Step | Action | Expected Result | Test Data | Comments |
---|---|---|---|---|
1 | Access dashboard on mobile device | Navigation tabs stack or scroll horizontally | - | Mobile layout |
2 | View meter details on mobile | Information sections stack vertically | Meter M100001 | Mobile detail view |
3 | Test action buttons on mobile | Buttons remain accessible and properly sized | Touch-friendly size | Mobile interaction |
4 | Open modals on mobile screen | Modals scale to fit screen without overflow | - | Mobile modal |
5 | Test on tablet resolution | Layout adapts to tablet dimensions | - | Tablet layout |
6 | Verify touch interactions | All touch gestures work properly | - | Touch functionality |
7 | Test horizontal/vertical orientation | Layout adapts to orientation changes | - | Orientation handling |
TC_014: Performance Benchmark Validation
Test Case ID: MX03US02_TC_014
Title: System meets performance requirements under normal load
Priority: P2-High
Quality Metrics:
- Expected_Execution_Time: <1 second per operation
- Performance_Baseline: Page load <3s, API response <500ms
Test Procedure:
Step | Action | Expected Result | Test Data | Comments |
---|---|---|---|---|
1 | Load dashboard with 500+ readings | Page loads within 3 seconds | 500 meter records | Initial load time |
2 | Switch between tabs | Tab content loads within 1 second | All tabs | Tab switching |
3 | Open meter detail view | Detail view loads within 1 second | Meter M100001 | Detail load time |
4 | Process reading validation | Action completes within 1 second | Pass action | Validation speed |
5 | Apply batch estimation | 100 readings processed within 10 seconds | 100 missing readings | Batch processing |
6 | Export readings data | Export completes within 5 seconds | 500 records | Export performance |
7 | Monitor API response times | All API calls respond within 500ms | Various endpoints | API performance |
TC_015: Data Validation and Business Rules
Test Case ID: MX03US02_TC_015
Title: System enforces all business rules and data validation constraints
Priority: P1-Critical
Test Procedure:
Step | Action | Expected Result | Test Data | Comments |
---|---|---|---|---|
1 | Attempt to enter negative consumption | System prevents or flags invalid data | Reading: 3000 (previous: 3500) | Negative consumption rule |
2 | Try to process reading outside cycle dates | System validates cycle date constraints | Date: 15/06/2025 | Cycle validation |
3 | Test GPS tolerance enforcement | Reading flagged when >100m from registered location | Distance: 150m | GPS tolerance |
4 | Verify estimation rule priority | System applies highest priority available rule | Missing estimation data | Rule priority |
5 | Test duplicate meter prevention | System prevents duplicate device numbers | Device: M100001 | Duplicate prevention |
6 | Validate mandatory reason codes | System requires reason for exempt/revisit | Empty reason field | Mandatory fields |
7 | Check role-based restrictions | Validator cannot access supervisor functions | Batch operations | Role enforcement |
TC_016: Security and Access Control Validation
Test Case ID: MX03US02_TC_016
Title: System enforces proper security controls and access restrictions
Priority: P1-Critical
Test Procedure:
Step | Action | Expected Result | Test Data | Comments |
---|---|---|---|---|
1 | Login with Validator role | Access granted to validation functions only | User: validator@utility.com | Validator access |
2 | Attempt to access batch operations | Button/function not visible or disabled | Estimate All button | Role restriction |
3 | Try to add new meters | Add Meter function not accessible | New meter functions | Supervisor only |
4 | Login with Supervisor role | Access granted to all functions | User: supervisor@utility.com | Supervisor access |
5 | Verify audit trail creation | All actions logged with user and timestamp | Various actions | Audit logging |
6 | Test session timeout | Session expires after inactivity period | 30 min inactivity | Session management |
7 | Verify data encryption | Sensitive data transmitted securely | Network inspection | Data protection |
TC_017: API Integration Testing
Test Case ID: MX03US02_TC_017
Title: API endpoints function correctly for reading validation operations
Priority: P1-Critical
Quality Metrics:
- Expected_Execution_Time: <500ms per API call
- Data_Sensitivity: High
Test Procedure:
Step | Action | Expected Result | Test Data | Comments |
---|---|---|---|---|
1 | Call GET /api/readings/cycle/{cycleId} | Returns reading list with 200 status | Cycle: May2025 | Reading retrieval |
2 | Call POST /api/readings/{id}/validate | Updates reading status successfully | Reading: M100001, Action: pass | Validation API |
3 | Call POST /api/readings/{id}/exempt | Exempts reading with reason code | Reason: EX-01 | Exemption API |
4 | Call PUT /api/readings/{id}/adjust | Updates reading value and consumption | New value: 4444 | Adjustment API |
5 | Call POST /api/estimations/batch | Processes multiple estimations | 100 readings | Batch estimation |
6 | Call POST /api/meters/add | Adds new meter to system | New meter data | Meter addition |
7 | Call PUT /api/meters/{id}/transfer | Transfers meter between routes | Route transfer data | Route transfer |
8 | Verify error handling | API returns proper error codes for invalid requests | Invalid data | Error responses |
TC_018: End-to-End Billing Integration
Test Case ID: MX03US02_TC_018
Title: Validated readings export correctly for billing system integration
Priority: P1-Critical
Test Procedure:
Step | Action | Expected Result | Test Data | Comments |
---|---|---|---|---|
1 | Complete validation for full cycle | All readings have final status | May 2025 cycle | Cycle completion |
2 | Navigate to Pass tab | All validated readings visible | 341+ readings | Export preparation |
3 | Click Export button | Export dialog opens | - | Export initiation |
4 | Select billing system format | CSV format selected for billing | Format: CSV | Format selection |
5 | Generate export file | File downloads with validated data | Readings data | File generation |
6 | Verify export data format | CSV contains all required billing fields | Standard billing format | Format verification |
7 | Test billing system import | Billing system accepts exported data | Billing system test | Integration test |
8 | Verify billing cycle completion | Readings appear in billing with correct values | Bill generation | End-to-end verification |
Test Suite Organization
Smoke Test Suite (Critical Path)
- TC_001: Pass Reading Validation
- TC_002: Reading Exemption
- TC_015: Data Validation Rules
- TC_016: Security Access Control
- TC_017: Core API Functions
Execution: Every build deployment
Duration: 15 minutes
Automation: 100%
Regression Test Suite (Full Functional)
- TC_001 through TC_011: All core functionality
- TC_014: Performance benchmarks
- TC_015: Business rules validation
- TC_017: API integration
- TC_018: Billing integration
Execution: Before each release
Duration: 4 hours
Automation: 80%
Full Test Suite (Complete Coverage)
- All test cases TC_001 through TC_018
- Cross-browser compatibility testing
- Mobile responsive validation
- Performance under load testing
- Security penetration testing
Execution: Weekly or major release
Duration: 8 hours
Automation: 60%
Integration & Dependency Map
External Dependencies
- GPS Services - Location validation (TC_009)
- Billing System API - Export integration (TC_018)
- Authentication Service - User access control (TC_016)
- File Storage - Meter images and exports (TC_001, TC_018)
Test Execution Dependencies
- Prerequisites: User accounts, test data, active cycle
- Sequential: New meter tests must run before route transfer
- Parallel: Reading validation tests can run simultaneously
- Failure Impact: Security test failures block all other tests
Performance Benchmarks
Critical Performance Criteria
- Page Load Time: <3 seconds for dashboard with 500+ readings
- API Response Time: <500ms for all validation operations
- Batch Processing: 100 readings estimated in <10 seconds
- Export Generation: 1000 readings exported in <5 seconds
- Concurrent Users: Support 50 simultaneous validators
Load Testing Scenarios
- Normal Load: 25 concurrent users processing readings
- Peak Load: 50 concurrent users during cycle end
- Stress Test: 100+ concurrent users with degraded performance monitoring