OBLYTECH Logo
OBLYTECH Logo
ServiceNow Test Step Explained
Home / Guides, Services and Solutions / Concepts Explained / ServiceNow Test Step Explained

ServiceNow Test Step Explained

What a Test Step Is

A Test Step is a single verification action within a test case. A test case might have five test steps: each step verifies one specific behavior. Test Step one might be “Log in to the portal and verify the home page displays,” step two might be “Click the submit button and verify the form is sent,” step three might be “Verify a confirmation email is received.” Each step has expected results; if actual results match expectations, the step passes. If not, it fails and the test case fails.

Test steps are the building blocks of quality assurance. Good test cases have small, focused steps that verify one thing each. Poor test cases have vague steps like “verify the system works,” which tells you nothing if the test fails.

Where Test Steps Live

Test Steps are organized into Test Cases, which are organized into Test Suites. A Test Case might verify that incident creation works correctly. Test Steps within that case verify each part of the workflow: incident form displays, required fields are enforced, priority is calculated correctly, and the incident is saved. Test Suites group related test cases: all incident management tests, all change management tests.

Test Steps can be executed manually or automated. Manual test steps are performed by a person who follows written instructions and reports pass or fail. Automated test steps are executed by scripts that perform actions and verify results without human intervention. Automated tests are faster and can run frequently; manual tests are slower but test the user experience directly.

A Worked Example

Your team is testing a custom incident creation form. You create a test case called “Incident creation with validation.” Test step one: “Enter incident summary and save. Verify incident is created.” Test step two: “Leave summary blank and try to save. Verify error message appears.” Test step three: “Enter incident description longer than 4000 characters. Verify field validation prevents save.” Each step is specific and verifiable.

During testing, a tester executes each step. Step one passes. Step two fails: the error message does not appear. The tester documents this failure so the development team can fix it. Step three passes. The test case fails overall because step two failed. The development team investigates and makes a fix. The test case is re-run and now passes.

Test Execution and Results

Test steps track whether each verification passed, failed, or was skipped because an earlier step in the run stopped it (could not be executed because a prior step failed or external dependencies are not met). Failed test steps link to defects so developers know what to fix. Passed test steps build confidence that the system works correctly for that scenario. Test results are tracked so you can report on quality: what percentage of test steps passed, what defects were found, how long testing took.

Automating Test Steps

Automated test steps run without human intervention. They click buttons, enter data, and verify results just like a manual test. Automated tests are fast: a suite that takes hours manually might run in minutes automated. Automated tests are repeatable: you can run the same tests after code changes to ensure no regression. Automated tests require more upfront effort to create but pay for themselves through efficiency.

Test Maintenance

Test steps become obsolete as functionality changes. When you modify a form, add a new field, or change a process, test cases need updating. Without maintenance, old test cases test outdated functionality and are misleading. Assign ownership to test suites so someone is responsible for keeping tests current.

Common Test Step Mistakes

Ambiguous steps like “verify it works” fail to communicate what should actually be verified. Vague expectations make test failures hard to debug. Instead, write steps that specify exactly what to do and what to expect: “Enter user ID 12345 in the search box, click Find, and verify the user table displays one row with that ID.” Specify expected values, not just “looks right.” Over-complicated steps that try to verify too many things at once become hard to maintain when they fail. A failed step that covers five scenarios leaves you guessing which one broke.

Dependencies Between Test Steps

Some test steps depend on prior steps. A test case for incident workflow might require an incident to be created in step one before step two can assign it. Clearly document when steps are dependent. If a dependency fails, mark later steps as blocked. In automated testing, consider whether you can run steps independently or if they must run in sequence. Independent steps can run in parallel, making test suites faster.

Test Data and Environments

Test steps need reliable test data and a stable environment. Hardcoding specific user IDs or record numbers into test steps makes them fragile: if that user is deleted, tests fail even if nothing is broken. Use data setup steps that create fresh test data before testing, then clean up afterwards. Run tests in an isolated environment separate from production so you can modify data without affecting real users.

Triaging a Failed Step Before Touching the Code

This section is for the tester or release analyst who opens a run and finds a red step. The reader’s first instinct is usually to raise a defect, and the first failure in a run is often not a product defect at all. A failed step has four realistic causes: the product behaves wrongly, the step expects the wrong thing, the test data is no longer in the state the step assumes, or the environment is not configured as the test expects. Each cause has a different owner and a different fix, so the triage question is which of the four it is. Working through that question first keeps a noisy run from turning into a backlog of incorrect defects.

What you see Likely cause First check
Step fails on a value that changed recently by design Test expectation is stale Compare the expectation with the current requirement
Step fails only when run after another test Shared data left behind Run the step alone against fresh data
Step fails with a lookup returning nothing Reference record missing from the environment Confirm the record exists in the test instance
Step fails the same way in every environment Probable product defect Reproduce by hand and capture the record state

Writing Steps That Separate a Defect from a Test Problem

Steps that are written as a single sentence of intent make triage slow, because the failure cannot be placed on one action. A better format names the action, the input and the single observable result, in that order. When each step produces one observable result, a failure points at one place. Steps that rely on the tester noticing several things at once force the analyst to reconstruct what was checked.

  1. State the starting condition the step needs, such as the role, the record state and the time-sensitive settings.
  2. Write the action in the words a tester would use on the screen, with the exact field or button named.
  3. Name one observable result that can be checked without interpretation, such as a message, a field value or a record count.
  4. Record the evidence to capture on failure: the record identifier, the role used and the log entry, if any.
  5. Read the step aloud against a clean record to confirm it can be followed by someone who did not write it.

When a Step Should Become Its Own Test Case

A step is doing too much when a failure leaves the analyst unsure which part broke, or when the same step has to be rewritten for every release. The usual fix is to lift the independent check into a separate test case and keep the original as a short journey. Splitting costs some duplication of setup, but it makes failures cheaper to read, and it lets a team rerun one check after a fix without repeating the whole journey.

Keeping Evidence Useful Across Releases

Results only help a release decision when a reviewer can see what was checked and against which version of the configuration. The testing strategy and release evidence post covers how release evidence can be assembled. Record the version or change identifier with every run, so a passing step can be tied to the code that was under test. Keep failed-run evidence for at least as long as the release it supports, because a defect that reappears often needs the original record state to diagnose. This retention question belongs in the test governance decisions, not in an individual tester’s habits.

What Goes Wrong When Triage Is Skipped

Teams that log every red step as a defect can end up with defect lists full of duplicates and test artifacts. The development team loses trust in the queue, and the real defects wait longer. A simple counter-measure is a triage rule that every failed step is assigned a cause category before it is raised. Steps that keep failing for test-data reasons are a signal to fix the data setup, not to keep reporting the same failure.

The reverse problem also happens. A tester who assumes every failure is a test problem may dismiss a real regression. Treat a failure that reproduces by hand as a probable product issue until proven otherwise, and do not reclassify it on the strength of a hunch.

How to Tell the Step Set Is Healthy

A healthy set of steps produces failures that point at a cause quickly, rarely fails for reasons that were fixed months ago, and can be rerun by a second person with the same result. Look at the failure categories over several runs. If most failures fall into the test-data or stale-expectation groups, the steps need maintenance before the product is tested harder. The thresholds for acceptable noise should be set by the test owner, who knows how much triage time the team can absorb each cycle.

When Manual Exploration Is the Better Choice

A scripted step is poor at finding problems nobody thought to describe. Once a finding repeats, the test suite explainer shows where it belongs in the automated set. Where the purpose is to learn how a new screen behaves, or to see whether a workflow makes sense to a user, a time-boxed exploratory session often finds more than another round of scripted steps. Record what was explored and what was found, and turn any repeatable finding into a step afterwards.

Questions About Writing and Triaging Test Steps

Should a step ever check more than one value?

Only when the values are a single observable unit, such as a row that must show a status and an owner together. Otherwise separate the checks, so the failure names the value that was wrong.

Who decides that a failure is a product defect?

The tester records the evidence and the proposed cause. The product owner or the development lead confirms it. Agreeing that split in advance stops disputes from delaying the queue.

How much setup should a step perform itself?

As little as possible. Setup belongs in a shared fixture or a preceding step, so that a failed check does not also hide a broken setup. Steps that create their own records tend to fail in ways that are hard to tell apart from product faults.

Can an automated step replace a manual one completely?

Rarely. Automation is strongest on repeatable checks. Judgment about how a screen reads to a person is still a manual activity, and treating the two as interchangeable is a common reason automated suites pass while users complain.

If your team is spending more time explaining failed runs than fixing them, the problem is often the step design rather than the tooling.

Frequently asked questions

Should test steps be manual or automated?

Automate tests that are run frequently and whose steps are stable. Automate smoke tests that verify basic functionality after each build. Keep manual tests for complex scenarios or user experience testing. Most teams use both.

How many test steps should a test case have?

Aim for five to fifteen steps per test case. Each step verifies one thing. Too many steps in one case makes it hard to debug failures. Too many small test cases create overhead. Strike a balance that keeps test cases focused but not trivial.

What if a test step fails and subsequent steps cannot run?

Mark subsequent steps as blocked rather than failed. A step that failed early blocks all following steps, so you cannot know if they pass or fail. Blocked steps are reported separately so the team understands why they were not tested.

Talk to Oblytech

Planning, running or fixing a ServiceNow programme? Tell us where you are and we will suggest a sensible next step.

Contact us