Continuous Integration (CI) - An effective development practice
- An Effective Development Practice -
Created by KienDN
• This document is?
– To introduce a very effective practice of software
development method called Continuous
• Who should see?
– CTO/Manager of IT company (outsource/startup
• Wait pain!
– Developer 1 has to wait if developer 2 commits
buggy code (step 2).
• Integration pain!
– Typically, your software not works when your
team integrate together.
• Delivery pain!
– Bug can only be detected at nearly end of the
workflow (step 4,5). Too late to deliver on time.
Want to avoid pain?
And ask yourself how to improve
quality & productivity of your
NO INTEGRATION pain!
NO DELIVERY pain!
CI Workflow - Benefit
• No integration pain!
– Submitted code is verified by automation test
on a CI server cluster. Each buggy code is
• No delivery pain!
– Tested deployment package always be
available to customer, at any moment.
Improved CI Workflow
NO WAIT pain!
Improved CI Workflow - Benefit
• No wait pain!
– Developer submit source code to pre-test
repository server. If passing automation test, it
is auto-submitted to main repository.
– Main repository always contains stable
version of source code. No wait to get clean
More improved solution!
Integrate code review process into the workflow at the pre-test repository
No Tool name Category Features
1 Jenkins, Hudson, TeamCity, BuildBot CI Continuous integration tool
2 Perforce, Git, SVN, Gerrit SCM Source code repository
3 Ant, Maven, Gradle BuildTool Compile/build software
4 Email, Jabber BuildNotifer Notify people by mail or IM, SMS,
5 Checkstyle, Emma/Cobetura, Dry,
StaticAnalysis Analysis coding convention, code
coverage, duplicated code, possible
bug and report
6 jUnit, Robotium, Robolectric,
UnitTest Framework to write unit test
7 Selenium, NativeDriver, Selendroid,
AutomationTest Framework to write automated test
8 Artifact Uploader, Copy Artifact, FTP,
Deployment Deploy/upload package to production
These are some typical tools for Android world, other are similar! 13
• What type of software project should apply this
– Game online, e-commercial, social network?
• What is the difficulty?
– Initial setup, operation, training?
• What is the cost of server cluster?
– How long does it take to setup?
– How much does it cost?
Feel free to contact for further