Process Shield

Automate end-to-end testing of your processes

With Process Shield, part of TestShield, you can be sure your Dataverse and Dynamics 365 processes (workflows, plugins, and Power Automate flows) execute and behave as you expect. A process can span multiple entities and systems, and the test covers business logic that runs in real time or as part of a long-running background process.

North52 Process Shield

Assemble. Arrange. Act. Assert.®

Setting up a Process Shield test follows the same four A’s pattern as every TestShield test.

  1. 1

    Assemble

    Describes the functionality of the process that you are testing.

  2. 2

    Arrange

    Define test data for multiple records across multiple entities.

  3. 3

    Act

    Define the parts of the process that would normally need a manual trigger, such as an on-demand workflow or flow.

  4. 4

    Assert

    Define the expected results for any of the records created as part of your test.

Process Shield tests run manually, as part of an automated Test Runner schedule, or from Azure DevOps.

A worked example

Eligibility for a Platinum credit card

A decision table grades annual income into four bands and total assets into three, and sets a minimum credit score for each combination. The test builds a contact for every row, triggers the process, and checks the card type each contact ends up with. Small enough to read in one sitting: the same four steps carry a process that spans several entities and finishes hours later.

Assemble

The scenario in Gherkin, readable by anyone on the team.

A TestShield test in Power Apps titled Contact Eligibility, Platinum Card Eligibility. The Assemble sheet holds a Gherkin scenario: a feature line, a scenario describing a twelve-row decision table grading annual income into four bands and total assets into three, then Given a contact with income, assets and a credit score whose card type is Not Eligible, When the contact is created and the eligibility formula runs, Then the card type should be set to Platinum when the score exceeds the threshold for that band and remain Not Eligible when it only equals or falls below it.

The scenario in Gherkin, readable by anyone on the team.

Arrange

One contact per decision-table row, built as test data.

The Arrange sheet of the same test: eighteen Action-Create rows, each building a contact with a last name, an annual income from 50,000 to 250,000, total assets from 100,000 to 2,000,000, a credit score from 600 to 751, and a credit card type of Not Eligible.

One contact per decision-table row, built as test data.

Act

The step the test triggers itself, here a Power Automate flow.

The Act sheet of the same test: a single Perform Action row named ExecuteFlow, calling ExecuteMSFlowRequest with a URL pulled from xCache and a JSON body built inline. The function browser beside it lists the platform operations available, with ExecuteMSFlowRequest selected.

The step the test triggers itself, here a Power Automate flow.

Assert

Expected against actual, per row. This run has three failures named for investigation: exactly what the test is there to catch.

The Assert sheet of the same test, checking the credit card type on each arranged contact, beside a test run result tree reading 33 passed and 3 failed. One failing row is expanded to show the assert type, the expected value and the actual value it got instead.

Expected against actual, per row. This run has three failures named for investigation: exactly what the test is there to catch.

See Process Shield on your own processes.