Continuous Integration in CMMI
-
Upload
nikolay-stoitsev -
Category
Documents
-
view
720 -
download
0
description
Transcript of Continuous Integration in CMMI
![Page 1: Continuous Integration in CMMI](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/1.jpg)
ContinuousIntegration in CMMI
Nikolay Stoitsev
![Page 2: Continuous Integration in CMMI](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/2.jpg)
Automated Testing
![Page 3: Continuous Integration in CMMI](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/3.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/4.jpg)
Unit testing
● Tests individual units of source code● In isolation● Are not quality assurance
![Page 5: Continuous Integration in CMMI](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/5.jpg)
Ping Pong Pair Programming
![Page 6: Continuous Integration in CMMI](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/6.jpg)
Integration tests
● Individual software modules are combined and tested as a group
● Occurs after unit testing
![Page 7: Continuous Integration in CMMI](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/7.jpg)
Continuous Integration
![Page 8: Continuous Integration in CMMI](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/8.jpg)
Continuous Integration
Integrating a change into the source code repository without breaking the
project
![Page 9: Continuous Integration in CMMI](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/9.jpg)
Continuous Integration
Before each build, one a day, after each commit...
![Page 10: Continuous Integration in CMMI](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/10.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/12.jpg)
Continuous Integration Forkflow
![Page 13: Continuous Integration in CMMI](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/13.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/14.jpg)
Continuous Integration is more than setting a CI server
![Page 15: Continuous Integration in CMMI](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/15.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/16.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/17.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/18.jpg)
![Page 19: Continuous Integration in CMMI](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/19.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/20.jpg)
Validation Process Area
● SG 1 Prepare for Validation● SG 2 Validate Product or Product
Components
![Page 21: Continuous Integration in CMMI](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/21.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/22.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/23.jpg)
● 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](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/24.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/25.jpg)
SG 2 Validate Product or Product Components
● SP 2.1 Perform Validation● SP 2.2 Analyze Validation Results
![Page 26: Continuous Integration in CMMI](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/26.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/27.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/28.jpg)
Verification Process Area
● SG 2 Perform Peer Reviews
![Page 29: Continuous Integration in CMMI](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/29.jpg)
CI and Peer Reviews
● CI is integrating tools for Peer Reviews● Review board
![Page 30: Continuous Integration in CMMI](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/30.jpg)
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](https://reader033.fdocuments.us/reader033/viewer/2022052523/55615814d8b42aa20d8b550f/html5/thumbnails/31.jpg)
Thank you!Q&A