UnitAutogen auto-generates database unit tests - and the data that drives them - so the critical logic inside your database is actually tested, not just the app on top of it. Choose your platform.
QA tests through the application, so it only drives your database with the inputs
the screens happen to produce. The logic underneath - the error paths, the rare data conditions, the
specific branch of every IF and CASE, the row a security policy is meant to
hide - mostly never runs. The app looks tested; the database logic underneath never was.
The honest fix is to test the database directly - which almost no one does, because by hand it's brutal: fake every table, craft the data for every branch, set up every identity. So it gets skipped.
The hard part isn't faking the table - it's the data. UnitAutogen reads each predicate in your code and works backwards from it to generate the rows (and identities) that drive that branch both ways. It writes the tests and the data that make them mean something - so a generated test exercises the real logic instead of passing against an empty table.
Each is a self-contained tool for its platform.
Auto-generate tSQLt unit tests and real line/branch coverage for your stored procedures and functions, across the whole database.
Auto-generate pgTAP tests that prove your Row-Level Security - who can read and write which rows, per table, per command, per identity - with the data generated for you.