..
   SPDX-FileCopyrightText: © 2021 Open Networking Foundation <support@opennetworking.org>
   SPDX-License-Identifier: Apache-2.0

About
=====

The goal and objective of Aether test automation is to build a framework that
provides highly scalable and low maintenance code which will help cover various
categories of tests.  Framework includes libraries and tools that allows both
component level and integration level tests. Robot Framework will be used for
covering integration tests. Component level test coverage have been
accomplished by leveraging the existing test frameworks that were developed in
their respective projects. Component level tests include tests for TOST, PDP,
SD-CORE areas. For detailed information on component tests, please see their
respective documentation pages.

Test Frameworks
---------------

The following diagram outlines each Aether core component, followed by an online
of the test frameworks used:

.. image:: images/aether-overview-diagram.png
  :width: 840
  :height: 540
  :alt: Aether Overview Diagram

.. list-table:: Test Frameworks
  :widths: 5 3
  :header-rows: 1

  * - Aether Core Component
    - Test Framework
  * - SD-Core
    - `NG40/NG4T <https://www.ng4t.com/>`_
  * - SD-Fabric
    - `TestON <https://github.com/opennetworkinglab/OnosSystemTest/tree/master/TestON>`_
  * - PDP
    - `TestVectors <https://github.com/stratum/testvectors>`_
  * - SD-RAN
    - `Robot Framework <https://robotframework.org/>`_

Test Automation
---------------

`Jenkins <https://www.jenkins.io/>`_ is the primary automation server that is
used to help trigger our automated tests. All Aether Jenkins jobs are
created and run on the Aether Jenkins instance.
