ソフトウェア開発とプロジェクト管理
継続的インテグレーション(CI)の説明として、適切なものはどれか。
- A開発の最後に、各自が長い期間をかけて作った変更をまとめて統合し、一度に結合テストを行う
- B開発者が変更を頻繁に(1日に何度も)共有のブランチに統合し、そのたびにビルドと自動テストを実行して問題を早く見つける
- Cテストに合格した変更を、人の判断を挟まずに自動で本番環境へ公開する
答えと解説を見る
正解:B. 開発者が変更を頻繁に(1日に何度も)共有のブランチに統合し、そのたびにビルドと自動テストを実行して問題を早く見つける
継続的インテグレーションでは、変更を小さく頻繁に統合し、統合のたびにサーバ上でビルドと単体テストなどを自動で実行します。統合の間隔が短いので、変更どうしの食い違いや不具合を、原因が分かりやすいうちに見つけて直せます。これまでのテストをまとめて実行し直す回帰テストを、変更のたびに自動で行えることも利点です。テストに合格した変更を自動で本番環境に公開するのは継続的デプロイで、CIの先にある段階です。
- A. 長い期間ためた変更を最後に一度に統合するやり方で、不具合の原因を特定しにくくなります。CIはこれを避けるための方法です。
- B. 正しい。小さな変更を頻繁に統合し、そのたびに自動でビルドとテストを行います。
- C. 継続的デプロイの説明です。CIは統合とビルド・テストの自動化までを指します。