Layer your tests:
Schema tests: Does the data structure match expectations? Column types, nullable constraints, primary keys.
Row-level tests: Does each record pass validation? Not null, accepted values, format checks.
Aggregate tests: Do summary statistics look right? Row counts within expected range, sums match source.
Relationship tests: Do foreign keys resolve? Are all parent records present?
Freshness tests: Was data updated recently? Alert if the table is stale.
Run tests after every pipeline run. Block bad data from reaching production tables.