Data Bugs

// 5 bugs

Bugs involving incorrect, duplicated, stale, missing, or inconsistent data across the application.

// Why it matters

Data bugs often go unnoticed until they cause real damage. Duplicate records, a value that silently fails to save, or stale cache returning old data can corrupt reports, confuse users, and create support issues that are difficult to trace back to their source.

// Common symptoms

// Testing types:Database testingManual testingAPI testingRegression testingData validation testing
Practice this β†’ Hunt these bugs hands-on in the Buggy Web App.

// Bugs in this category

Difficulty
Severity

Showing 5 of 5 bugs

Duplicate Records CreatedHigh

Multiple identical records are created from a single user action β€” because the submit button can be clicked more than once before the first response arrives, the API is not idempotent (retrying creates a new record each time), or a background job processes the same message more than once with no deduplication.

IntermediateAPI testingManual testingAutomated testing
Stale Data Shown After UpdateMedium

After a record is successfully updated, the application continues to display the old value. This happens because the frontend does not re-fetch data after a successful write, a server-side cache is not invalidated on update, or a read replica with replication lag returns the pre-update value immediately after the write.

BeginnerManual testingAPI testingExploratory testing
Soft-Deleted Record Still Returned in APIMedium

When a user record is soft-deleted β€” its deleted_at column is set to a non-null timestamp β€” it continues to appear in GET /api/users list responses. The database query does not include a WHERE deleted_at IS NULL filter, so soft-deleted records are indistinguishable from active ones in API responses.

BeginnerAPI testingManual testingDatabase testing
Decimal Precision Lost on SaveMedium

A product price entered as 19.99 is stored and returned as 20.0 after being saved through the application. The database column is defined as FLOAT β€” an IEEE 754 approximate numeric type β€” rather than DECIMAL or NUMERIC, which are exact types. Because 19.99 cannot be represented exactly in binary floating-point, the stored value differs from the input.

IntermediateAPI testingManual testingDatabase testing
Message Queue Redelivery Causes Duplicate ProcessingHigh

The order-processing message queue uses at-least-once delivery semantics. When a consumer fails to acknowledge a message before the visibility timeout expires β€” due to slow processing, a crash, or a brief network interruption β€” the broker redelivers the message. Because the consumer has no idempotency check, the redelivered message is processed a second time, creating a duplicate order record with a different ID but identical contents.

IntermediateAPI testingManual testingExploratory testing

// Practise finding these bugs

Hunt data bugs hands-on in a live practice app, then check your findings against the seeded-bug answer guide.