.. _integration-s3p:

ONAP Maturity Testing Notes
---------------------------

For the El Alto release, ONAP continues to improve in multiple
areas of Scalability, Security, Stability and Performance (S3P)
metrics.



Stability
=========

** TODO **

Integration Stability Testing verifies that the ONAP platform remains fully
functional after running for an extended amounts of time.
This is done by repeated running tests against an ONAP instance for a period of
72 hours.

Methodology
~~~~~~~~~~~

The Stability Test has two main components:

- Running "ete stability72hr" Robot suite periodically.  This test suite
  verifies that ONAP can instantiate vDNS, vFWCL, and VVG.
- Set up vFW Closed Loop to remain running, then check periodically that the
  closed loop functionality is still working.


Results: 100% PASS
~~~~~~~~~~~~~~~~~~
=================== ======== ========== ======== ========= =========
Test Case           Attempts Env Issues Failures Successes Pass Rate
=================== ======== ========== ======== ========= =========
Stability 72 hours  72       34         0        38        100%
vFW Closed Loop     75       7          0        68        100%
**Total**           147      41         0        106       **100%**
=================== ======== ========== ======== ========= =========

Detailed results can be found at https://wiki.onap.org/display/DW/Dublin+Release+Stability+Testing+Status .

.. note::
 - Overall results were good. All of the test failures were due to
   issues with the unstable environment and tooling framework.
 - JIRAs were created for readiness/liveness probe issues found while
   testing under the unstable environment. Patches applied to oom and
   testsuite during the testing helped reduce test failures due to
   environment and tooling framework issues.
 - The vFW Closed Loop test was very stable and self recovered from
   environment issues.


Resilience
==========

Integration Resilience Testing verifies that ONAP can automatically recover
from failures of any of its components.
This is done by deleting the ONAP pods that are involved in each particular Use
Case flow and then checking that the Use Case flow can again be executed
successfully after ONAP recovers.

Methodology
~~~~~~~~~~~
For each Use Case, a list of the ONAP components involved is identified.
The pods of each of those components are systematically deleted one-by-one;
after each pod deletion, we wait for the pods to recover, then execute the Use
Case again to verify successful ONAP platform recovery.


Results: 99.4% PASS
~~~~~~~~~~~~~~~~~~~
=============================== ======== ========== ======== ========= =========
Use Case                        Attempts Env Issues Failures Successes Pass Rate
=============================== ======== ========== ======== ========= =========
VNF Onboarding and Distribution 49       0          0        49        100%
VNF Instantiation               64       19         1        44        97.8%
vFW Closed Loop                 66       0          0        66        100%
**Total**                       179      19         1        159       **99.4%**
=============================== ======== ========== ======== ========= =========

Detailed results can be found at https://wiki.onap.org/display/DW/Dublin+Release+Resilience+Testing+Status .


Deployability
=============

Smaller ONAP container images footprint reduces resource consumption,
time to deploy, time to heal, as well as scale out resources.

Minimizing the footprint of ONAP container images reduces resource
consumption, time to deploy, time and time to heal. It also reduces
the resources needed to scale out and time to scale in. For those
reasons footprint minimization postively impacts the scalability of
the ONAP platform.  Smaller ONAP container images footprint reduces
resource consumption, time to deploy, time to heal, as well as scale
out resources.
