An important concept of any agile software development is getting reliable, working and integrated software at the end of every sprint or iteration. Continuous integration is a software development practice addressing this challenge by merging all changes made to the software and integrate all changed components regularly, at least once a day. Goal is to wrap compilation, build, deployment and testing into a single, automated and regularly repeatable process. Continuous integration can also be seen as a process in which developers integrate their work constantly, build constantly, and test constantly so errors in code can be detected more quickly.
A full continuous integration process consists of the following activities:
- Coding: write and debug code
- Checking-In: transfer the code in a centralized source code repository
- Static testing: execute and report automated static testing
- Building: a build tool automatically builds the code
- Unit testing: execute, measure coverage and report automated unit testing
- Deploying: automatically deploy the build
- Integration Testing: execute and report automated integration testing
- Reporting (dashboard): make the status of all previous bullets/activities visible automatically
The text above is a sample from the upcoming Agile Tester Add-On that will be released in early 2014. Please note that Agile Tester Add-On is in its alpha phase, which means that its content may change. Visit www.istqb.org to get latest information.