The Goal
Imagine you are updating a RESTlet. The RESTlet is responsible for creating item fulfillments. You want to test that your update works. What do you do? You probably:- Create a sales order in a Pending Fulfillment status
- Call the RESTlet with a specific payload
- Examine the sales order status to ensure it has moved to Pending Billing. You maybe even open the related item fulfillment and ensure the correct location is set. And if it has a Pending Billing status (and correct fulfillment location), then you conclude that your code worked and “passed your test”.
Core Architecture
- Step
- Setup
- Execute
- Evaluate
- Test
- Run
- Group Run

Steps
Steps are the most complex part of Assurance and where you will spend the most of your time. To make them easier, we built a Step Builder app to make it easier to use. The important thing to know is that steps come in 3 flavors: Setup, Execute, and Evaluate. These map onto the 3 classic steps of software testing: Arrange, Act, and Assert. In the example above, Step #1 is a Setup step because the developer is creating data. Step #2 is an Execute step because the developer is calling a script, in this case their RESTlet. And Step #3 is an Evaluate step because the developer is checking the results of their RESTlet. The Evaluate step is where a test passes or fails. If every field matches the expected value, the test passes. If any field does not match, the test fails. Below is a screenshot of Step #2 in Step Builder.
Test Runner
Behind the scenes, when you call a test (or group of tests), a map/reduce is triggered that does all of the work. Therefore, to run a test you can:- Call the map/reduce directly (ad-hoc or scheduled). Use script parameters to define which test(s) to return.
- Click the “Run” button on a test (or on a tag - more on them later) which will call the map/reduce for you.
- Call a pre-built endpoint to run this via API call, such as from the terminal or GitHub action - see “Operationalize Your Tests - Running Your Tests” for details.
