Unifi Test Assistant Feature Guide

Follow this guide to learn how to generate and run automated Integration Tests in Unifi.

Welcome

With the introduction of Unifi Test Assistant, you can now generate Integration Tests and perform regression testing at scale. Create, manage and execute tests, view and act on results, and save enormous amounts of time during upgrades and release cycles.

Scope

This document will guide you through the process of generating, running and exploring automated Integration Tests in Unifi. It will demonstrate how straightforward and efficient those tasks can be, saving huge amounts of time when it comes to testing your Integrations.

We will look at testing from the following perspectives.

Generating Tests

Integration Tests are created directly from the Bond record. At the click of a button, Unifi will generate a test which comprises each of the Transaction scenarios on that Bond.

The generated tests are used to check Unifi's processing of the data i.e. to compare whether it is behaving in the same manner and producing the same results when processing the generated test as it did when processing the original records. It checks not only the data itself, but also the Unifi processes that trigger, transport and respond to that data moving through Unifi.

The Unifi Admin [x_snd_eb.admin] role is required to generate Integration Tests.

Running Tests

When running a test, no connection is made to the other system. Instead, Unifi calls a mock web service which responds with results from the original scenario. Unifi then tests what happens with that response. Doing this helps to ensure the accuracy of the test (testing the functionality of the Unifi process in your instance), without relying on input from an external instance (potentially adding further variables to the test).

In the current release, automated testing only supports REST and JSON payloads (not SOAP or XML). Also, we currently do not support automated testing of attachment messages.

Exploring Results

Exploring the results of the Integration Test is intuitive, efficient and informative using Unifi Test Assistant.

Important

Because tests are generated from real-world data in your instance, in order for your tests to work in other instances, the data that you use has to exist in those instances as well (i.e. the data contained on the bonded record e.g. Caller, Assignment group etc.).

If you change your process (e.g. change the structure of data objects being exchanged), you will need to generate new tests.

Packaging Tests

Whenever you package your Integration (for details, see the Packager Feature Guide), any Integration Tests you create will also be included along with the other elements of your packaged Integration.

Process Model

The Unifi Test Assistant Process Model shows how Unifi Test Assistant has been built to work with your integration and platform release process.

Unifi Test Assistant is designed to be used with integrations that are already working. It is not a replacement for unit testing.

A) Once UAT has been completed for the integration, Integration Tests can be generated from the resulting Bonds and imported back into Dev.

B) The Integration Tests can be executed as many times as required to perform regression testing for new platform upgrades, patch releases or for any other reason.

C) Integration Tests are packaged with the Integration and can be executed as part of UAT if required.

D) Integration Tests can be generated in Production to allow new or unforeseen scenarios to be captured and tested against in future release cycles.

Definitions

Unifi Test Assistant

The dedicated portal interface for running and exploring automated Integration Tests.

Integration Test

Integration Test is the overarching record containing all the elements of the automated Integration Test. It correlates to the Bond from which it was created and comprises each of the Transaction scenarios on that Bond.

Test Scenario

Integration Test Scenarios are the elements that make up an Integration Test. Each Scenario will correlate to the relevant Transaction on the Bond from which the test was created. Each contains the relevant Test Scenario Data objects for the particular Scenario.

Test Scenario Data

Test Scenario Data is a JSON representation of all the relevant records created during the processing of a Transaction (e.g. HTTP Request, Transaction, Bond, Snapshot) and is used to both generate the test and ascertain the results of each test run.

Test Results

Whenever you run an Integration Test, the results are captured in an Integration Test Result record. The record links to and contains a summary of each of the individual Test Scenario Results.

Test Scenario Results

Whenever you run an Integration Test Scenario, the results are captured in an Integration Test Scenario Result record. The results of each Test Scenario are tallied and rolled up to the parent Integration Test Result record.

Approach

We will give step-by-step instructions on how to generate, run and explore automated Integration Tests.