socci: science operations configuration control infrastructure

41
ESA UNCLASSIFIED – For Official Use SOCCI: Science Operations Configuration Control Infrastructure SOCCI Training Vicente Navarro Fernando Perez Kaarel Hanson Kaarel Lumi 18&19 January 2018

Upload: others

Post on 10-Feb-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

ESA UNCLASSIFIED – For Official Use

SOCCI: Science Operations Configuration Control Infrastructure

SOCCI Training

Vicente NavarroFernando PerezKaarel HansonKaarel Lumi

18&19 January 2018

ESA UNCLASSIFIED – For Official Use

SOCCI ADVANCED

ESA UNCLASSIFIED – For Official Use

Topics and Schedule

1. Requirement Management - 45min2. Test Management - 30min3. Continuous Integration - 60min4. Future Features - 45min

ESA UNCLASSIFIED – For Official Use

Requirement Management

1. Types and hiereachy of requirements2. Workflow3. Traceability4. Importing Requirements

ESA UNCLASSIFIED – For Official Use

Requirement ManagementHierarchy

• There are 4 types of requirement projects designed for SOCCI• User Requirements – URQ• Mission Requirements – MRQ• System Requirements – SRQ• Software Requirements – SWRQ

• In the requirement projects, we have identified 2 types of issues• Requirement• Design Component (only in SWRQ)

UserRequirement

MissionRequirement

SystemRequirement

SoftwareRequirementDerives

Implements

DesignComponent

ESA UNCLASSIFIED – For Official Use

Requirement ManagementWorkflow

• Multi-stage WF• Fully tailored for

ESAC, based on best practices

ESA UNCLASSIFIED – For Official Use

Requirement ManagementTraceability

• Requirements can be traced from and to• Requirements in different projects• Design Components• Documentation

ESA UNCLASSIFIED – For Official Use

Requirement ManagementExcercise

• Open SOCCI JIRA and Create in the Sandbox projects• User Requirement• Software Requirement

• Add Traceability• User Requirement derives Software Requirement• Design Component implements Software Requirement

• Open SOCCI Confluence and locate Sandbox Space• Create an SRS following the convention

• ESAC-SANDBOX-SRS-<YourName>• Add macros for software and user requirements in the SRS

ESA UNCLASSIFIED – For Official Use

Requirement ManagementImport Requirements

• Guide is provided in SUM-0001• Requirements can be imported in bulk from CSV• Format of the CSV is provided in SUM-0001• Import file must be submitted to SITU

ESA UNCLASSIFIED – For Official Use

Test Management

1. Issue Types and Hierarchy2. Cloning3. Importing

ESA UNCLASSIFIED – For Official Use

Test ManagementIssue types and Hierarchy

• Test Management was originally designed for SOCCI engineering, hence, it is lightweight and rather simplistic

• We have designed a 3-level test management structure• Test Case• Test Design• Test Specification

• Including an additional issue type for test results – Test RecordTestSpecification

TestDesign TestDesign

TestCase

TestCase

TestCase

TestCase

TestCase

TestCase

TestRecord

TestRecord

TestRecord

TestRecord

TestRecord

Clone

ESA UNCLASSIFIED – For Official Use

Test ManagementCloning

• Cloning works on every level of Test Management• Cloning is used to create a set of test records for a campaing in a given

• Version (Tested In Release)• Environment• Test Campaign Execution (Labels)

ESA UNCLASSIFIED – For Official Use

Test ManagementRecap

ESA UNCLASSIFIED – For Official Use

Test ManagementImport Tests

• Guide is provided in SUM-0001• Test Cases, Designs and Specs can be imported in bulk from CSV• Format of the CSV is provided in SUM-0001• Import file must be submitted to SITU

ESA UNCLASSIFIED – For Official Use

CONTINUOUSINTEGRATION

ESA UNCLASSIFIED – For Official Use

SOCCI Documentation

SUM-0003 = Continuous integration

https://issues.cosmos.esa.int/socciwiki/display/SOCCIBL/ESA-SOCCI-SUM-0003+Baseline

1. Open SOCCI Confluence2. Open SOCCI Baseline space3. Open ESA-SOCCI-SUM-0003

ESA UNCLASSIFIED – For Official Use

Topics

1.Integrations / overall view2.JIRA3.Bitbucket4.Jenkins5.SonarQube6.Nexus

7.DEMO

ESA UNCLASSIFIED – For Official Use

Tools

ESA UNCLASSIFIED – For Official Use

JIRA

Integration with Bitbucket provides some useful links in JIRA issue view:

1. Branches2. Commits3. Pull requests4. Create branch

ESA UNCLASSIFIED – For Official Use

Bitbucket

• Git repository

• Enterprise grade permission management - levels: projects, repositories, branches

• Pull requests between branches

• Code review based on pull requests

ESA UNCLASSIFIED – For Official Use

SOCCI Branching Model

ESA UNCLASSIFIED – For Official Use

Jenkins

Best practice: 1+ build server per team, managed by team

(Source: https://www.thoughtworks.com/radar/techniques )

Build jobs

ESA UNCLASSIFIED – For Official Use

Jenkins

We have a guide in SUM-0003 for setting up a Jenkins job that does the following, your requirements and experiences may vary:

1.watches all branches2.builds when changes are pushed to Bitbucket3.runs unit tests4.runs SonarQube5.deploys artifacts to Nexus6.sends e-mails7.notifies JIRA8.notifies Bitbucket

ESA UNCLASSIFIED – For Official Use

SonarQube

Static code analysis

Detects most common quality problems in several programming languages

C/C++, JavaScript, C#, Java, COBOL, TypeScript, PL/SQL, PL/I, PHP, ABAP, T-SQL, VB.NET, VB6, Python, RPG, Flex, Objective-C, Swift, Web, XML

Get trivial problems out of the way for code review and focus on important things

ESA UNCLASSIFIED – For Official Use

Nexus

Repository for build artifacts for example .jar files

Store each build for testing purposes

Unique release builds and multiple snapshot builds

ESA UNCLASSIFIED – For Official Use

Tools

One more time to tie it all together…

ESA UNCLASSIFIED – For Official Use

DEMO

1.New feature branch2.Make changes3.New release branch4.Pull request5.Code review6.SonarQube7.Jenkins8.Nexus

ESA UNCLASSIFIED – For Official Use

DEMO Screenshots

ESA UNCLASSIFIED – For Official Use

DEMO Screenshots

ESA UNCLASSIFIED – For Official Use

DEMO Screenshots

ESA UNCLASSIFIED – For Official Use

DEMO Screenshots

ESA UNCLASSIFIED – For Official Use

DEMO Screenshots

ESA UNCLASSIFIED – For Official Use

DEMO Screenshots

ESA UNCLASSIFIED – For Official Use

DEMO Screenshots

ESA UNCLASSIFIED – For Official Use

DEMO Screenshots

ESA UNCLASSIFIED – For Official Use

DEMO Screenshots

ESA UNCLASSIFIED – For Official Use

DEMO Screenshots

ESA UNCLASSIFIED – For Official Use

DEMO Screenshots

ESA UNCLASSIFIED – For Official Use

DEMO Screenshots

ESA UNCLASSIFIED – For Official Use

Continuous integration

Questions?

Thank you!

ESA UNCLASSIFIED – For Official Use

Conclusion

• All guides are given in the User Manuals!• For additional support, please submit an request to SITU!• Or get in contact with Vicente, Fernando, or the SOCCI Team• Please let us know of your impression of the SOCCI Foundation

Training Session• https://goo.gl/forms/N08qOX9dNqS2A4um1

Thank You!