Login

Username

Password



Not a member yet?
Click here to register.

Forgotten your password?
Request a new one here.

- Images -

Latest Articles

IP

IP'

Shoutbox

You must login to post a message.

johnkaasgaard
14-07-2013 01:12
Smil

johnkaasgaard
29-06-2013 13:18
Wellcome Smil

Continuous Integration - What is it?

 

Continuous Integration

Wont to know more about the hottest expanding area within software development ???

What is CI ? --> http://en.wikipedia.org/wiki/Continuous_integration

CI is an (often) automatic process, taking code changes into a codebase, build and test the delivered changes.

'Approve' the delivery if all lights are green from the following

  • Merging in the applied changes - OK!
  • Compilation of the newly merged works -OK!
  • Testing (if your are running this too) – OK! 
  • If you are testing coverage (functions, lines, modules ..) – OK!
  • If you have static code analysis - tests like MISRA, PCLint...OK!

Article Images: ci_cd_continiousintegration.png

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

When all lights are green - the applied changes are accepted. Making it ready for next CI .. deliverables.

The nice thing is if it fails, the last delivery would be rejected and the responsible informed about the problem(s) - avoiding big bang compilation and testing. Pushing the incremental approach too.

 

The automatic approach - if having tools to automate the process - really saves time and money. Perhaps (actually often) even make more advanced checking, coverage analysis, static & dynamic code analysis, even test on targets if things goes well. All step-by-step. You make a small change, deliver this, wupti.

It gets tested and if it passes your conditions it get approved ... now ready for next input :-)

 

 

A classical and well reputed tool for helping you continuously compile, test and approve your code base - automate the hole process.
 --> Jenkins         https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins

 

Main Images: jenkins1.png

Mr Jenkins (or any other tool) will monitor your code bases (like cvs, cc, subversion) looking for changed baselines on your integration stream or on your main stream and if this is the trigger, start a process of whatever you have defined. That could be checking out files, changing baseline status, compiling for target, compiling and run your unit test, perhaps even try some pre-defined integration testing, even more unit testing on the integrated modules. 

 

Mr. Jenkins could look at the output from the coverage analysis performed ... Yes!!! you name it 'He' will do it. It could be anything you type on the command line.

 

If everything is satisfactory - all test passed, all levels green - then promote the baseline to approved. Now everyone is happy! 

 

Part of the job is normally also downloading the build project to a target and performing system testing too. If you have a system that automatically could run your test - well that part could also me handled.

 

So delivery process is simplified and automated.

CI provides up-to-date-code bases - people are happy. Of cause provided your developer deliveries several times per day ... yes!! even in a multi people environment.

 

 

Integration testing: Deliver - baseline - merge - compile/build - Unit Testing - integration testing - static code analysis - baseline - promote

 

System testing: Take base line - flash target - run system/product tests

 



CI can take place at your developer stream, your integration stream as well as your main stream.

Typically CI (and Jenkins) can do lot of the practically work you normally has around your release procedures. 

 

 

How to get started some have asked me ?

Its quite cheap getting started with CI.

If you take a std PC use this as your build/integration 'server'.

Install Jenkins and your compiler, version management systems ...

A few click later and you have your first automatically Build Integration System.

 

/johnk

Comments

No Comments have been Posted.

Post Comment

Please Login to Post a Comment.

Articles Panel

  Article Posted By Date Reads
Continuous Integration - What is it?
Process & methods
johnkaasgaard
14-07-2013 11:1717153
"Scaling Lean & Agile Development" & "Practices for ..."
books
johnkaasgaard
12-07-2013 20:4250979
Simple low level testing using an I/O pin, LED or like
Tools
johnkaasgaard
21-06-2013 18:577074

Total Articles: 3 :: Total Article Categories: 8
 
Render time: 0.11 seconds
6,085,103 unique visits