
10.4
継続的なブランチのテストは継続的インテグレーションではない
177
10.3
継続的インテグレーション(
CI
)
継続的インテグレーションは、システムに対するあらゆる変更を開発と同時にひんぱんに統合、テス
トするプラクティスである。Bamboo、Jenkins、SnapCI、TeamCity、TravisCIなどの CIツールを
使えば、このプラクティスが可能になる。
しかし、大切なのは、継続的インテグレーションとは、CIツールを使うプラクティスではなく、すべ
ての変更をひんぱんに統合、テストするプラクティスだということだ。チームのすべてのデベロッパが
コードベースのトランクに変更をコミットする。コミットが行われるたびに、CIツールはコードベース
をビルドし、自動テストスイートを実行する。
こうすれば、変更が正しくビルドされなかったり、変更によってテストが失敗するようになったりし
たときに、すぐにフィードバックが返されるようになる。コミットごとにテストが実行されるため、ど
の変更が問題の原因になったのかはすぐに明らかになる。デベロッパがひんぱんにコミットすればする
ほど、チェンジセットは小さくなる。チェンジセットが小さければ小さいほど、問題点を見つけて修復
するまでが早くなり、そのための作業が簡単になる。
10.4
継続的なブランチのテストは継続的インテグレーションで
はない
多くの開発チームは、CIツールを使っているものの、変更の継続的な統合とテストのためには使っ
ていない。スケジュール(たとえば、毎 ...