Testing policy and recommendations
Itential strives to ensure software operates as intended. Multiple automated tests run prior to code merges alongside daily and monthly testing cycles.
This guide provides an overview of the types of testing Itential performs, from unit tests to system and integration testing, and includes recommendations for customers to help keep their deployments stable.
Test coverage
Test coverage for Itential Platform and IAG is executed via daily automated tests — over 4,000 tests across 50 repositories — as well as during the delivery of both maintenance and feature releases, using open-source industry-standard tools.
Types of testing
Itential’s product testing includes:
- Unit testing by developers within their assigned teams, using a combination of light automated testing and manual testing.
- HTTP API testing (automated) using Mocha and Chai against a real Itential Platform server.
- UI and end-to-end (E2E) component testing (automated) using Cypress.
- Python testing with Pytest for IAG and other Python components.
Test releases
There are two types of test releases at Itential:
- Maintenance — Targeted to deliver bug fixes and security patches on the first Wednesday of each month. SDETs begin testing approximately two weeks before delivery.
- Feature — Targeted for delivery of the next version of Itential Platform and IAG. Itential aims for one to two Platform feature releases per year; IAG is released more frequently, typically three to four times per year. SDETs begin testing 30 to 40 days before delivery.
Test recommendations
Itential recommends the following test practices for any customized solution — workflows, JSTs, forms, and so on — that uses Itential Platform or IAG:
- Maintain a dedicated staging lab with real instances of network devices and services, and always test there first.
- Test all components, not just workflows.
- Test JSON forms built for your solution, since they can dynamically pull server-side data. This requires full integration testing of JSON forms in the staging lab.
Automated test recommendations
For automated testing, follow these key practices:
- Use Cypress. While other tools are valid, Cypress is the primary recommendation since Itential uses it for UI testing.
- Use mock adapter data as described in the adapters/mock-data resource.
- Use API testing on your workflows as follows:
startJobto start workflowsgetJobDetailsin a loop until manual tasks are ready to workcompleteJobto proceed with the workflow- Assert on the job exit status or task output.
- Use Cypress E2E testing to assert that other components (JSON Forms, Command Templates, etc.) work correctly.
Post-upgrade recommendations
Always test your software instance after every Platform or IAG upgrade. While Itential runs automated test workflows before each feature or maintenance release, customer workflows inevitably differ from Itential’s test workflows, and it is not possible to fully emulate every customer environment.