How to Write and Deploy No-Code Test Cases
OpenMetadata supports data quality tests at the table and column level on all of the supported database connectors. OpenMetadata supports both business-oriented tests as well as data engineering tests. The data engineering tests are more on the technical side to ascertain a sanity check on the data. It ensures that your data meets the technical definition of the data assets, like the columns are not null, columns are unique, etc. There is no need to fill a YAML file or a JSON config file to set up data quality tests in OpenMetadata. You can simply select the options and add in the details right from the UI to set up test cases. To create a test in OpenMetadata:- Navigate to the table you would like to create a test for. Click on the Data Observability tab.
- Click on Add Test to select a
TableorColumnlevel test.

Table Level Test
To create a Table Level Test enter the following details:- Name: Add a name that best defines your test case.
- Test Type: Based on the test type, you will have further fields to define your test.
- Description: Describe the test case. Click on Submit to set up a test.
- Table Column Count to be Between: Define the Min. and Max.
- Table Column Count to Equal: Define a number.
- Table Column Name to Exist: Define a column name.
- Table Column Names to Match Set: Add comma separated column names to match. You can also verify if the column names are in order.
- Custom SQL Query: Define a SQL expression. Select a strategy if it should apply for Rows or for Count. Define a threshold to determine if the test passes or fails.
- Table Row Count to be Between: Define the Min. and Max.
- Table Row Count to Equal: Define a number.
- Table Row Inserted Count to be Between: Define the Min. and Max. row count. This test will work for columns whose values are of the type Timestamp, Date, and Date Time field. Specify the range type in terms of Hour, Day, Month, or Year. Define the interval based on the range type selected.
- Compare 2 Tables for Differences: Compare 2 tables for differences. Allows a user to check for integrity.
- Table Data to Be Fresh: Validate the freshness of a table’s data (OpenMetadata).

Column Level Test
To create a Column Level Test enter the following details:- Column: Select a column. On the right hand side, you can view some context about that column.
- Name: Add a name that best defines your test case.
- Test Type: Based on the test type, you will have further fields to define your test.
- Description: Describe the test case. Click on Submit to set up a test.
Column tests attach to top-level columns only. Nested (struct) child columns don’t appear in the Column selector. To validate a nested field, create a Table Custom SQL Test that returns the rows with an invalid value, or ingest a view that exposes the nested field as a column and test the view.
- Column Value Lengths to be Between: Define the Min. and Max.
- Column Value Max. to be Between: Define the Min. and Max.
- Column Value Mean to be Between: Define the Min. and Max.
- Column Value Median to be Between: Define the Min. and Max.
- Column Value Min. to be Between: Define the Min. and Max.
- Column Values Missing Count: Define the number of missing values. You can also match all null and empty values as missing. You can also configure additional missing strings like N/A.
- Column Values Sum to be Between: Define the Min. and Max.
- Column Value Std Dev to be Between: Define the Min. and Max.
- Column Values to be Between: Define the Min. and Max.
- Column Values to be in Set: You can add an array of allowed values.
- Column Values to be Not in Set: You can add an array of forbidden values.
- Column Values to be Not Null
- Column Values to be Unique
- Column Values to Match Regex Pattern: Define the regular expression that the column entries should match.
- Column Values to Not Match Regex: Define the regular expression that the column entries should not match.


- On the Data Quality page, select the test suite and click the Pipelines tab. Alternatively, open the table, go to Data Observability > Data Quality, and click the Pipelines tab.
- Add a pipeline

- Set up the scheduler for the desired frequency. The timezone is in UTC.
- Click on Submit.



Run a Test Case On Demand
You don’t have to wait for the schedule. To run your test cases right away, run the pipeline manually:- Open the table that has the test case and go to Data Observability > Data Quality.
- Select the Pipelines tab and find the pipeline that runs your test case.
-
Click the ⋮ menu next to the pipeline and select Run.

- Check the Recent Runs column for the pipeline to follow the result. The test case results update in the Data Quality tab.
Note: The Run option appears only if the pipeline is deployed and you have the
Trigger permission. For more information, see Authorization.Handle Test Failures
If a test fails, you can Edit the Test Status to New, Acknowledged, or Resolved status by clicking on the Status icon.
- Select the Test Status

- If you are marking the test status as Resolved, you must specify the Reason for the failure and add a Comment. The reasons for failure can be Duplicates, False Positive, Missing Data, Other, or Out of Bounds.
- Click on Submit.

How to Set Alerts for Test Case Fails
Get notified when a data quality test fails.