What is Continuous Integration?
Continuous Integration (CI) is the process of continually adding to the software code pool and integrating new code during the development cycle. By ensuring new code is integrated early and often, developers aren’t faced with the much larger task of adding large tracts of new or updated code too late in the cycle, making it far more complex to integrate and troubleshoot.
How does CI impact Software Testing?
The CI process inherently impacts the work of Software Testers by introducing new code that needs to be verified and tested on a continuous basis. The most effective way of Testing in a CI environment is by using Test Automation – creating automated scripts to review and analyse; new code, functionality and interdependencies on a regular and ongoing basis.
What are the benefits of CI?
The idea of CI is to save Development and Testing time further down the line by identifying any issues with new code early in the software development lifecycle. There is a knock-on benefit for Testers in that CI reduces the amount and complexity of Regression Testing that’s required, especially if most issues are identified and rectified early in the process. CI is also useful where multiple developers contribute to the code pool, as Testing can take place on the central code repository.
How is Testing done in a CI environment?
There are different types and stages of Test Automation in a CI environment. The most basic of these is Unit Tests, where Testing is done very early in the process. The next rung on the ladder is Integration or API Tests, where Testing is done on the various APIs that link different parts of the codebase together. The final rung is UI Testing, where Testing is done via the User Interface, and often requires human intervention. Typically, the earlier in the process that Testing is done, the more effective it becomes, and the less Testing is required further up the ladder.