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 state field changes and sys_atf_test_result_suite
  • Build dynamic test suites by programmatically adding tests via sys_atf_test_suite_test records
  • Parse execution results and generate deployment reports based on pass/fail metrics
  • Schedule recurring regression tests using sysauto_script integration
  • 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_type field 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.order field 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_suite records—implement proper cleanup or results accumulate indefinitely
Free Newsletter

Enjoying this? Get one deep-dive per week.

Join 1,000+ ServiceNow pros — scripts, GlideRecord patterns, Flow Designer techniques, and career moves. Free.

No spam · Unsubscribe anytime

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.