...
During the development process, 4 2 type of tests are executed.
Unit testsĀ
End-to-end testsĀ
Smoke tests
Physical tests
Unit tests
Before any feature or bug fix is merged with the upcoming deployment branch, automated unit tests are executed. These test validate the workings of the feature, and compatibility with all network server components it interacts with.
End-to-end tests
In addition to Unit tests, Before any feature or bug fix is merged with the upcoming deployment branch, automated end-to-end tests are executed to mimic user behaviortest compatibility and regression. End-to-end tests are designed to run through specific user scenarios the feature has been designed for. Tools are used to automate various interactions (e.g. clicking buttons, typing in forms, navigating via links, etc). After every change to The Things Stack, tests are run to validate the successful execution of the new feature or bug fix.
Smoke tests
The Things Industries distinguishes regular end-to-end tests from smoke tests. While regular end-to-end tests are scoped to a specific view or component and tests those in depth, smoke tests are testing mimic user behavior and to simulate different LoRaWAN scenarios. User behavior scenarios contain complete user stories that are critical to the overall integrity of the application and usually comprise multiple components and views (e.g. login flow, user registration or creation of applications). More information on the test processcreating applications, registering gateways, changing device settings etc. The LoRaWAN end-to-end test validate compatibility and test regressions by simulating scenarios such as sending uplinks and downlinks and process join requests.
Physical tests
When the previous end-to-end tests are completed, the new feature can be merged to the upcoming deployment branch. The release cycle starts with deploying The Things Stack, including its newly merged features to the staging environment. Only when staging environment passes all physical tests, a release is planned for the production environment.
...