Skip to main content

Continuous Integration with Jenkins

Continuous Integration (CI) is a software development practice where members of a team integrate their work frequently. Integrations can range from once to several times daily. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. The main aim of CI is to provide instant feedback when a defect is found in the code so that the defect can be rectified as soon as possible.

The Cycle followed by CI is Code>>Build>>Test>>Deploy which helps to have high quality and bug free code.

CI runs have two major phases:

Step One – ensures code compiles.

Step two – ensures the code works as designed.

For best results these two phases should be followed by running a series automated tests that validate all levels of a product.

Advantages of CI

  • Bugs are detected immediately
  • Less debugging time
  • There is no integration step which saves time
  • Less expensive to fix defects
  • Since code is committed frequently, roll-back is easier in case of any major issues
  • Makes code robust and speeds up the development work

jenkins01

Jenkins

Jenkins is an open source tool to perform continuous integration. Jenkins is great at finding issues in software early. The main aim of Jenkins is to build when an event has occurred. For example, ‘build after every few minutes’ or ‘build after every commit’. Jenkins also monitors test execution and sends out notifications when a build has passed or failed.  It builds and tests your software continuously and monitors the execution and status of jobs, making life easier for the team and identifies issues at the earliest. Jenkins is a highly configurable system and also supports lots of plug-ins

Jenkins Advantages

  • We can configure build-to-run periodically
  • Once a project is successfully created in Jenkins, all future builds are automatic
  • Jenkins comes with basic reporting features, i.e. keeping track of build status, last success/failure and so forth.
  • Deploys code instantly, no developer builds
  • Generates test reports
  • Notifies stakeholders of build status
  • Large number of plugins supported on Jenkins

Automated Continuous Regression Testing

Regression Testing becomes a challenge if defects are not found at the initial stages. A major concern when developing new software features is that another part of the code will be affected in unexpected ways. With a typical development processes, testers often do not get time to execute a full set of regression tests until late in the release when it is much more costly to fix and retest the product. Continuous integration pairs continuous builds with test automation to ensure that each build also assesses the quality of the code base. Continuous Regression runs on daily basis in background so that we can identify issues caused by new commits.

Shashank Hegde

Shashank Hegde

Shashank Hegde works with Trigent Software as Senior Test Engineer. With nearly five year of experience in QA and Test Automation, Shashank has rich experience in selenium WebDriver. Over the years, he has been involved in developing automated test scripts for new features and taking care of regression suites, analysing results and reports on test results. He has worked on different domains like Insurance, Mortgage and Health Science.