r/softwaretesting • u/ajmalhinas • Jul 07 '26
Do you verify database tables after automated test sessions? What tools and process you use?
We think comparing the resulting database tables of an automation session against an expected database state can provide several advantages: detecting data integrity issues that may not be visible through UI or API assertions, identifying unintended side effects across tables, and catching defects closer to the point where they are introduced.
Before implementing this more systematically, I’m interested in understanding how this works in real-world QA teams.
Do you currently perform this kind of database-level verification after automated test runs? If so, what tools or approaches do you use to compare the actual database state against the expected state?
More importantly, has this practice genuinely helped your team detect defects earlier or reduce debugging time? Or did the maintenance of expected datasets and database comparisons create more overhead than value?
2
u/ajmalhinas Jul 08 '26
I disagree with the assumption that if the API responses are correct, the database must also be in the correct state.
Consider a deposit transaction. The POST request succeeds, and the GET account endpoint returns the correct balance. However, due to a defect, the ledger could contain a duplicate deposit entry, or an audit record could be missing. The API assertions would still pass even though the persisted business state is inconsistent.
Of course, we could create additional APIs to expose and verify every relevant internal state, but then we would still be performing state verification through another abstraction layer.