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

Lesson 6 of 6

Testing approval scenarios

8 min

Approval tests are some of the most valuable tests in procure-to-pay, and some of the most often done badly. The classic mistake is a tester with a super user who creates a PO, approves it from their own inbox and records "pass." That proves nothing about thresholds, routing or authority. Contoso's approval tests are built around boundaries, real roles and the approval history as evidence.

Boundary values

Thresholds are numbers, so test both sides. For Contoso's $25,000 PO threshold, create POs at $25,000.00 and at $25,000.01 (the rule says "above", so $25,000.00 must not start approval). For the $100,000 threshold, do the same. Also test the condition dimensions you use: a PO in plant 1720 if the conditions are plant-specific, a different document type, a different purchasing group.

PO valueExpected workflowExpected approversEvidence
$25,000.00Default: automatic approvalNoneStatus released at save; output sent
$25,000.01PO 25k to 100kPurchasing managerHistory: one step, approver name and time
$99,999.99PO 25k to 100kPurchasing managerHistory: one step
$100,000.00PO 100k and abovePurchasing manager, then plant controllerHistory: two steps in sequence
Boundary tests for Contoso's PO approval thresholds.
The Sign-Off Table · thesignofftable.com/academy/sap-mm-207

The scenario set

TestWhat it proves
AP-01 to AP-04 thresholdsCorrect definition, steps and approvers at each boundary
AP-05 rejectionRejected PO is not output; buyer sees status and reason
AP-06 rework (if used)PO returns to buyer; workflow continues as configured after resubmission
AP-07 value increase after approvalWorkflow restarts; change output held until re-approval
AP-08 value decrease after approvalPer design: no restart
AP-09 substitutionSubstitute receives and approves; history shows who acted
AP-10 self-approvalBuyer who also holds the approver role cannot approve own PO, or the design gap is recorded
AP-11 recipient not maintainedTeam function empty for plant 1720: behavior is visible and handled, not a silent stall
AP-12 requisition approvalSelf-service request at $999 and $1,000; blocked items cannot be converted
AP-13 classic release (if kept)Document type still on release strategy releases in ME29N with the right code

Contoso's approval test set.

Evidence

The best evidence is the approval history on the document: which workflow definition started, which steps ran, who received each step, who acted, what they did and when. For POs it is visible from the PO in Manage Purchase Orders; for classic release strategies, the release strategy tab shows codes and status. Add the output status (sent or not) to prove that blocking works, and screenshots or exports of the definition order as configured in the tested client.

  1. PrepareTest users: buyer, purchasing manager, plant controller, substitute; teams maintained for 1710 and 1720
  2. CreateBuyer creates PO at the boundary value
  3. RouteCheck the inbox of each expected approver, and that others do not receive it
  4. ActEach approver acts with their own user
  5. VerifyApproval history, PO status, output status
  6. RecordEvidence attached to the test case with tester, client 100, date
Running an approval test with real roles.
The Sign-Off Table · thesignofftable.com/academy/sap-mm-207

Negative routing checks matter as much as positive ones. When a $150,000 PO is approved by the purchasing manager, confirm that the plant controller received step 2, and that a buyer with no approval role never saw the item. Missing team data is a frequent go-live defect: if no one holds "plant controller" for plant 1720, what happens to the PO? The design should define it, and the test should prove it.

Approval tests also need maintenance after go-live. Every change to a threshold, a team assignment or a document type's approval method is a change to a key control, so the affected boundary tests should be rerun and their evidence kept with the change request. Keep the approval test set small and sharp enough that this is realistic: a dozen well-chosen cases that run in an afternoon are worth more than a hundred that nobody repeats.

What would you do?

AP-02 passes in client 100, but Priya notices that all tests were run by one tester logging in as each user in turn, using a shared password list. What should she do?

Key points
  • Test both sides of every threshold and every condition dimension in use.
  • Use real roles or controlled per-role test users; never self-approve as a super user.
  • Evidence: approval history, PO status and output status, plus the configured definition order.
  • Include rejection, restart, substitution, self-approval and missing-recipient cases.

Check your understanding · not graded

Lesson check

  1. 1. Which pair of values tests a $25,000 threshold?

  2. 2. What is the best evidence for an approval test?

  3. 3. Why is a super user approving their own PO a poor test?

  4. 4. What should a value-increase test after approval show?