Test cases
Test cases page allows users to manage all data validations, easily filter and find any available test cases, and analyze results. All test cases are SQL based validations with expected results, thresholds, and other properties.

The toolbar holds the New test case dropdown (Empty test case, Standard validations, AI Assistant, Dynamic rules for bulk generation), the free-text search, the as-of date filter and the More menu (Reports, Business rules, Variables, Dynamic rules, Import tests). Import tests is only shown to users with Add/edit test cases.
Filtering and searching
The toolbar's Search box matches two fields only: the test case description and its SQL. Several search terms can be given, and a test case has to match every one of them. Everything else is filtered from its own column header:
Connections/Test suites - filter by connections or test suites (with a "not set" option)
Status - filter by test case latest execution status
Severity, Tags, Labels - filter by the test case's properties
Description, Expected, Result, Relation - text filters, each with a "not set" option. The Relation filter matches the test's schema, object or column, and also the combined
schema.objectform the column displaysExecution time - filter by a specific date
Custom fields - each custom field has its own column and filter
Applied filters show as a chip row that can be cleared in one click, restored from the filter history, or shared with other users via a copied link. The visible columns and their order can be customized from the table settings in the table header, which also holds the Row status colors display toggle.
Bulk actions
Selecting test cases with the row checkboxes (Shift+Click selects ranges; the header checkbox selects everything matching the current filters) replaces the toolbar with the bulk actions:

Execute - Execute selected tests
Assign - Edit one field on all selected tests at once: Test suite, Connection, Severity, Expected result, Business rules, Threshold, Enable/disable or a Custom field
Delete - Delete selected tests
More options - Export selected tests into JSON, Excel, ZIP or CSV file, or Duplicate them
Cancel - Clear the selection
Test cases can be imported via More → Import tests as JSON, Excel or CSV files: 
As-of date filter
The clock button in the toolbar rewinds the whole page to a chosen date and time: statuses, results, changes and execution histories all show what they were at that moment. The chosen time is kept in the page URL, so an as-of view can be shared as a link. Executing tests is disabled while the filter is active.

See the date filter for details.
Standard validations
Standard validations provide a fast way to create test cases from predefined validation types with minimal user input. Instead of writing SQL manually, users select a validation type and fill in a few details.
Click "New test case" button and select "Standard validations"
Choose a validation type from the list - the selected type expands into its form

After selecting a validation type, fill in the required details:
Connection - Target connection
Schema - Database schema
Object - Table or view
Column - Target column (for column-level validations)
Additional parameters depending on the validation type (e.g. allowed values)
The generated SQL and a live Expected / Actual readout are shown before saving
Click "Create" (or "Create and execute") to save the test case
Test cases can also be created as standard validations directly from the catalog object view.
Create new test case
Click "New test case" button and select "Empty test case"
Fill test case info:

Description - Test case short description, which will be visible from list view. A longer description can be added in the Additional information field, which also supports
@-mentions of glossary termsExpected - Test case expected results, which can be either numerical or string value. Expected result can also be combination of two conditions joined with AND/OR:

Equals - Test case result has to be equal to the expected value
Lesser than - Test case result has to lesser than the expected value
Greater than - Test case result has to greater than the expected value
Greater or equal to percentage 0-100 - Test case result has to be greater or equal to the expected value. Test case has to return percentage value (0-100). Percentage based test case results have weight of the percentage value returned
Test suite - Test suite which the test belongs to
Business rule - Business rules which the test belongs to
Severity - Test case severity, either INFO/WARNING/CRITICAL. Can be used to filter test suite and ignore results in test suites
Threshold - For lesser/greater than result tests you can enable percentage threshold. You can also choose the prediction model, which defaults to None.
Linear - uses linear regression
Polynomial - uses polynomial regression
Previous - compares to previous available result
Average - compares to average of all previous results
Target - Target connection to execute the test against
Query window - Test case SQL Query window on the SQL tab
Click "Save" button
It is possible to compare data from different data sources by comparing SQL results. You can compare numeric values (SUMs, COUNTs, AVGs etc), Strings and data sets row by row/column by column. Sample of missing data is displayed when comparing data sets.
Click "New test case" button and change the test case type to Compare
Fill test case info:

Severity - Test case severity, either INFO/WARNING/CRITICAL. Can be used to filter test suite and ignore results in test suites
Description - Test case short description, which will be visible from list view
Expected - Expected comparison types
A=B - Both results are equal
A⊆B - A is subset of B
B⊆A - B is subset of A
A>B - A is greater than B
A<B - A is lesser than B
Test suite - Test suite which the test belongs to
Connection A - Target connection to execute the test against for query A
Connection B - Target connection to execute the test against for query B
Query window - Two SQL editors side by side on the SQL tab; the collapsible SQL hints explain the
compare_idand_allowed_diff_aliases
Click "Save" button
Query + total test cases let you define two separate SQL queries - one returning the invalid (failing) row count and one returning the total row count. DQM executes both and calculates the result automatically.
Click "New test case" button and select "Query + total" as the test case type
Fill test case info:

Description - Test case short description, visible from list view
Expected - Determines how the result is calculated:
>=% threshold (percentage mode) - DQM calculates the pass rate as
(1 - invalid / total) * 100. Default is >=% 100, meaning 100% of rows must be validNumeric comparison (raw count mode) - The invalid row count is used directly as the result, and the total row count is shown as additional info
Test suite - Test suite which the test belongs to
Severity - Test case severity, either INFO/WARNING/CRITICAL
Target - Target connection to execute the test against
Invalid rows query - SQL returning the number of rows that violate the rule
Total rows query - SQL returning the total number of rows to compare against
Click "Save" button
When executed, both queries run against the target connection. In percentage mode, the result is displayed as the calculated percentage with the invalid and total counts shown in brackets - for example 95 [5 / 100].
The test case type of an existing test can be switched between Query, Query + total and Compare from the type selector in the sidebar.
SQL editor
The SQL editor on the SQL tab comes with several companions, reachable from the buttons in the editor's top right corner:

Catalog browser - a searchable side panel with the connection's schemas, objects and columns, for browsing the metadata while writing the query
Typeahead - the editor suggests schema, object and column names from the selected connection's metadata as you type, plus variables. The Autocomplete settings gear controls it: SQL suggestions (turn all suggestions off), Suggest SQL keywords and Auto-format SQL on open
Preview run - the play button executes the query and shows the actual value with a pass/fail verdict against the expected result before saving; View rows opens the row-level results
Data reconciliation mapping
For compare test cases, a visual drag-and-drop column mapping interface allows you to build reconciliation queries without writing SQL manually.
When creating or editing a compare test case, click "Create mapping" on the SQL tab

Select the connection, schema, and object for both sides (A and B)
Drag columns from one side onto the other to create mappings - matching column names are also offered as one-click suggested mappings
Optionally add WHERE filters for either side
The SQL query is automatically generated from the mapping configuration
Test case detailed view
Clicking a test case opens its detailed view. The sidebar holds the editable properties described above; the main area is organized into the Executions, SQL, Dependencies and Comments tabs. From the view's header the user can:
Copy link - copy a direct link to the test case
History - see who created and last modified the test case; with the View change history privilege, browse and restore full audit history versions
Notifications - subscribe to alerts for this test case
Schedule - see and set the test case's schedule
Two more toggles moved into the view itself:
Disabled - the slider in the sidebar's Execution section excludes the test case from test suite executions
Save results - the slider above the results pane saves sample results of executions as CSV files (automatically only for failing executions; a test suite that includes results in its report forces this on)
Test cases managed by dbt or belonging to a read-only test suite open read-only, marked with a pill in the header.
Test case scheduling
Test cases can be scheduled to run individually without having to be assigned to a test suite. This is done via the Schedule segment in the detailed view's header - its label always shows the current schedule (or "Not scheduled"):

If the test case's suite is scheduled, the segment shows the inherited suite schedule; a warning is shown when a schedule exists but the test case is disabled.
You can check scheduling specifics from scheduling
Generating SQL
DQM has rule templates, which can be used to generate SQL with just a few clicks.
Open a test and go to the SQL tab
Press the "Generate" button and select "Dynamic rules" (the menu also offers the AI Assistant and Standard validations)

Connection - Connection to generate SQL for
Parameters - Schema, object and columns selection to generate SQL for
Rule selection - Predefined SQL rule template for SQL generation, with a live SQL preview
SQL auto-update - Enable for updating SQL query based on metadata changes (requires all columns to be selected)
Press " Generate SQL "
Test case previous result
In addition to numerical and string values, users can utilize the "previous" functionality. This feature compares the current execution result with the result from the last execution. Type previous as the expected result's value:

Test case dqm_query_result
Normally, the query result is taken from the COUNT(*) projection. However, users can include additional projection items (or subquery) and assign the alias dqm_query_result to the one they want as the primary result.
Sample test case SQL Queries:
Test case comments
Test case comments are meant for collaboration between DQM users. Users can add and edit comments on test cases they have access to.
The Comments tab in the detailed view shows the comment count and an unread indicator. Comments are grouped by day; press Enter to send (Shift+Enter for a new line).

Editing comments - Hover a comment to edit or delete it (Non-admin users can only edit their own comments)
Adding new comment - Add new comment to test case
Dependencies
The Dependencies tab of the detailed view shows all upstream and downstream dependencies of the object used by this test case. When the test case has no relation set, the tab asks for one - set the schema and object in the Relation field first.
A selector switches the tab between Objects and Attributes, and two summary pills give the Downstream and Upstream object counts with their combined quality. Each row shows the dependency's Type, the object with its connection and schema, how many of its columns are involved, and its Quality.

Each dependency row has a Lineage action, counting the relations behind it, that opens the object- or column-level Lineage view.
Test case relations
Test case relations are automatically assigned for test cases that are generated from rule templates. Users can also manually assign relations to test cases.
The Relation field in the detailed view's sidebar shows the current relation (marked with an "Auto" badge when derived automatically). Opening it allows toggling the Automatic relation switch or picking the schema, object and columns manually; changes are saved with the test case.

Labels
Test case labels can be used to group test cases. These labels can be used for filtering tests or even executing certain test via DQM API. Labels are added in the Labels field of the detailed view's sidebar:

Execution graph
The Executions tab shows all executions for the test case alongside a prediction graph.

On execution graph you can see:
Executions - Time series data for latest executions. Clicking an execution in the history list highlights its point on the chart and loads its results
Prediction graph - Prediction graph for execution result history and allowed error rate
The pencil button above the execution history switches it into edit mode, where selected executions can be enabled, disabled (excluded from analysis) or deleted. The chart is shown for numeric results only.
Test case results
Count based test cases and compare test cases have test case results, which can instantly show users related results from query. The results are shown below the execution graph on the Executions tab.

Results will be displayed as a table with per-column filters, where users can copy the query, download results as CSV or Excel, and expand the table to full screen.
When "Save results" is enabled, every execution has a persisted results file, and the diff pills (New/Resolved/Active) show how the failing rows changed.

Row-level diff
When a query test case fails, DQM can compare the current execution results against the previous saved results to show exactly which rows are new and which rows have disappeared - giving full visibility into what changed between executions, not just how many rows changed.
The execution history will display a diff indicator showing:
+X - number of rows that appear in the current result but were not in the previous result
−Y - number of rows from the previous result that no longer appear

If no previous saved result is available, all rows in the current result are treated as new.
Requirements for row-level diff to be available:
Save results must be enabled (under the detailed view)
Both the current and previous execution result must be within the configured row limit

