منطق برنامه در PostgreSQL فقط بیرون از database نیست؛ بخشی از آن در functionها و Triggerها قرار دارد و در Supabase و Neon بسیاری از این بخشها مستقیماً از مرورگر قابل دسترسیاند. UnitAutogen برای این منطق سه نوع تست تولید میکند: unit test، Integration Test و تست نشت داده. دادهٔ Mock موردنیاز هر تست را هم خودش میسازد.
روش تولید تستها deterministic است، نه مبتنی بر مدل زبانی. ابزار کد هر routine و schema مربوط به آن را میخواند و مقدار مورد انتظار را با اجرای همان routine در database واقعی به دست میآورد. طبق توضیح منبع، schema یکسان در هر اجرا تستهای کاملاً یکسان تولید میکند. هر تست تنها پس از اجرای موفق نگه داشته میشود؛ شاخهای که رفتار آن قابل اثبات نباشد، همراه با دلیل گزارش میشود و موفق محسوب نمیشود.
برای ساخت unit test، ابزار دادهها و ورودیهایی را پیدا میکند که شرط هر شاخه را درست یا نادرست کنند. خروجی بهصورت تستهای استاندارد pgTAP همراه با دادهٔ Mock تولید میشود. بررسی functionها شامل ورودی معتبر، مقادیر مرزی، دو سمت شرطها، شکل و محتوای نتیجه و جدولهایی است که تغییر میکنند.
تست Trigger بر اثر رفتارش تمرکز دارد: عملیات INSERT، UPDATE یا DELETE اجرا میشود و سپس تغییر همان ردیف، نوشتن در جدول دیگر یا خطای ایجادشده بررسی میشود. رفتار غیرقابلاثبات کنار گذاشته و گزارش میشود.
ابزار با استفاده از plpgsql_check میزان اجرای خطها و شاخهها را اندازه میگیرد؛ این بررسی کد اجراشده از طریق dynamic SQL را هم در بر میگیرد. unit test و این اندازهگیری در Community Edition رایگان قرار دارند.
Integration Test از یک function آغاز میشود و فراخوانیها و Triggerهای ناشی از آن را واقعاً اجرا میکند. تست نشت داده نیز بررسی میکند که ردیفها یا اطلاعات شخصی به کاربر یا مشتری دیگری، یا به پیام خطا، راه پیدا نکنند.



