Software Development and Project Management
Which describes continuous integration (CI)?
- AAt the end of development, the changes that each developer made over a long period are merged all at once and integration-tested in one go
- BDevelopers merge their changes into a shared branch frequently (several times a day), and each time a build and automated tests are run to find problems early
- CChanges that pass the tests are released to production automatically, without any human decision
Show answer and explanation
Answer: B. Developers merge their changes into a shared branch frequently (several times a day), and each time a build and automated tests are run to find problems early
In continuous integration, changes are merged in small, frequent steps, and each merge automatically triggers a build and tests such as unit tests on a server. Because the interval between merges is short, conflicts between changes and defects can be found and fixed while their cause is still easy to see. Another benefit is that regression tests, which re-run all existing tests, can be run automatically for every change. Automatically releasing changes that pass the tests to production is continuous deployment, a stage beyond CI.
- A. Merging changes accumulated over a long period all at once at the end makes it hard to locate the cause of defects. CI exists to avoid this.
- B. Correct. Small changes are merged frequently, and a build and tests run automatically each time.
- C. This describes continuous deployment. CI covers merging and automating the build and tests.
Continue: 9 more Software Development and Project Management questions