The logic in your database
is mostly untested. We fix that.

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.

SQL Server (tSQLt) PostgreSQL / Supabase
Open-source - the test frameworks (tSQLt, pgTAP) are free; UnitAutogen writes the tests for them

The most costly myth in software

"QA tested the application, so the database is covered."

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.

How we solve it: reverse predicate-based data seeding

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.

Two products, one idea

Each is a self-contained tool for its platform.

UnitAutogen for SQL Server

Auto-generate tSQLt unit tests and real line/branch coverage for your stored procedures and functions, across the whole database.

Open-source (AGPL-3.0) + commercial license

rlsautotest for PostgreSQL / Supabase

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.

Free and open-source (Apache-2.0)