A few quick tips to get started contributing to OnosSystemTest:

1) Subscribe to the Testing mailing list <onos-test@onosproject.org>. All mailing lists can be found here.

2) Sign up for an account on onosproject.org so as to be able to commit test codes to gerrit.onosproject.org.

3) If you are not familiar with Gerrit workflow, check out this tutorial: Gerrit Workflow for System Test Development.

4) Learn about the TestON Framework for authoring test cases here: OnosSystemTest/TestON Tutorial

Fundamentals on authoring a test case

Because we are targeting all tests to be automated in a Continuous Integration (CI) environment, there are several fundamental principles that we adhere to when writing test cases and driver files:

  1. Portability - allow the test case to be run in other similar test environments, as well as merging community contributed tests into our production environment.
  2. Stability - the test must handle various environment (e.g. response time of starting ONOS on VMs vs. on Bare Metals); test case must have stability in passing or failing results;
  3. Clarity - strive to make Python cases simple to comprehend;
  4. Debugging - use logging capabilities liberally to catch all cases of exceptions, and to ensure test failures don't go silently.

In order to achieve these objectives, it is essential to have a good understanding of the Jenkins - TestON interactions and abstractions in running a test case. The following diagram illustrates the interaction and abstraction of TestON and Jenkins.

 

TestON Scripting General Guidelines: