continuous integration in cmmi

31
Continuous Integration in CMMI Nikolay Stoitsev

Upload: nikolay-stoitsev

Post on 24-May-2015

730 views

Category:

Documents


0 download

DESCRIPTION

Place of a Continuous Integration practice in the CMMI model.

TRANSCRIPT

Page 1: Continuous Integration in CMMI

ContinuousIntegration in CMMI

Nikolay Stoitsev

Page 3: Continuous Integration in CMMI

Automated Testing

● Finding errors in early stages of the development cycle

● Gives confidence in refactoring● Serves as documentation● Helps us in software design

Page 4: Continuous Integration in CMMI

Unit testing

● Tests individual units of source code● In isolation● Are not quality assurance

Page 5: Continuous Integration in CMMI

Ping Pong Pair Programming

Page 6: Continuous Integration in CMMI

Integration tests

● Individual software modules are combined and tested as a group

● Occurs after unit testing

Page 7: Continuous Integration in CMMI

Continuous Integration

Page 8: Continuous Integration in CMMI

Continuous Integration

Integrating a change into the source code repository without breaking the

project

Page 9: Continuous Integration in CMMI

Continuous Integration

Before each build, one a day, after each commit...

Page 10: Continuous Integration in CMMI

Continuous Integration

Continuous integration involves integrating early and often, so as to avoid the pitfalls of "integration hell". The practice aims to reduce rework and thus reduce cost and time.

Page 12: Continuous Integration in CMMI

Continuous Integration Forkflow

Page 13: Continuous Integration in CMMI

Continuous Integration Server

● Runs the CI process● Creates new build● Runs all tests● Keeps log of each build● Inform developers on build status● Makes builds and reports available to

everyone● Automate deployment● Keep track of metadata(build number,

version)

Page 14: Continuous Integration in CMMI

Continuous Integration is more than setting a CI server

Page 15: Continuous Integration in CMMI

Continuous Integration Practices

● Maintain a code repository● Automate the build● Make the build self-testing● Everyone commits to the baseline every day● Every commit (to baseline) should be built● Test in a clone of the production

environment● Make it easy to get the latest deliverables● Everyone can see the results of the latest

build● Automate deployment

Page 16: Continuous Integration in CMMI

Benefits for developers

● The earliest detection of problems● Detection of integration problems● Early warning of broken code● Early warning of conflict changes● Immediate unit tests for all changes● Integrates all moving parts● Immediate static analysis● Metrics - feedback on code quality

Page 17: Continuous Integration in CMMI

Benefits for managers

● Metrics on test coverage● Metrics on code quality● Metrics on individual developer● Constant availability of a "current" build for

testing and demos● Definition of Done (DoD)● Automatic documentation generation

Page 18: Continuous Integration in CMMI
Page 19: Continuous Integration in CMMI

Validation Process Area

The purpose of Validation (VAL) is to demonstrate that a product or product component fulfills its intended use when placed in its intended environment.

Page 20: Continuous Integration in CMMI

Validation Process Area

● SG 1 Prepare for Validation● SG 2 Validate Product or Product

Components

Page 21: Continuous Integration in CMMI

SG 1 Prepare for Validation

● SP 1.1 Select Products for Validation● SP 1.2 Establish the Validation Environment● SP 1.3 Establish Validation Procedures and

Criteria

Page 22: Continuous Integration in CMMI

SP 1.1 Select Products for Validation

1. Select products and product components to be validated:a. source codeb. user interfaces

2. Select validation method:a. Incremental delivery of working and potentially

acceptable productb. Prototype demonstrationsc. Analyses of product and product components

Page 23: Continuous Integration in CMMI

● If the validation tager is the source code, CI provides tools for validating it(unit tests, static analysis).

● CI automatically deploys the application on different environments.

● CI runs integration tests on each environment.

● CI logs metrics about the building, deployment and testing in one place.

SP 1.2 Establish the Validation Environment

Page 24: Continuous Integration in CMMI

SP 1.3 Establish Validation Procedures and Criteria

● In CI the validation procedure is well defined.● There are well defined automated tests, with

a description of precondition and expected behaviour.

● There is a test plan to serve as documentation for the validation.

● CI can provide different validation procedure for the context of each validation environment.

Page 25: Continuous Integration in CMMI

SG 2 Validate Product or Product Components

● SP 2.1 Perform Validation● SP 2.2 Analyze Validation Results

Page 26: Continuous Integration in CMMI

SP 2.1 Perform Validation

● CI performs the validation continuously● CI generates validation reports● CI stores and presents validation results● CI stores and presents As-rum procedures

log

Page 27: Continuous Integration in CMMI

SP 2.2 Analyze Validation Results

● In the process of testing the CI is comparing actual results to expected results.

● CI reports if there are products and product components that do not perform suitably.

● CI record results of the analysis and identify issues.

Page 28: Continuous Integration in CMMI

Verification Process Area

● SG 2 Perform Peer Reviews

Page 29: Continuous Integration in CMMI

CI and Peer Reviews

● CI is integrating tools for Peer Reviews● Review board

Page 30: Continuous Integration in CMMI

Review board

● Commit must be reviewed before it is published.

● Automatically or manually create and update review request per build.

● Track age of review requests and creating a new review request instead of updating the stale one.

Page 31: Continuous Integration in CMMI

Thank you!Q&A