ServiceNow DevOps Testing and Acceptance Checklist
This checklist helps a team decide what to test before a ServiceNow release reaches production. It covers unit, integration and system tests, then acceptance criteria, performance, security, regression and data migration checks, with test evidence to document.
Test Layers and Scope
Effective testing spans multiple layers, each catching different issues. Unit tests verify individual functions or components work correctly. Integration tests verify that components work together and that the application integrates with other systems. System tests (end-to-end tests) verify the entire workflow from user input to output.
Define test coverage for each layer. Unit tests should cover most code logic (target substantial coverage). Integration tests should verify major workflows and system interfaces. System tests should verify critical user scenarios. Test automation tools (Jest, Selenium, SoapUI) make it feasible to maintain this breadth of testing.
Functional Testing and Acceptance Criteria
Before release, verify the application meets requirements. Acceptance criteria should be defined before development starts: if a user does X, they expect Y to happen. Test each criterion. Create a test checklist from requirements. Example criteria: “User can view their outstanding tickets”, “User can add a comment to a ticket”, “Notification is sent when a ticket is assigned”. Test each one and document results.
Acceptance testing can be automated (user interface automation, API testing) or manual (human tester following a script). Automate tests that are repetitive and stable; manual testing is better for exploratory scenarios where the tester needs to improvise.
Performance Testing and Scalability
Will the application handle expected load? Conduct performance testing: simulate realistic user volume and measure response times. Set thresholds agreed with the platform owner: a ServiceNow list should load quickly for the expected number of users. If performance testing shows slow loads, there is a problem that must be fixed before release.
Also test scalability: as user volume increases, do response times degrade gracefully, or do they become unacceptable? Identify bottlenecks: is it the database query, the application logic, or the network? Fix bottlenecks before release. Performance issues discovered in production are expensive to fix.
Security Testing and Vulnerability Scanning
Applications should be tested for security vulnerabilities. Conduct static analysis (scan code for common flaws like SQL injection, cross-site scripting). Conduct dynamic analysis (test a running application for vulnerabilities). Use automated scanning tools (Snyk, SonarQube) to find common issues. For critical applications, conduct manual security review by an expert.
Test access control: can a user see data they should not have access to? Can they modify data they should not be able to change? Test authentication: does the application properly verify user identity? Test input validation: does the application reject invalid input? Document security test results and fix any issues before release.
Regression Testing
When a change is made, ensure it does not break existing functionality. Regression tests verify that old features still work. Automate regression tests so they run on every build. If regression tests fail, fix the issue or understand why the break is acceptable before proceeding.
Maintain a regression test suite. As the application grows, the regression test suite should grow to cover all critical functionality. A large regression test suite (thousands of tests) takes time to run; optimise by running basic tests on every commit (quick feedback) and full tests on pull requests before merge.
Data Testing and Migration
If the release involves data changes (migration, transformation, new data model), test data processing thoroughly. Test with real or realistic data: sample data does not always expose issues. Verify data integrity: no lost or corrupted data. Verify data completeness: all expected data was migrated.
Also test rollback: if deployment fails and you need to rollback, can you restore the previous data? Test the rollback procedure to ensure it works before doing a production deployment.
Acceptance Entry and Exit Criteria
Define entry criteria: what must be true before testing can begin? (Code is complete, it compiles, basic functionality works, test environment is ready.) Define exit criteria: what must be true before release? (All tests pass, no critical issues, performance acceptable, security review complete, business owner approves.)
Create a checklist and review it before release. If exit criteria are not met, delay release. Do not compromise on quality to meet a deadline; a poor release hurts customer satisfaction and your credibility.
Test Evidence and Documentation
Keep test results for each release: which tests passed, which failed, which issues were found and how they were resolved. Document any known issues that are acceptable trade-offs (slow performance of a rarely-used feature, minor cosmetic issues). This documentation is evidence that testing was thorough and supports post-release audits.
Common Testing Mistakes
One mistake is testing only the happy path (the expected user workflow) and not testing edge cases or error conditions. Real users encounter errors and edge cases; your tests should too. Test what happens when the database is down, when the user has unusual roles, when data is invalid.
Another mistake is testing late. If testing happens only after development is complete, issues are expensive to fix and often get pushed through anyway to meet deadlines. Shift testing left: test as you develop, and have testing infrastructure (automated tests, test data) ready before development starts.
Separating pipeline gates from the acceptance decision
Testing inside a DevOps pipeline and acceptance of a release are related but different activities. Automated gates answer whether the build behaves as the tests describe. Acceptance answers whether the business outcome is what was asked for, and whether the operational risks are understood by the people who will live with them. A release can pass every gate and still be unacceptable, for example when a new workflow works but overloads a queue that was already near capacity. The checklist below keeps the two decisions visibly separate, and the testing strategy and the release evidence it produces should be agreed before the first gate is built.
| Gate or sign-off | Owned by | Evidence to retain | Stops the release when |
|---|---|---|---|
| Automated functional gate | Pipeline owner with the developers | Run record with test identifiers and outcomes | Any blocking test fails or is skipped without a recorded reason |
| Integration check against lower environment | Integration lead | Message traces and error logs from the test run | An upstream or downstream system returns unexpected data |
| Security scan | Security reviewer | Scan report tied to the build identifier | A finding above the agreed severity is open without an accepted risk |
| Business acceptance | Service owner | Signed acceptance note referencing the test scope | Acceptance criteria are unmet or were changed after testing |
| Operational readiness | Run team | Runbook, monitoring check and rollback test result | No one on the run team can describe the rollback path |
The business acceptance row deserves particular attention. Its evidence should name the test scope it relied on. A note that says the release was accepted without reference to what was tested cannot be reused when the next release touches the same functionality.
Test data that reflects production without copying its risks
Lower environments need data that behaves like production: realistic volumes, realistic reference records and realistic relationships between tables. They should not hold personal data that production users would object to seeing in a test run. The usual approach is a masked or synthetic extract refreshed on a schedule, with the masking rules written down and tested. Migration and reconciliation work usually needs a separate, more carefully controlled extract, because the question being asked is whether the data arrives intact.
Acceptance criteria that a pipeline can actually check
Acceptance criteria written as “the system should be fast” cannot be checked by a gate. Criteria written as “a standard change to a non-production configuration completes its approval route in the expected sequence and records the run identifier on the change” can. The rewrite is often the most valuable output of the testing workstream, because it forces the team to say what the release is for.
- Write one acceptance criterion for each business outcome the release claims to deliver, in terms a person could observe.
- For each criterion, name the automated check that covers it, or record that it is covered only by manual acceptance.
- Identify criteria that no check covers at all, and decide whether to build a check, accept the gap in writing or defer the feature.
- Agree the entry conditions for acceptance testing, such as a passing build from the agreed branch and an environment refreshed within the agreed window.
- Agree the exit conditions, including what happens to defects found late, which should be recorded as accepted risks or blockers, never quietly deferred.
Regression and the parts of the platform nobody remembers
Regression testing in a platform estate often fails in the places nobody thinks of as related: a notification rule that depends on a field renamed in an unrelated release, or a scheduled job that runs only at month end and was never part of the test suite. Keep a list of such dependencies beside the regression suite, and review it after any upgrade or any change to shared reference data.
Should every test run in the pipeline?
Run the fast checks on every commit and the slower checks on promotion. Running a long performance suite on every commit can slow developers down enough that they batch changes, which increases the size of each risky release.
What if a gate fails for a reason unrelated to the change?
Treat it as a defect in the gate. Record the failure, decide whether the gate should be fixed or the test removed, and never let a permanently red gate become something people ignore.
Do we still need manual testing if the pipeline is comprehensive?
Yes, for exploratory checks of how a workflow feels to the people who use it and for the business acceptance decision. Automation confirms that the behavior matches what was specified. It does not tell you whether the specification was right.
How much evidence is enough for an audit?
Enough that someone who did not take part in the release can see what was tested, against which build, with what result and who accepted the outcome. If the evidence needs a conversation to explain, it is not yet complete.
Related guides: ServiceNow Automated Testing and Release Assurance.
Frequently asked questions
What percentage of code should be covered by automated tests?
Target substantial coverage of critical logic. Not all code needs to be tested: boilerplate, UI styling, and trivial functions can have lower coverage. Focus on code that is complex, frequently changed, or critical to business logic. Maximal coverage is not necessary; good coverage with thoughtful test selection is better than high coverage with poor tests.
Should testing be done by developers or by dedicated testers?
Both. Developers write unit tests as they code (test-driven development). Dedicated testers or QA teams conduct integration and system testing, security testing, and exploratory testing. Developers and testers should collaborate: testers should understand development, developers should understand testing.
How much time should testing take relative to development?
Typically a meaningful portion of development time. If testing takes too much time, there may be too much testing or poor code quality requiring extensive fixes. If testing takes too little time, quality might be at risk. The ratio depends on risk tolerance and application criticality; critical systems spend more time testing.
Related guides
Related Oblytech services
Where this topic turns into delivery work, these are the Oblytech services that cover it.
Planning, running or fixing a ServiceNow programme? Tell us where you are and we will suggest a sensible next step.
Contact us