Now accepting guest editorial from SAP, Oracle, Workday and ServiceNow practitioners.Pitch a guide
The Sign-Off Table

Lesson 3 of 6

Expected results that prove something

7 min

Listen to this lesson

0:00 / 10:11

An expected result is the line in a test case that turns an activity into a test. Without it, the tester is only operating the system. With a weak one, the tester decides on the spot what "correct" means, and two testers reach two verdicts. A strong expected result is observable, specific and written before execution, so the comparison is mechanical. The test of a good expected result is simple: two testers who have never met should read it, look at the same screen, and record the same verdict. Here is the same step written three ways, weak, better and strong, from Contoso's order-to-cash case using variant A: Great Lakes Fleet Services orders 50 alternators CMC-ALT-100 at a contract price of 240.00 USD each.

StepWeakBetterStrong
Create the sales orderTransaction worksOrder is saved without errorsOrder is saved; item shows 50 PC of the product, net value 12,000.00 USD from the customer price condition; no incompletion log entries; credit status not blocked
Post goods issueGoods issue OKGoods issue postedDelivery goods movement status is complete; stock in plant 1710 drops by 50; journal entry debits cost of goods sold and credits inventory for 7,500.00 USD (50 × 150.00)
Create billing documentInvoice createdBilling document savedBilling document for 12,000.00 USD net plus tax per the tax code in the data set; accounting document created; receivable on the customer; revenue to the account set by account determination with the alternator profit center

The same three steps with weak, better and strong expected results. Values are fictional.

"No errors" and "saved successfully" prove only that the system accepted the input. SAP will happily save an order with the wrong price, the wrong ship-to party or a forgotten item. The strong versions check what the business cares about: values, statuses, follow-on documents and postings. They are longer, but each clause is something the tester can look at and tick, and each one would catch a real class of defect: a missing price condition, an incomplete order, a wrong account, a missing profit center. The layers below are a useful way to decide what to check.

Message"Standard Order has been saved." Shows the save happened, nothing more.
Document contentPartner, product, quantity, price, dates and determined values match the data set.
StatusDelivery, goods movement, billing and accounting statuses show the step is complete or correctly blocked.
Follow-on documentsThe expected successors exist in the document flow, with nothing missing or extra.
Postings and outputsJournal entry accounts, amounts and assignments; output such as the invoice form or EDI message.
Layers of an expected result, from weakest to strongest.
The Sign-Off Table · thesignofftable.com/academy/sap-tst-202

Not every step needs every layer. A message check is still worth keeping where the message itself is the requirement, such as a warning a user must see before releasing a blocked order, but it should never be the only check on a step that creates business value. Intermediate steps often need one or two checks, while the last step of a scenario should confirm the end state: the full document flow and the financial result. Put the heavy checks where the business risk is. Tie each check to the evidence the tester captures: if the expected result names the journal entry, the evidence list should say "display of the journal entry for BILLING_NO", so the reviewer can see the same values the tester compared. The document flow is usually the best single piece of evidence for the end state, because it shows every successor and its status on one screen.

State the rule, not only the number

Values change between cycles: prices are updated, tax rates move, standard costs are re-rolled. If the expected result only says "12,000.00", it breaks the moment the price record changes. Write the rule and keep the computed value in the data sheet: "net value equals quantity times the customer contract price in DS-O2C-01". The tester checks the number; the reviewer can check the rule. This is the expected-result version of separating data from steps. Also name the source of truth where it is not obvious. For a price, it is the condition record or the contract. For an account, it is the account determination in the design document. For a tax amount, it is the tax code and jurisdiction in the data set. If the expected result is "whatever the system shows", it is not an expected result.

CheckNumber only (breaks)Rule plus value (survives)Source of truth
Net value12,000.00Quantity × customer contract price in DS-O2C-01Condition record or contract
Revenue accountAn account number typed in the stepAccount set by account determination for this productAccount determination design
TaxA fixed tax amountTax per the tax code in the data setTax code and jurisdiction in the tax design
Writing the rule and naming its source of truth keeps an expected result valid when prices, accounts or tax rates change.
The Sign-Off Table · thesignofftable.com/academy/sap-tst-202

Negative and blocking results

Some of the most valuable SAP tests expect the system to say no. A customer over its credit limit should block delivery; a supplier invoice above tolerance should be blocked for payment; a user without the right role should not be able to release an order. Write these with the same precision: which message type or status, on which document, and what must not exist afterwards (for example, no delivery for the blocked order). Avoid quoting full message texts word for word, because wording can change with a support pack; name the condition instead ("an error stops the save because the credit limit is exceeded") and record the actual message in the evidence. A negative test that passes for the wrong reason, such as a missing authorization instead of the credit block, is a false pass, so say which reason you expect.

  1. Set up the blocking conditionGreat Lakes Fleet Services over its credit limit
  2. Attempt the actionCreate a delivery for the blocked order
  3. Check the reasonRefused because the credit limit is exceeded, not because of a missing authorization
  4. Check what must not existNo delivery document for the order
  5. Record evidenceActual message and status captured, not quoted in the case
A negative test checks that the system refused for the expected reason and that nothing was created afterwards.
The Sign-Off Table · thesignofftable.com/academy/sap-tst-202

What would you do?

Contoso's goods receipt test for 500 rotors CMC-RTR-200 from Lakeside Components has the expected result "Material document created". The tester passes it. In UAT, finance finds that the receipt posted to the wrong inventory account. Priya asks how to rewrite the expected result. Which version is best?

Key points
  • Strong expected results are observable, specific and written before execution.
  • Success messages prove a save; check document content, status, follow-on documents and postings.
  • Write the rule plus the computed value from the data set, and name the source of truth.
  • Negative tests need the same precision: which block, on which document, and what must not exist.

Check your understanding · not graded

Lesson check

  1. 1. Why is "order saved without errors" a weak expected result?

  2. 2. For a goods issue of 50 units at a standard cost of 150.00 USD, what amount should the cost of goods sold posting show?

  3. 3. Why write the rule behind a value, not only the value?

  4. 4. A credit-limit test expects delivery to be blocked. What else should the expected result state?