In the year 2001, the Agile software development methodology changed the landscape of software development with the introduction of agile development. The agile movement centered on helping developers and small teams work smarter and more efficiently. Agile ultimately gave rise to new processes and technology breakthroughs aimed at streamlining and automating the entire software delivery life cycle. This is when continuous integration (CI) came into being as a practice.
In an agile based software application development, Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early. Continuous integration is an integral part of an agile software development setup. Basically, a CI server is the gatekeeper that helps keep a tab on code quality and stops errors from being integrated into the software.
Without any doubt, automated tests are the most important part of any CI/CD pipeline. The automated tests are usually divided into multiple “suites”, each with its own objective.
At a high level, a CI/CD pipeline usually consists of the following steps:
ThinkPalm Technologies has significant experience in delivering IT projects in various domains. For one of our enterprise customers, we built an ERP application using .NET technology stack. We leveraged our DevOps and Test automation capabilities to deliver a world class ERP solution.
In the project, ThinkPalm used Agile based project development methodology where we leveraged our DevOps practice. In the CI/CD pipeline, soon after the developers make a change in the application, they commit the code (build) in SVN.We used automated test scripts with Jenkins (open-source continuous integration tool) which helped in reporting issues, if any, on isolated changes (in each build) in a larger code base in real-time. We used our own selenium hybrid framework written in the Java language for test automation. Jenkins triggered the test execution of the regression test suite. These test cases were executed on an overnight bases in most of the cases.
End-to-end automation improved the efficiency of all build, deployment and test cycles significantly. Tools such as Selenium, TestNG, Jenkins, and our custom build framework were used to enhance the entire testing process.