The overall test strategy can be described as minimalistic, rather than extensive. The goal of the tests is to verify that the application is deployed properly, so we will verify the main application features.
Decide the testing scope carefully, keeping in mind the maintainability of the tests and the value they provide. The tests described here are deployment tests since their goal is to verify that the software is correctly deployed with all the inherent features. Both functional and non-functional characteristics are evaluated in these tests, focusing on the installation aspect.
Before writing any test scenario, understand the primary purpose of the chart. Take a look at the documentation about the chart under test as well as the docker image documentation. This will give you a solid base for creating valuable test scenarios.
The current test system supports a set of tools that are listed below. Test execution is done on temporary environments which are deployed and destroyed on the fly. In order to trigger the test execution in these test environments, internal approval is needed. Keeping in mind the acceptance criteria as well as the best practices for test automation using the supported tool will help you get your PR approved.
This part is of the most interest for the contributor. This is where the test design, test execution and test maintenance efforts will be focused.
If your asset has a user interface, you will need to include the following tests:
Static analysis is included for all assets as a part of the pipeline. Since this analysis is generic, it is defined internally and added as an action to the existing the pipeline. There is no need for additional work on the contributor side related to this. The following types of static analysis are supported:
NOTE: Cypress and Goss tests need to be tailored per application under test.
In order for your test code PR to be accepted the following criteria must be fulfilled.
wordpress_spec.js
)describe()
blocks for Cypress testit('checks if admin can edit a site', ()
)