You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
9.2 KiB
9.2 KiB
Daily Notification Plugin - Verification Checklist
Author: Matthew Raymer
Version: 1.0.0
Last Updated: 2025-01-27
Purpose: Regular verification of closed-app notification functionality
Pre-Verification Setup
Environment Preparation
- Clean test environment (no existing notifications)
- Network connectivity verified
- Device permissions granted (exact alarms, background refresh)
- Test API server running (if applicable)
- Logging enabled at debug level
Test Data Preparation
- Valid JWT token for API authentication
- Test notification content prepared
- TTL values configured (1 hour for testing)
- Background fetch lead time set (10 minutes)
Core Functionality Tests
1. Background Fetch While App Closed
Test Steps:
- Schedule notification for T+30 minutes
- Close app completely (not just minimize)
- Wait for T-lead prefetch (T-10 minutes)
- Verify background fetch occurred
- Check content stored in database
- Verify TTL validation
Expected Results:
- Log shows
DNP-FETCH-SUCCESS
- Content stored in local database
- TTL timestamp recorded
- No network errors
Platform-Specific Checks:
- Android: WorkManager task executed
- iOS: BGTaskScheduler task executed
- Web: Service Worker background sync
2. Local Notification Delivery from Cached Data
Test Steps:
- Pre-populate database with valid content
- Disable network connectivity
- Schedule notification for immediate delivery
- Close app completely
- Wait for notification time
- Verify notification delivered
Expected Results:
- Notification appears on device
- Content matches cached data
- No network requests during delivery
- TTL validation passed
Platform-Specific Checks:
- Android:
NotifyReceiver
triggered - iOS: Background task handler executed
- Web: Service Worker delivered notification
3. TTL Enforcement at Delivery Time
Test Steps:
- Store expired content (TTL < current time)
- Schedule notification for immediate delivery
- Close app completely
- Wait for notification time
- Verify notification NOT delivered
Expected Results:
- No notification appears
- Log shows
DNP-NOTIFY-SKIP-TTL
- TTL validation failed as expected
- No errors in logs
4. Reboot Recovery and Rescheduling
Test Steps:
- Schedule notification for future time (24 hours)
- Simulate device reboot
- Wait for app to restart
- Verify notification re-scheduled
- Check background fetch re-scheduled
Expected Results:
- Notification re-scheduled after reboot
- Background fetch task re-registered
- Rolling window maintained
- No data loss
Platform-Specific Checks:
- Android:
BootReceiver
executed - iOS: App restart re-registered tasks
- Web: Service Worker re-registered
5. Network Failure Handling
Test Steps:
- Store valid cached content
- Simulate network failure
- Schedule notification with T-lead prefetch
- Close app and wait for T-lead
- Wait for notification time
- Verify notification delivered from cache
Expected Results:
- Background fetch failed gracefully
- Log shows
DNP-FETCH-FAILURE
- Notification delivered from cached content
- No infinite retry loops
6. Timezone/DST Changes
Test Steps:
- Schedule daily notification for 9:00 AM
- Change device timezone
- Verify schedule recalculated
- Check background fetch re-scheduled
Expected Results:
- Next run time updated
- Background fetch task re-scheduled
- Wall-clock alignment maintained
- No schedule conflicts
Platform-Specific Tests
Android Specific
Battery Optimization
- Test with exact alarm permission granted
- Test without exact alarm permission
- Verify notification timing accuracy
- Check battery optimization settings
WorkManager Constraints
- Test with network constraint
- Test with battery constraint
- Verify task execution under constraints
- Check retry logic
Room Database
- Verify database operations
- Check migration handling
- Test concurrent access
- Verify data persistence
iOS Specific
Background App Refresh
- Test with background refresh enabled
- Test with background refresh disabled
- Verify fallback to cached content
- Check BGTaskScheduler budget
Force Quit Behavior
- Test notification delivery after force quit
- Verify pre-armed notifications work
- Check background task registration
- Test app restart behavior
Core Data
- Verify database operations
- Check migration handling
- Test concurrent access
- Verify data persistence
Web Specific
Service Worker
- Test background sync registration
- Verify offline functionality
- Check push notification delivery
- Test browser restart behavior
IndexedDB
- Verify database operations
- Check storage quota handling
- Test concurrent access
- Verify data persistence
Browser Limitations
- Test with browser closed
- Verify fallback mechanisms
- Check permission handling
- Test cross-origin restrictions
Performance Tests
Background Fetch Performance
- Measure fetch success rate (target: 95%+)
- Measure average fetch time (target: <5 seconds)
- Test timeout handling (12 seconds)
- Verify retry logic efficiency
Notification Delivery Performance
- Measure delivery rate (target: 99%+)
- Measure average delivery time (target: <1 second)
- Test TTL compliance (target: 100%)
- Measure error rate (target: <1%)
Storage Performance
- Measure database operation times (target: <100ms)
- Test cache hit rate (target: 90%+)
- Verify storage efficiency
- Test concurrent access performance
Security Tests
Data Protection
- Verify encrypted storage (if enabled)
- Test HTTPS-only API calls
- Verify JWT token validation
- Check privacy settings compliance
Access Control
- Verify app-scoped database access
- Test system-level security
- Verify certificate pinning (if enabled)
- Check error handling for sensitive data
Monitoring and Observability Tests
Logging
- Verify structured logging format
- Check log level configuration
- Test log rotation and cleanup
- Verify consistent tagging
Metrics
- Test background fetch metrics
- Verify notification delivery metrics
- Check storage performance metrics
- Test error tracking
Health Checks
- Test database health checks
- Verify background task health
- Check network connectivity status
- Test platform-specific health indicators
Test Results Documentation
Test Execution Log
- Record test start time
- Document test environment details
- Record each test step execution
- Note any deviations or issues
Results Summary
- Count of tests passed/failed
- Performance metrics recorded
- Platform-specific results
- Overall verification status
Issues and Recommendations
- Document any failures or issues
- Note performance concerns
- Record platform-specific limitations
- Provide improvement recommendations
Post-Verification Actions
Cleanup
- Clear test notifications
- Reset test data
- Clean up log files
- Restore original settings
Documentation Updates
- Update verification report if needed
- Record any new issues discovered
- Update performance baselines
- Note any configuration changes
Team Communication
- Share results with development team
- Update project status
- Schedule next verification cycle
- Address any critical issues
Verification Schedule
Quarterly Verification (Recommended)
- Q1: January 27, 2025
- Q2: April 27, 2025
- Q3: July 27, 2025
- Q4: October 27, 2025
Trigger Events for Additional Verification
- Major platform updates (Android/iOS/Web)
- Significant code changes to core functionality
- New platform support added
- Performance issues reported
- Security vulnerabilities discovered
Verification Team
- Primary: Development Team Lead
- Secondary: QA Engineer
- Reviewer: Technical Architect
- Approver: Product Manager
Success Criteria
Minimum Acceptable Performance
- Background Fetch Success Rate: ≥90%
- Notification Delivery Rate: ≥95%
- TTL Compliance: 100%
- Average Response Time: <5 seconds
Critical Requirements
- All core functionality tests pass
- No security vulnerabilities
- Performance within acceptable limits
- Platform-specific requirements met
Verification Approval
- All tests completed successfully
- Performance criteria met
- Security requirements satisfied
- Documentation updated
- Team approval obtained
Next Verification Date: April 27, 2025
Verification Lead: Development Team
Approval Required: Technical Architect