Skip to content

Latest commit

History

History
81 lines (51 loc) 路 4.07 KB

TESTING.md

File metadata and controls

81 lines (51 loc) 路 4.07 KB

Testing Tracetest

On Tracetest, we work in two ways to test the entire system and guarantee that everything is working fine. One is through automatic tests, where we run unit, integration and end-to-end tests on Tracetest CLI, Web UI and Server.

Another source of tests is the manual tests that we execute on each release, simulating users, and checking if everything is ok on these tests.

Manual Tests

On our manual tests, we aim to do some sanity checks to see if the main features are working as expected. Usually, we run it on each Tracetest release.

Testing Tracetest setup

This is a simple test to check if Tracetest is working correctly given it was provisioned with one Tracing Data Store.

The steps that we should follow are:

  • Open WebUI and go to /settings page. The provisioned Data Store should be selected.
  • Run tracetest export datastore --id current and check if the data was exported correctly.
  • Create a test on WebUI that calls a demo API (like Pokeshop or Open Telemetry Store). This test should fetch traces correctly and run without errors.

Checklist on version release

This is the entire checklist on what we should do to assert that Tracetest is working fine on each version release. On each version release, we can copy the contents of this checklist and open a Github Discussion to start each test.

Tests to validate RC

Automatic Tests

Today Tracetest has 3 main components: a WebUI, a CLI and a Server.

Web UI

  • Unit tests: Run by executing npm test on ./web folder
  • End-to-end tests: Run using cypress against a temporary Tracetest created on Kubernetes.

CLI

  • Unit tests: Run by executing make test on ./cli folder

Server

  • Unit tests: Run by executing make test on ./server folder
  • Integration tests: Run along with some unit tests running make test on ./server folder, but also done in a matrix test on Github actions, by executing the test-examples action.
  • End-to-end tests: Run using Tracetest to test itself. We deploy two instances of Tracetest and use one to test API calls to another on Github actions, by executing the trace-testing action.