Feature to know the time it takes to update OVS
[functest.git] / docs / userguide / introduction.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. http://creativecommons.org/licenses/by/4.0
3
4 Overview of the Functest suites
5 ===============================
6
7 Functest is the OPNFV project primarily targeting function testing.
8 In the Continuous Integration pipeline, it is launched after an OPNFV fresh
9 installation to validate and verify the basic functions of the
10 infrastructure.
11
12 The current list of test suites can be distributed over 4 main domains: VIM
13 (Virtualised Infrastructure Manager), Controllers (i.e. SDN Controllers),
14 Features and VNF (Virtual Network Functions).
15
16 +-------------+---------------+----------------+----------------------------------+
17 | Domain      | Tier          | Test case      | Comments                         |
18 +=============+===============+================+==================================+
19 | VIM         | healthcheck   | healthcheck    | Verify basic operation in VIM    |
20 |             +---------------+----------------+----------------------------------+
21 |             | smoke         | vPing_SSH      | NFV "Hello World" using an SSH   |
22 |             |               |                | connection to a destination VM   |
23 |             |               |                | over a created floating IP       |
24 |             |               |                | address on the SUT Public /      |
25 |             |               |                | External network. Using the SSH  |
26 |             |               |                | connection a test script is then |
27 |             |               |                | copied to the destination        |
28 |             |               |                | VM and then executed via SSH.    |
29 |             |               |                | The script will ping another     |
30 |             |               |                | VM on a specified IP address over|
31 |             |               |                | the SUT Private Tenant network.  |
32 |             |               +----------------+----------------------------------+
33 |             |               | vPing_userdata | Uses Ping with given userdata    |
34 |             |               |                | to test intra-VM connectivity    |
35 |             |               |                | over the SUT Private Tenant      |
36 |             |               |                | network. The correct operation   |
37 |             |               |                | of the NOVA Metadata service is  |
38 |             |               |                | also verified in this test.      |
39 |             |               +----------------+----------------------------------+
40 |             |               | tempest_smoke  | Generate and run a relevant      |
41 |             |               | \_serial       | Tempest Test Suite in smoke mode.|
42 |             |               |                | The generated test set is        |
43 |             |               |                | dependent on the OpenStack       |
44 |             |               |                | deployment environment.          |
45 |             |               +----------------+----------------------------------+
46 |             |               | rally_sanity   | Run a subset of the OpenStack    |
47 |             |               |                | Rally Test Suite in smoke mode   |
48 |             +---------------+----------------+----------------------------------+
49 |             | openstack     | tempest_full   | Generate and run a full set of   |
50 |             |               | \_parallel     | the OpenStack Tempest Test Suite.|
51 |             |               |                | See the OpenStack reference test |
52 |             |               |                | suite `[2]`_. The generated      |
53 |             |               |                | test set is dependent on the     |
54 |             |               |                | OpenStack deployment environment.|
55 |             |               +----------------+----------------------------------+
56 |             |               | rally_full     | Run the OpenStack testing tool   |
57 |             |               |                | benchmarking OpenStack modules   |
58 |             |               |                | See the Rally documents `[3]`_.  |
59 +-------------+---------------+----------------+----------------------------------+
60 | Controllers | sdn_suites    | odl            | Opendaylight Test suite          |
61 |             |               |                | Limited test suite to check the  |
62 |             |               |                | basic neutron (Layer 2)          |
63 |             |               |                | operations mainly based on       |
64 |             |               |                | upstream testcases. See below    |
65 |             |               |                | for details                      |
66 |             |               +----------------+----------------------------------+
67 |             |               | onos           | Test suite of ONOS L2 and L3     |
68 |             |               |                | functions.                       |
69 |             |               |                | See `ONOSFW User Guide`_  for    |
70 |             |               |                | details.                         |
71 +-------------+---------------+----------------+----------------------------------+
72 | Features    | features      | Promise        | Resource reservation and         |
73 |             |               |                | management project to identify   |
74 |             |               |                | NFV related requirements and     |
75 |             |               |                | realize resource reservation for |
76 |             |               |                | future usage by capacity         |
77 |             |               |                | management of resource pools     |
78 |             |               |                | regarding compute, network and   |
79 |             |               |                | storage.                         |
80 |             |               |                | See `Promise User Guide`_ for    |
81 |             |               |                | details.                         |
82 |             |               +----------------+----------------------------------+
83 |             |               | Doctor         | Doctor platform, as of Colorado  |
84 |             |               |                | release, provides the three      |
85 |             |               |                | features:                        |
86 |             |               |                | * Immediate Notification         |
87 |             |               |                | * Consistent resource state      |
88 |             |               |                | awareness for compute host down  |
89 |             |               |                | * Valid compute host status      |
90 |             |               |                | given to VM owner                |
91 |             |               |                | See `Doctor User Guide`_ for     |
92 |             |               |                | details                          |
93 |             |               +----------------+----------------------------------+
94 |             |               | bgpvpn         | Implementation of the OpenStack  |
95 |             |               |                | bgpvpn API from the SDNVPN       |
96 |             |               |                | feature project. It allows for   |
97 |             |               |                | the creation of BGP VPNs.        |
98 |             |               |                | See `SDNVPN User Guide`_ for     |
99 |             |               |                | details                          |
100 |             |               +----------------+----------------------------------+
101 |             |               | security_scan  | Implementation of a simple       |
102 |             |               |                | security scan. (Currently        |
103 |             |               |                | available only for the Apex      |
104 |             |               |                | installer environment)           |
105 |             |               +----------------+----------------------------------+
106 |             |               | onos-sfc       | SFC testing for onos scenarios   |
107 |             |               |                | See `ONOSFW User Guide`_ for     |
108 |             |               |                | details                          |
109 |             |               +----------------+----------------------------------+
110 |             |               | odl-sfc        | SFC testing for odl scenarios    |
111 |             |               |                | See `SFC User Guide`_ for details|
112 |             |               +----------------+----------------------------------+
113 |             |               | domino         | Domino provides TOSCA template   |
114 |             |               |                | distribution service for network |
115 |             |               |                | service and VNF descriptors      |
116 |             |               |                | among MANO components e.g.,      |
117 |             |               |                | NFVO, VNFM, VIM, SDN-C, etc.,    |
118 |             |               |                | as well as OSS/BSS functions.    |
119 |             |               |                | See `Domino User Guide`_ for     |
120 |             |               |                | details                          |
121 |             |               +----------------+----------------------------------+
122 |             |               | Copper         | Copper develops OPNFV platform   |
123 |             |               |                | support for policy management,   |
124 |             |               |                | using open source projects such  |
125 |             |               |                | as OpenStack Congress, focused   |
126 |             |               |                | on helping ensure that virtual   |
127 |             |               |                | infrastructure and the apps that |
128 |             |               |                | execute on it comply with the    |
129 |             |               |                | configuration policy intent of   |
130 |             |               |                | service providers, developers,   |
131 |             |               |                | and end users. See more detail   |
132 |             |               |                | in the `Copper User Guide`_.     |
133 |             |               +----------------+----------------------------------+
134 |             |               | multisites     | Multisites                       |
135 |             |               |                | See `Multisite User Guide`_ for  |
136 |             |               |                | details                          |
137 |             |               +----------------+----------------------------------+
138 |             |               | moon           | Security management system       |
139 |             |               |                | See `Moon User Guide`_ for       |
140 |             |               |                | details                          |
141 +-------------+---------------+----------------+----------------------------------+
142 | VNF         | vnf           | vims           | Example of a real VNF deployment |
143 |             |               |                | to show the NFV capabilities of  |
144 |             |               |                | the platform. The IP Multimedia  |
145 |             |               |                | Subsytem is a typical Telco test |
146 |             |               |                | case, referenced by ETSI.        |
147 |             |               |                | It provides a fully functional   |
148 |             |               |                | VoIP System                      |
149 +             +---------------+----------------+----------------------------------+
150 |             |               | parser         | Parser is an integration project |
151 |             |               |                | which aims to provide            |
152 |             |               |                | placement/deployment templates   |
153 |             |               |                | translation for OPNFV platform,  |
154 |             |               |                | including TOSCA -> HOT, POLICY ->|
155 |             |               |                | TOSCA and YANG -> TOSCA.         |
156 |             |               |                | See `Parser User Guide`_ for     |
157 |             |               |                | details                          |
158 +-------------+---------------+----------------+----------------------------------+
159
160
161 As shown in the above table, Functest is structured into different 'domains',
162 'tiers' and 'test cases'. Each 'test case' usually represents an actual
163 'Test Suite' comprised -in turn- of several test cases internally.
164
165 Test cases also have an implicit execution order. For example, if the early
166 'healthcheck' Tier testcase fails, or if there are any failures in the 'smoke'
167 Tier testcases, there is little point to launch a full testcase execution round.
168
169 An overview of the Functest Structural Concept is depicted graphically below:
170
171 .. figure:: ../images/concepts_mapping_final.png
172    :align: center
173    :alt: Functest Concepts Structure
174
175 Some of the test cases are developed by Functest team members, whereas others
176 are integrated from upstream communities or other OPNFV projects. For example,
177 `Tempest <http://docs.openstack.org/developer/tempest/overview.html>`_ is the
178 OpenStack integration test suite and Functest is in charge of the selection,
179 integration and automation of those tests that fit suitably to OPNFV.
180
181 The Tempest test suite is the default OpenStack smoke test suite but no new test
182 cases have been created in OPNFV Functest.
183
184 The results produced by the tests run from CI are pushed and collected into a
185 NoSQL database. The goal is to populate the database with results from different
186 sources and scenarios and to show them on a `Functest Dashboard`_. A screenshot
187 of a live Functest Dashboard is shown below:
188
189 .. figure:: ../images/FunctestDashboardColorado.png
190    :align: center
191    :alt: Functest Dashboard
192
193
194 There is no real notion of Test domain or Test coverage. Basic components
195 (VIM, SDN controllers) are tested through their own suites. Feature projects
196 also provide their own test suites with different ways of running their tests.
197
198 vIMS test case was integrated to demonstrate the capability to deploy a
199 relatively complex NFV scenario on top of the OPNFV infrastructure.
200
201 Functest considers OPNFV as a black box. As of Colorado release the OPNFV
202 offers a lot of potential combinations:
203
204   * 3 controllers (OpenDaylight, ONOS, OpenContrail)
205   * 4 installers (Apex, Compass, Fuel, Joid)
206
207 Most of the tests are runnable by any combination, but some tests might have
208 restrictions imposed by the utilized installers or due to the available
209 deployed features. The system uses the environment variables (INSTALLER_IP and
210 DEPLOY_SCENARIO) to automatically determine the valid test cases, for each given
211 environment.
212
213 In the Colorado OPNFV System release a convenience Functest CLI utility is also
214 introduced to simplify setting up the Functest evironment, management of the
215 OpenStack environment (e.g. resource clean-up) and for executing tests.
216 The Functest CLI organised the testcase into logical Tiers, which contain in
217 turn one or more testcases. The CLI allows execution of a single specified
218 testcase, all test cases in a specified Tier, or the special case of execution
219 of **ALL** testcases. The Functest CLI is introduced in more detail in the
220 section `Executing the functest suites`_ of this document.
221
222 .. _`[2]`: http://docs.openstack.org/developer/tempest/overview.html
223 .. _`[3]`: https://rally.readthedocs.org/en/latest/index.html
224 .. _`Copper User Guide`: http://artifacts.opnfv.org/copper/colorado/docs/userguide/index.html
225 .. _`Doctor User Guide`: http://artifacts.opnfv.org/doctor/colorado/userguide/index.html
226 .. _`Promise User Guide`: http://artifacts.opnfv.org/promise/colorado/docs/userguide/index.html
227 .. _`ONOSFW User Guide`: http://artifacts.opnfv.org/onosfw/colorado/userguide/index.html
228 .. _`SDNVPN User Guide`: http://artifacts.opnfv.org/sdnvpn/colorado/docs/userguide/index.html
229 .. _`Domino User Guide`: http://artifacts.opnfv.org/domino/docs/userguide-single/index.html
230 .. _`Parser User Guide`: http://artifacts.opnfv.org/parser/colorado/docs/userguide/index.html
231 .. _`Functest Dashboard`: http://testresults.opnfv.org/kibana_dashboards/
232 .. _`SFC User Guide`: http://artifacts.opnfv.org/sfc/colorado/userguide/index.html
233 .. _`Multisite User Guide`: http://artifacts.opnfv.org/multisite/docs/userguide/index.html
234 .. _`Moon User Guide`: http://artifacts.opnfv.org/moon/docs/userguide/index.html