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

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:

  1. Schedule notification for T+30 minutes
  2. Close app completely (not just minimize)
  3. Wait for T-lead prefetch (T-10 minutes)
  4. Verify background fetch occurred
  5. Check content stored in database
  6. 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:

  1. Pre-populate database with valid content
  2. Disable network connectivity
  3. Schedule notification for immediate delivery
  4. Close app completely
  5. Wait for notification time
  6. 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:

  1. Store expired content (TTL < current time)
  2. Schedule notification for immediate delivery
  3. Close app completely
  4. Wait for notification time
  5. 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:

  1. Schedule notification for future time (24 hours)
  2. Simulate device reboot
  3. Wait for app to restart
  4. Verify notification re-scheduled
  5. 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:

  1. Store valid cached content
  2. Simulate network failure
  3. Schedule notification with T-lead prefetch
  4. Close app and wait for T-lead
  5. Wait for notification time
  6. 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:

  1. Schedule daily notification for 9:00 AM
  2. Change device timezone
  3. Verify schedule recalculated
  4. 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

  • 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