continuous integration in cmmi
DESCRIPTION
Place of a Continuous Integration practice in the CMMI model.TRANSCRIPT
ContinuousIntegration in CMMI
Nikolay Stoitsev
Automated Testing
Automated Testing
● Finding errors in early stages of the development cycle
● Gives confidence in refactoring● Serves as documentation● Helps us in software design
Unit testing
● Tests individual units of source code● In isolation● Are not quality assurance
Ping Pong Pair Programming
Integration tests
● Individual software modules are combined and tested as a group
● Occurs after unit testing
Continuous Integration
Continuous Integration
Integrating a change into the source code repository without breaking the
project
Continuous Integration
Before each build, one a day, after each commit...
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.
Continuous Integration
Continuous Integration Forkflow
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)
Continuous Integration is more than setting a CI server
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
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
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
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.
Validation Process Area
● SG 1 Prepare for Validation● SG 2 Validate Product or Product
Components
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
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
● 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
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.
SG 2 Validate Product or Product Components
● SP 2.1 Perform Validation● SP 2.2 Analyze Validation Results
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
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.
Verification Process Area
● SG 2 Perform Peer Reviews
CI and Peer Reviews
● CI is integrating tools for Peer Reviews● Review board
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.
Thank you!Q&A