One of the hottest topics today in Application Development and Application Testing in general should be around Continuous Integration. Why there is so much buzz around this term? Well, there are obvious reasons such as: a) improve the quality of the application b) isolate and resolve defects faster c) drastic improvement in tools, processes, and test suite. Predominantly, there are few challenges that the testing folks can address quickly with the help of Continuous integration.
- Large teams working on same code base
- Multiple stages of code deployments
- Conflicts between geographically scattered teams
The New Era
In this blog, I would like to explain why Continuous Integration and Jenkins are the ideal fit for any agile driven process oriented organization. I will start with a two liner snippet around Continuous Integration.
- CI is the practice of merging all developer work spaces several times a day with a shared mainline
- CI servers constantly monitor source code repositories
Yes, CI improves quality
CI is a blessing for testers as it offers variety of benefits. As an organization, if you’re not using Continuous Integration, my word of advice is “Just give it a try”.
As a big time CI fan, my list of benefits for the testers by using Continuous integration goes like this:
- Avoids or detects compatibility issues early
- Keeps workspace continually integrated with other developers
- Reduces less bugs – run a strong test suite against the code
- Integrates code with mainline, compiles and runs automated tests
- Deploys working piece of code at any point of time in the system
- Helps the developer to get early feedback on their code
- Reduces fixed cost: If a defect is introduced into the system, it can be identified and corrected as early as possible
Jenkins – Features and Strengths
If it is Continuous integration, then the marriage with Jenkins is made in heaven. Jenkins is a java based Continuous Integration Tool and it has its own capabilities, features and strengths
To conclude with, I would like to list down some of the notable benefits you can get as a tester when you are using Jenkins as a Continuous Integration tool.
- Highly configurable system by itself
- Push artifact to wide range of repositories
- Wide variety of plugins provide more flexibility
- Integrate with different Version Control Systems
- Direct deployment to production or test environments
- Automated Notification of build status to stakeholders
- Immediate Bug detection by integrating development builds with test automation builds
- Combination of Jenkins with Ant, Gradle, or other Build Automation tools provides limitless feature
Latest posts by Anil Sannareddy (see all)
- Continuous Integration using Jenkins – A 100% win-win situation - February 21, 2014