How To Do Continuous Integration



Similar documents
Continuous Integration: A case study

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Software Construction

Delivery. Continuous. Jez Humble and David Farley. AAddison-Wesley. Upper Saddle River, NJ Boston Indianapolis San Francisco

Taking Subversion to a Higher Level. Branching/Merging Support. Component Management Support. And More

Continuous Integration on System z

Continuous Integration

Continuous Integration Build-Test-Delivery (CI-BTD) Framework in compliance with ISO26262

Effektiver Tool-Einsatz

The most suitable system methodology for the proposed system is drawn out.

Enabling Continuous Delivery by Leveraging the Deployment Pipeline

CS4507 Advanced Software Engineering

Implementing Continuous Integration Testing Prepared by:

What is a life cycle model?

Continuous Integration

Continuous Integration

Modern practices TIE-21100/

Accelerate Software Delivery

Continuous Integration with Jenkins. Coaching of Programming Teams (EDA270) J. Hembrink and P-G. Stenberg [dt08jh8

Fundamentals of Continuous Integration

Development Testing for Agile Environments

Patterns to Introduce Continuous Integration to Organizations

Test-Driven Development

Page 1. Outline of the Lecture. What is Software Configuration Management? Why Software Configuration Management?

Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited

TeCReVis: A Tool for Test Coverage and Test Redundancy Visualization

Continuous Delivery: Automating the Deployment Pipeline. Solution Brief

Leittechnik für Bahnsysteme mit Eclipse

Continuous Integration

Continuous integration End of the big bang integration era

Continuous Delivery Benefits, Best Practices and Practical Advice

Continuous Integration Comes to China.

Build management & Continuous integration. with Maven & Hudson

Benefits of Test Automation for Agile Testing

Continuous Delivery Maturity Model

Agile Software Development compliant to Safety Standards?

The Importance of Continuous Integration for Quality Assurance Teams

Configuration & Build Management

Integrated tools for collaborative software development

Software Development Process

Methodology: Agile development of safety critical systems Annex D1.1.d to deliverable D1.1

Continuous Integration For Real: The Perforce Java Platform. Hamish Reid Perforce Software Inc.

Continuous Integration Multi-Stage Builds for Quality Assurance

AGILE vs. WATERFALL METHODOLOGIES

Continuous Integration with Jenkins. Didi Rosiyadi

Continuous Integration Using Cruise Control

Automated performance testing using Maven & JMeter. George Barnett, Atlassian Software

Software Process Models. Xin Feng

Continuous Integration

SQMB '11 Automated Model Quality Rating of Embedded Systems

Software Configuration Management and Continuous Integration

SOA-14: Continuous Integration in SOA Projects Andreas Gies

Quality Assurance Plan

DevOps Stack. Reid Holmes. Chris Parnin:

How To Improve Your Software

Energy Efficiency Embedded Service Lifecycle: Towards an Energy Efficient Cloud Computing Architecture

Software Development In the Cloud Cloud management and ALM

Agile SPL-SCM: Agile Software Product Line Configuration and Release Management

Test Driven Development with Continuous Integration: A Literature Review

System Software Product Line

Only Athena provides complete command over these common enterprise mobility needs.

Practical QA in a Nutshell

Escaping the Works-On-My-Machine badge Continuous Integration with PDE Build and Git

Continuous Integration - An Efficient Quality Assurance Tool

Processes for the Development of Healthcare Applications. Christian Johner

WHITE PAPER. Peter Drucker. intentsoft.com 2014, Intentional Software Corporation

Continuous Integration: Put it at the heart of your development

Improving your Drupal Development workflow with Continuous Integration

Certified Software Quality Engineer (CSQE) Body of Knowledge

Die wichtigsten Use Cases für MISRA, HIS, SQO, IEC, ISO und Co. - Warum Polyspace DIE Embedded Code-Verifikationslösung ist.

Software Development Best Practices

A Survey Report by Horst Hientz Hans-Jürgen Kugler

Delivering Quality Software with Continuous Integration

Flexible Engineering Process Automation Process: Continuous Integration & Test

An Introduction to Continuous Delivery

Best Practices for Java Projects Horst Rechner

Software Development Methodologies

Open Source Tools. The Magazine for Professional Testers. December 2010

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012

Continuous Delivery. Anatomy of the Deployment Pipeline (Free Chapter) by Jez Humble and David Farley

Software Engineering I (02161)

Mastering Continuous Integration with Jenkins

Service Performance Management: Pragmatic Approach by Jim Lochran

3C05: Unified Software Development Process

Continuous Integration and Delivery at NSIDC

Difference Between Model-Driven and Traditional Iterative Software Development

Continuous Integration. CSC 440: Software Engineering Slide #1

Lecture 10 CS5702. Requirements Engineering. Managing change optimising Value - A bit more about Agile RE. Requirements Engineering.

Transcription:

Continuous Integration for Safety Critical Systems Thomas Schütz Protos Software GmbH ASQF Safety Day 24.06.2014

Protos Software GmbH Methods and Tools Domain Specific Languages (DSL) Modelingtools Embedded Software Toolchains Protos builds tools, toolchains and domain specific languages (DSLs) for Embedded Systems Protos automates development processes Protos implements prototypes or production quality embedded systems Protos leads the Eclipse Projekt etrice

Why do we care about safety? Because the customer forces us to care? Because the marketing forces us to care? Because the law forces us to care?

Why do we care about safety? That s why!

So what do we need? Quality (Robustness, Reliability, )

Can Continuous Integration help? What is Continuous Integration? Why do we need Continuous Integration? How can Continuous Integration help?

The Integration Problem Developer 1 this is integration hell Developer 2 Developer 3 30 changes The Integrator Developer 4 70 changes Developer 6 Developer 5 Developer n

The Bug Fixing Problem Source: http://www.agitar.com/images/defect_chart.gif

Project Requirements not all requirements and objectives can be met 100%

Project Objectives

Basic Assumption for CI QUALITY = SPEED

What is Continuous Integration? (the long version) Continuous integration (CI) is the practice, in software engineering, of merging all developer working copies with a shared mainline several times a day. It was first named and proposed as part of extreme programming (XP). Its main aim is to prevent integration problems, referred to as "integration hell" in early descriptions of XP. CI can be seen as an intensification of practices of periodic integration advocated by earlier published methods of incremental and iterative software development, such as the Booch method. CI isn't universally accepted as an improvement over frequent integration, so it is important to distinguish between the two as there is disagreement about the virtues of each.

What is Continuous Integration? (the short version) a methodology for development daily development integration (or more frequently) verification by automated builds and tests

How does it work? An example: CI watches changes in repositories CI automates build of all related software projects CI automates test execution and reporting CI creates releases and delivers the software (Continuous Delivery) In case of an error, only the committers of the last changes will be informed

Where can CI help with safety? Example 26262 Part 6: Initialization of product development Specification of software safety requirements Software architectural design Unit design and implementation Unit testing Software integration and testing Verification of software safety requirements

How can CI help with safety? Unit testing: Automated build and test execution triggered by every change Very fast and specific response for developers Early detection, early fixes Software integration and testing: Continous automated integration of dependent projects including variants and different targets Automated integration tests (also HIL possible) Side effects of changes on other projects can be detected Early detection, early fixes

How can CI help with safety? Further help with safety requirements: Automated test reporting Automation of quality metrics like test coverage, complexity, Integration of static code analysis Different views for management and development Many open source or proprietary plugins or tools available or easy to integrate

Hudson Demonstration

Continuous Integration in the Process

Rules Commit early, commit often Never commit broken code Fix build problems immediately Fail fast (staging) Act on metrics Build for all targets Release and Deliver always Automate safety relevant metrics and tests

Caveats Continuous Integration is there to help you it is not a goal of the project to build the perfect CI start with the low hanging fruits (some builds, some tests, some deliveries) don t use all tools or plugins (stop in time)

Conclusion Continuous Integration can help to speed up your project to drive quality to keep everybody on the same page to start to focus on the important things to build confidence to introduce tests and metrics

... any questions? Thomas Schütz ts@protos.de http://www.protos.de