layer-groupBackend & System Test Catalog

Data Lifecycle

Data (objects, records, entities) is stored somewhere at some point, whether it is in memory or on disk (in plain files, databases, etc.). It is created, updated, and deleted over time. This process is referred to as the Data Lifecycle and is covered in the dedicated CRUD page.

Time & Scheduling

Time

  • Failure to communicate or execute on ambiguous time boundaries Example: "Valid until July 20" (inclusive or exclusive of July 20?). The system may treat July 20th as invalid while users expect it to be valid.

  • Failure to handle relevant time boundaries correctly Example: an action allowed at 10:59 is rejected at 11:00, even though the rule is "within the same hour." While 11:00 is indeed a new hour, the request was submitted at 10:59 and considered as valid by the user, but not by the system, which took 1+ minutes to process it.

  • Failure to handle end-of-month transitions Example: operation succeeds on Feb 28 but fails on March 1.

  • Failure to handle leap years correctly Example: system rejects Feb 29 in a leap year. Or accepts Feb 29 on non-leap years.

  • Failure to handle end-of-year transitions Example: data valid on Dec 31 becomes invalid on Jan 1 unexpectedly. Or vice versa - the state of an entity changes on Jan 1, but it should've remained the same, like a yearly (12-month) subscription started in the middle of the year.

  • Failure to handle daylight saving time transitions Example: scheduled action runs twice when clocks move back one hour.

  • Failure to handle time zones consistently Example: user in UTC+2 sees an item expire earlier than a user in UTC.

  • Failure to handle current time ("now") correctly Example: system accepts a timestamp equal to the current time when it should be considered in the past.

  • Failure to handle clock changes while the system is running Example: system clock jumps forward and scheduled tasks are skipped.

  • Failure to handle long-running operations across time boundaries Example: job starts before midnight and fails after midnight due to date-based logic.


Scheduling

Largely applies to background and batch jobs.

  • Failure to handle missing prerequisite data Example: Job A runs at 7 am even though Job B did not produce the required data.

  • Failure to define or execute a contingency plan Example: Job A neither retries nor fails gracefully when Job B data is missing.

  • Failure to handle out-of-order events Example: system receives event B before event A and produces incorrect results.

  • Failure to handle missed executions Example: system is down at 7 am, and the scheduled job never runs later.

  • Failure to prevent duplicate executions Example: job runs twice for the same day after a system restart.

  • Failure to handle overlapping executions Example: daily job starts while the previous day’s run is still in progress.

  • Failure to handle schedule changes at runtime Example: schedule is changed from 7 am to 8 am, but both executions occur.


Caching

Improper cache handling can lead to inconsistent data across system layers, resulting in incorrect data being displayed and follow-up issues in the data lifecycle.

  • Failure to update or invalidate cache when required Example: a user updates their profile, but the UI continues to show the old values from cache.

  • Failure to synchronize cached data with the source of truth Example: data is updated in the database, but the cache still serves outdated values.

  • Failure to fetch data from cache when required Example: the client continues fetching data from the backend even though the data is already cached and still valid.

  • Failure to respect cache expiration rules Example: cached data is used after its expiry time.

  • Failure to handle empty or missing cache entries correctly Example: a cache miss causes an error instead of triggering a backend fetch.

  • Failure to scope cache entries correctly Example: one user sees data cached for another user.

  • Failure to clear cache after delete operations Example: deleted items still appear in lists due to cached results.


Error Handling & Recovery

See Testing Failures and Errors.

Last updated