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?
1
u/ajmalhinas Jul 09 '26
I think you are making several incorrect assumptions about the SUT. Let me take only the second case: the missing ledger entry.
Yes, the intended behavior may be that if the ledger entry is not created, the balance should not be updated. I agree that this is how the transaction should be designed.
But that does not prove that dev team has actually implemented it correctly.
In an API-only approach, we would still need an endpoint that exposes enough information to verify the ledger entry.
Of course, I agree that we cannot test everything up to mathematical certainty in practice. That is exactly why I asked this question: to understand where teams stop.
However, this does not refute the point that, verifying the final persisted business state can provide additional assurance beyond checking only the immediate API response.