socci: science operations configuration control infrastructure
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
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 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
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
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
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
DEMO
1.New feature branch2.Make changes3.New release branch4.Pull request5.Code review6.SonarQube7.Jenkins8.Nexus
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!