Project Name:
- Proposed name for the project:
Integration
- Proposed name for the repository:
integration
Project description:
Scope:
It provides all the cross-project infrastructure framework and DevOps toolchain (Continuous Integration, etc.), code and scripts, best practice guidance, benchmark and testing reports and white papers related to:
- Cross-project Continuous System Integration Testing (CSIT)
- End-to-End (ETE) release use cases testing with VNFs with repeatability
- Service design for end-to-end release use cases
- (obsolete)Open Lab: building and maintenance of community integration labs
- Continuous Distribution (CD) to ONAP community integration labs
- Reference VNFs that can be used to show how the ONAP platform handles
- VNF installation and
- VNF life cycle management
- VNF Requirement compliance
Category | Primary Contact / Participants | Sub-Category | Description | Problem Being Solved | |
---|---|---|---|---|---|
1 | Test | Test |
|
| |
S3P |
|
| |||
2 | Release | CI Management (ci-management repo) | Scripts and definitions for build and CI jobs in Jenkins
|
| |
Autorelease |
|
| |||
Distribution (Refer to ONAP Operations Manager project) |
| N/A | |||
Packaging (Refer to ONAP Operations Manager project) |
| N/A | |||
3 | Bootstrap | Bootstrap |
|
| |
Infrastructure Specification | Develop the specifications for the “ONAP compliant” deployment and test environment | Assist the planning and procurement of the necessary hardware and infrastructure for setting up ONAP environments | |||
4 | Developer Lab | Yang Xu | End-to-end release use cases testing with VNFs with repeatability |
|
|
5 | E2E Integration Lab | End to end deployment in "real" env using Open Lab |
|
| |
6 | Reference VNFs Project | Reference VNFs Project (now part of Integration project) | Two basic VNFs, namely a virtual firewall and a virtual load balancer (with virtual DNSs), have been provided. The objectives of the project are to improve, extend and maintain the vFirewall and vLoadBalancer VNFs:
|
| |
7 | O-Parent | O-Parent |
|
|
Testing Principles
We expect test automation for all testing in scope for release 1.0
Regression, Unit and Feature/Function testing should be triggered by built process
All testing must be able to execute on the selected ONAP environments
Unit Testing for any project should have at least 30% code coverage
Any new feature should be delivered with its associated unit tests/feature tests
Jenkins Testing Flow
Testing Roles and Responsibilities
Types of Testing | Dev. Team | CSIT Team | E2E Team | S3P Team |
---|---|---|---|---|
Unit Testing | x | |||
Feature/Functional Testing | x | |||
Integration/Pair-Wise Testing | x | |||
End-to-End Testing | x | |||
Regression Testing | x | x | x | x |
Performance Testing | x | |||
Acceptance Testing | x | x | ||
Usability Testing | x | |||
Install/Uninstall Testing | x | |||
Recovering Testing | x | x | ||
Security Testing | x | |||
Stability Testing | x | |||
Scalability Testing | x | |||
Application Testing | x |
Testing Terminology
- Unit Testing (UT) – Unit testing focuses on individual software components or modules. Typically, UT is done by the programmers and not by testers, as it requires detailed knowledge of the internal program design and code; UT may require developing test driver modules or test harnesses. Code coverage is also one of the objectives of UT.
- Feature/Functional Testing – Feature/Functional testing, unlike unit testing, focuses on the output as defined per requirement (user story). This type of testing is black-box type testing, geared towards functional requirements on an application basis.
- Integration/Pair-Wise Testing – Integration/Pair-wise testing integrates all of the modules of the solution in a single environment to verify combined functionality after integration. It ensures everything comes together and there is end-to-end communications between all the integrated elements.
- End-to-End Testing – End-to-End testing involves testing of a complete application environment in scenarios that closely mimic real-world use, such as interacting with a database, using network communications, or interacting with other hardware, applications, or systems, if appropriate..
- Regression Testing – Testing the application as a whole for the modification in any module or functionality. Typically, automation tools are used for regression testing since it is difficult to cover all aspects of the system in a manual fashion.
- Performance Testing – Performance testing tests the solution to see what throughput levels can be achieved based on the given platform. Performance testing term is often used interchangeably with ‘stress’ testing (pushes the system beyond its specifications to check how and when it fails) and ‘load’ testing (which checks the system behavior under steady load.). An objective of this testing is to verify that the system meets performance requirements. Different performance and load tools are used for this type of testing. [Note: Capacity testing and performance testing are closely aligned. Capacity testing tests against product requirements to ensure the system meets requirements. Performance testing pushes the system to highest numbers it can achieve before it becomes unstable or success rate is unacceptable.]
- Acceptance Testing – Normally this type of testing is done to verify if system meets the customer specified requirements. User or customer do this testing to determine whether to accept application.
- Usability Testing – Usability testing is focused on testing of user interfaces (UI’s). It checks user-friendliness along with application flows; e.g., can new users understand the application easily, is proper help documented whenever users get stuck at any point, etc…. Basically system navigation is checked in this testing.
- Install/Uninstall Testing – This category of testing validates full or partial install/uninstall, and upgrade and rollback processes on different operating systems under different hardware, software environment including backup/restore mechanisms.
- Recovery Testing – This category of testing validates how well a system recovers from crashes, hardware failures, or other catastrophic problems in various configurations such as HA and Geo-Redundancy.
- Security Testing – Security testing looks for vulnerabilities in the software that would make the system susceptible to malicious users. It tests how well the system is protected against unauthorized internal or external access. It checks if system and databases are safe from external attacks.
- Stability Testing – This type of testing validates that the system can run in steady state for an extended period of time without any system downtime or crashes. Typical stability test is run for 72hrs. If any problems are encountered during the stability test, such as application crash, high failure rates, the test is stopped and issue is investigated. The stability test is restarted after a fix is identified.
- Scalability Testing – This type of testing is an extension of performance testing. The purpose of scalability testing is to validate that the system can scale efficiently by identifying major workloads and mitigate bottlenecks that can impede the scalability of the application.
- Application Testing – Tests the platform in the context of a particular application.
Architecture Alignment:
- How does this project fit into the rest of the ONAP Architecture?
- What other ONAP projects does this project depend on?
- All ONAP projects
- What other ONAP projects does this project depend on?
- How does this align with external standards/specifications?
- Are there dependencies with other open source projects?
- Robot
- Jenkins
- OpenStack
- Docker
Other Information:
- Preliminary V1 Plan
- ONAP Community Labs Specification
- Link to seed code (if applicable)
- ECOMP existing repos:
- testsuite
- testsuite/heatbridge
- testsuite/properties
- testsuite/python-testing-utils
- demo
- ci-management
- OPEN-O existing repos:
- integration
- ci-management
- oparent
- Vendor Neutral
- This project is vendor neutral
- Meets Board policy (including IPR)
- Yes
Use the above information to create a key project facts section on your project page
Key Project Facts
Project Name: Integration
JIRA project name: integration
JIRA project prefix: integration
Repo name:
- integration
- demo
- testsuite
- testsuite/heatbridge
- testsuite/properties
- testsuite/python-testing-utils
- ci-management
- oparent
Lifecycle State: incubation
Primary Contact: Helen Chen helen.chen@huawei.com
Project Lead:
mailing list tag [integration]
Committers:
*Link to TSC approval:
Link to approval of additional submitters: