What This Table Is
The sys_atf_test_suite table stores collections of ATF tests designed to run together as logical groups. Each record represents a test suite that can contain multiple individual tests (sys_atf_test records) and executes them in sequence or parallel. Test suites are the backbone of regression testing, allowing developers to validate entire features or applications before deployments.
Owned by the Development module, test suites support the full ATF lifecycle from creation to execution to result analysis. They integrate deeply with CI/CD pipelines through REST APIs and can be triggered manually, scheduled, or called programmatically. The table supports both simple linear test execution and complex dependency management between tests.
This table does not extend any parent table—it's a standalone entity. However, it has a many-to-many relationship with sys_atf_test records through the sys_atf_test_suite_test junction table. Test suite results are stored in sys_atf_test_result_suite, creating a clear audit trail of execution history.
In large enterprises, expect 100-500 test suite records with execution results scaling to thousands of records monthly. Test suite execution can be resource-intensive—a single suite with 50+ tests may run for 10-30 minutes. The table includes fields for execution tracking, dependency management, and performance metrics that become critical at scale.
When You'll Script Against This Table
You'll script against this table primarily in Business Rules that trigger suite execution based on deployment events, Script Includes that manage CI/CD integration, and Scheduled Jobs that run regression testing on schedules. ATF suite execution APIs are commonly wrapped in Script Includes for reusability across multiple contexts like release management workflows and automated deployment pipelines.
Access requires the atf_test_designer role for full CRUD operations, while atf_test_admin provides execution rights. Most scripting happens in global scope, but be aware that test execution itself can span multiple application scopes depending on what the individual tests are validating.
Common scripting patterns:
- Trigger suite execution via
sn_atf.ATF.executeTestSuite()API calls - Poll suite execution status by querying
statefield changes andsys_atf_test_result_suite - Build dynamic test suites by programmatically adding tests via
sys_atf_test_suite_testrecords - Parse execution results and generate deployment reports based on pass/fail metrics
- Schedule recurring regression tests using
sysauto_scriptintegration - Implement deployment gates that block releases until critical test suites pass
- Create test suite templates for different application types or deployment stages
Table Gotchas
The `state` field updates asynchronously during test execution. Never assume a suite is complete just because you triggered it—always implement polling or use the ATF execution callbacks.
Test suite execution creates temporary session state that can interfere with other automated processes. Avoid running multiple large suites simultaneously on the same instance.
- The
run_typefield affects execution behavior—'all' runs every test regardless of individual failures, while 'stop_on_failure' halts the entire suite on first failure - Suite execution timeout is instance-wide and cannot be overridden per suite. Long-running suites may be killed by system limits
- The
sys_atf_test_suite_test.orderfield in the junction table controls test execution sequence—missing or duplicate order values cause unpredictable execution order
Test suites inherit security context from the executing user. Tests that require elevated permissions may fail when triggered by automated processes running as system accounts.
- Deleting a test suite does not automatically clean up related
sys_atf_test_result_suiterecords—implement proper cleanup or results accumulate indefinitely
Enjoying this? Get one deep-dive per week.
Join 1,000+ ServiceNow pros — scripts, GlideRecord patterns, Flow Designer techniques, and career moves. Free.
Related Tables
The sys_atf_test table contains the individual tests that populate suites, connected through the sys_atf_test_suite_test junction table. This many-to-many relationship allows tests to belong to multiple suites and suites to be built from overlapping test collections. The sys_atf_test_result_suite table stores execution results with detailed metrics, timing, and failure analysis.
You'll frequently query sys_user for suite ownership and execution context, and sys_scope when building application-specific test suites. The sysauto_script table commonly references test suites for scheduled execution, while CI/CD integrations often join against sys_app records to trigger application-specific regression testing during deployments.