Presentation is loading. Please wait.

Presentation is loading. Please wait.

Created by Jan Medved www.opendaylight.org Integration & Test Strategy for Lithium.

Similar presentations


Presentation on theme: "Created by Jan Medved www.opendaylight.org Integration & Test Strategy for Lithium."— Presentation transcript:

1 Created by Jan Medved www.opendaylight.org Integration & Test Strategy for Lithium

2 Created by Jan Medved www.opendaylight.org  OpenDaylight is made of multiple projects -> we have to test them individually and together  Projects are quite heterogeneous: core, tools, plugins, apps, etc… -> they have different test needs  OpenDaylight has a common CI process for all projects -> tests should in general be part of the CI  We leave users freedom to select features -> we need an strategy to test a non-rigid distribution Facts 2

3 Created by Jan Medved www.opendaylight.org  Forget about verifying projects, focus on features  Test single feature enabled to identify issues in a feature itself  Test all features enabled to identify feature interferences  For a given project, tests are called after:  A change (merge) in an upstream project. This triggers build and system test  A change in the project itself. We miss system test on code submit  Be selective with the tests we run  A change in a “stem” project will trigger test on many features  A change in a “leaf” project will trigger test on few concerned features High Level Strategy 3

4 Created by Jan Medved www.opendaylight.org We define 2 integration features for test purposes:  compatible-with-all -> useful for all features system test  all = compatible-with-all + incompatible features -> useful to detect feature/bundle interferences We generate 2 distributions (no feature enabled at startup):  Regular distribution with all projects feature indexes (except integration)  Test distribution = Regular distribution + integration feature index Distribution Assembly 4

5 Created by Jan Medved www.opendaylight.org Build test occurs during project code build. Examples are Junit, PAX-EXAM or Karaf feature install test Every project in OpenDaylight defines 3 build jobs:  Verify -> This job builds the project code and pass build tests upon code submit  Merge -> This job builds the project code and pass build tests upon code merge. In addition it will upload generated artifacts to Nexus repository.  Integration -> This job will build the project code and pass build tests after a merge in an upstream project Build Test 5

6 Created by Jan Medved www.opendaylight.org System test requires a framework that installs controller and executes tests against network tools. Example is the Robot test. For every project user-facing feature we will create 2 system test jobs:  feature-only test -> Install single feature with required dependencies and run feature planned test  feature-all test  If feature is compatible -> Install odl-integration-compatible- with-all and run feature planned test  If feature is not compatible -> Install odl-integration- compatible-with-all + incompatible feature and run feature planned test System Test 6

7 Created by Jan Medved www.opendaylight.org Test Triggers 7 Code Merge Release creation Merge build feature-only test feature-all test feature-only test feature-all test For all available features For all features in downstream Code Submit Verify build *Optional (requires project distribution or some automation to update project artifact) Integration build For all projects in downstream feature-only test*


Download ppt "Created by Jan Medved www.opendaylight.org Integration & Test Strategy for Lithium."

Similar presentations


Ads by Google