blob: ece001f59c6a4ee05f2f398941fb6effc101f8b2 [file] [log] [blame]
mrichomme9643b0c2020-11-14 22:36:57 +01001.. This work is licensed under a
2 Creative Commons Attribution 4.0 International License.
mrichomme7eecfb32020-11-26 15:24:27 +01003.. _integration-tests:
mrichomme9643b0c2020-11-14 22:36:57 +01004
5Tests
6=====
7
8.. important::
Lasse Kaihlavirta2d2888a2020-11-18 16:54:36 +02009 Integration is in charge of several types of tests:
mrichomme9643b0c2020-11-14 22:36:57 +010010
Lasse Kaihlavirta2d2888a2020-11-18 16:54:36 +020011 - Use Cases: developed by use case teams, usually complex, demonstrating high value capabilities of ONAP. They may be partially automated and even
mrichomme9643b0c2020-11-14 22:36:57 +010012 integrated in CD.
13 - CSIT Tests: functional tests created by the projects, partially hosted in CSIT repository
Lasse Kaihlavirta2d2888a2020-11-18 16:54:36 +020014 - Automatic Test Cases: these use cases are usually more simple and aim to validate that ONAP is working properly.
mrichomme9643b0c2020-11-14 22:36:57 +010015 These tests have been developed to validate ONAP as a software solution.
Lasse Kaihlavirta2d2888a2020-11-18 16:54:36 +020016 In theory all the main functions shall be covered by such tests in order to have more robust CI/CD and then avoid regressions.
mrichomme9643b0c2020-11-14 22:36:57 +010017 These tests are usually developed and maintained by the integration team.
18
Lasse Kaihlavirta2d2888a2020-11-18 16:54:36 +020019We may also indicate that when the development of the test framework python-onapsdk
20follows standard development quality rules and imposes the creation of
mrichomme9643b0c2020-11-14 22:36:57 +010021unit/functional/integration tests.
22As an example python-onapsdk requires a unit test coverage of 98% before merging
Lasse Kaihlavirta2d2888a2020-11-18 16:54:36 +020023a new feature, which is far above the project criteria in SonarCloud today.
mrichomme9643b0c2020-11-14 22:36:57 +010024
25Use Cases
26---------
27
mrichommeba4f9712020-11-24 11:43:00 +010028The use cases of the last release are described in
29:ref:`Verified Use cases <docs_usecases_release>`.
30
mrichomme7eecfb32020-11-26 15:24:27 +010031The history of the different use cases across the different releases can be
mrichommeba4f9712020-11-24 11:43:00 +010032found in :ref:`Use Cases page <docs_usecases>`.
mrichomme9643b0c2020-11-14 22:36:57 +010033
34CSIT Tests
35----------
36
37The CSIT tests are functional tests executed by the projects on mocked
Lasse Kaihlavirta2d2888a2020-11-18 16:54:36 +020038environment to validate their components.
mrichomme9643b0c2020-11-14 22:36:57 +010039Historically it was hosted in a CSIT repository.
40
Lasse Kaihlavirta2d2888a2020-11-18 16:54:36 +020041Integration team invited the projects to bring back such tests back to home
mrichomme9643b0c2020-11-14 22:36:57 +010042repository for 2 main reasons:
43
44- integration cannot be a bottleneck: +2/merge from integration needed for each
45 project
Lasse Kaihlavirta2d2888a2020-11-18 16:54:36 +020046- most of the tests are abandoned and not maintained when hosted in a third party
47 repository leading to CI/CD resource waste and misleading test reporting
mrichomme9643b0c2020-11-14 22:36:57 +010048
49In Guilin a PoC to help the project to re-insource their functional tests have
50been initiated.
mrichomme7eecfb32020-11-26 15:24:27 +010051See `CSIT wiki page <https://wiki.onap.org/display/DW/Maximizing+Benefits+of+CSIT+in+ONAP+Development>`_
mrichomme9643b0c2020-11-14 22:36:57 +010052for details.
53
54Automatic Tests
55---------------
56
57These tests are run daily/weekly on each new gate (new patchset in OOM, clamp
58or SO). They can be in any language (bash, go, python,...), leveraging any test
59framework (robotframework, MTS, python-onapsdk).
mrichomme7eecfb32020-11-26 15:24:27 +010060They are all embedded in `xtesting <https://pypi.org/project/xtesting/>`_ dockers.
mrichomme9643b0c2020-11-14 22:36:57 +010061
62.. hint::
63 Automatic tests are currently divided in 4 different categories:
64
Lasse Kaihlavirta2d2888a2020-11-18 16:54:36 +020065 - infrastructure-healthcheck: tests from OOM checking the ONAP namespace, certificates...
mrichomme9643b0c2020-11-14 22:36:57 +010066 - healthcheck: basic tests on components
67 - smoke tests: end to end tests
68 - security tests
69
70A dashboard summarizing the status and providing the links to the test result
71page or the logs is automatically created at the end of the execution of the
72tests.
73
74.. figure:: files/tests/test-dashboard.png
75
76All the pages and artifacts are pushed to LF backend:
77
78- Daily chaines: https://logs.onap.org/onap-integration/daily
79- Weekly chains: https://logs.onap.org/onap-integration/weekly
80- Gating chains: https://logs.onap.org/onap-integration/gating
81
82
83Infrastructure Healthcheck Tests
84................................
85
86.. csv-table:: Infrastructure Healthcheck Tests
87 :file: ./files/csv/tests-infrastructure-healthcheck.csv
88 :widths: 20,40,20,20
89 :delim: ;
90 :header-rows: 1
91
mrichomme7eecfb32020-11-26 15:24:27 +010092See `Infrastructure Healthcheck README <https://git.onap.org/integration/xtesting/tree/infra-healthcheck/README.md>`_
mrichomme9643b0c2020-11-14 22:36:57 +010093to adapt then run infrastructure healthcheck tests on your own system.
94
95Please note that the onap-k8s is run 2 times in CD chains. It is run just after
96the installation (onap-k8s) and at the end of the test execution (onap-k8s-teardown)
97in order to collect the logs of the different components during the test execution.
98
99.. figure:: files/tests/test-onap-k8s.png
100
Lasse Kaihlavirta2d2888a2020-11-18 16:54:36 +0200101Healthcheck Tests
mrichomme7eecfb32020-11-26 15:24:27 +0100102.................
mrichomme9643b0c2020-11-14 22:36:57 +0100103
104.. csv-table:: Healthcheck Tests
105 :file: ./files/csv/tests-healthcheck.csv
106 :widths: 20,40,20,20
107 :delim: ;
108 :header-rows: 1
109
mrichomme7eecfb32020-11-26 15:24:27 +0100110See `Healthcheck README <https://git.onap.org/integration/xtesting/tree/healthcheck/README.md>`_
mrichomme9643b0c2020-11-14 22:36:57 +0100111to adapt then run healthcheck tests on your own system.
112
113Smoke Tests
114...........
115
116.. csv-table:: Smoke Tests
117 :file: ./files/csv/tests-smoke.csv
118 :widths: 20,40,20,20
119 :delim: ;
120 :header-rows: 1
121
mrichomme7eecfb32020-11-26 15:24:27 +0100122See `Python smoke test README <https://git.onap.org/integration/xtesting/tree/smoke-usecases-robot/README.md>`_
mrichomme9643b0c2020-11-14 22:36:57 +0100123to adapt and run robot based smoke tests.
124An html page is generated by the pythonsdk-test tests.
125
126.. figure:: files/tests/test-basic-cnf.png
127
128
mrichomme7eecfb32020-11-26 15:24:27 +0100129See `Robot smoke test README <https://git.onap.org/integration/xtesting/tree/smoke-usecases-pythonsdk/README.md>`_
130to adapt and run python-onapsdk based smoke tests.
mrichomme9643b0c2020-11-14 22:36:57 +0100131Standard Robot html pages are generated. See :ref:`Robot page <docs_robot>`.
132
133Security Tests
134...............
135
136.. csv-table:: Security Tests
137 :file: ./files/csv/tests-security.csv
138 :widths: 20,40,20,20
139 :delim: ;
140 :header-rows: 1
141
mrichomme7eecfb32020-11-26 15:24:27 +0100142See `Security test README <https://git.onap.org/integration/xtesting/tree/security/README.md>`_
mrichomme9643b0c2020-11-14 22:36:57 +0100143to adapt then run the security tests on your own system.
144
145Note for security tests, integration team follows `SECCOM recommendations and
mrichomme7eecfb32020-11-26 15:24:27 +0100146apply waivers granted by SECCOM if needed through xfail lists <https://git.onap.org/integration/seccom/tree/>`_.
mrichomme9643b0c2020-11-14 22:36:57 +0100147
148Stability Testing
149-----------------
150
151Ensuring the stability of ONAP is one of the missions of the Integration team.
152CI chains and stability tests are performed to help stabilising the release.
153See :ref:`Integration stability tests <integration-s3p>` for details.