Ensuring adherence to protocol standards is essential for the creation of interoperable systems. To aid in this task, Ubilogix has developed a Test Harness solution capable of validating a wide variety of protocol implementations.
In short, the Ubilogix Test Harness consists of a test execution platform developed in Node.js and a browser-based User Interface. The solution is highly modular and extensible, and includes features that allow for versioning test scripts as well as results. Furthermore, its API allows for integration with a variety of Continuous Integration products.
The Test Harness engine is implemented in Node.js, allowing for deployment across a wide array of host platforms, including Windows, Mac OS, and Linux (including embedded).
The engine exposes a set of “test primitives” which are used to implement test items. These scripts are then configured and grouped into builds by the end-user, who may execute said builds either via the UI or the API.
The Test Harness REST API allows for programatically starting and managing test suite executions. Events and final results are reported to a configurable destination via webhooks, enabling the automation of complex test scenarios—even those requiring out-of-band actions.
A Device Under Test (DUT) is equipped with a structured representation of supported features, which in turn makes a set of applicable tests available to the user.
The end-user may compile DUTs and applicable test items into builds, enabling both targeted validations and widespread coverage control.
On executing a test build, the event log and results are stored in chronological order, and may either be reviewed via the UI or exported in JSON, allowing for custom post-processing.
As a test build is run, the UI is updated in real-time as events transpire.
The same detail-rich interface is used for reviewing prior runs, whether local or exported.
Within a test script, interactions and validations are grouped into logical units called test items. As a build is run, the enabled items are executevaluated in order, generating detailed logs and obtaining pass / fail verdicts.
In addition to interacting directly with the DUT, test items may define custom out-of-band actions, enabling flows which might otherwise not be automatable.