継続的インテグレーションは「ビルド」ですが、開発サイクルのプログラミング部分の一部です。TDD の「テスト」が開発サイクルのプログラミング部分の一部であるように。
全体的な開発サイクルの一部として、引き続きビルドとテストが行われます。
継続的な統合とテストのポイントは、フィードバック ループを短縮し、プログラマーの可視性を高めることです。最終的に、これはテストとビルドの問題が少なくなることを意味しますが、開発サイクルの元の部分を行わなくなるという意味ではありません。開発サイクルの早い段階で発見されました。
したがって、出荷するもののベースラインが期待どおりであることを確認するために、コード フリーズ (または少なくともブランチ) を行う必要があります。誰かが高い信頼度で何かを実装できるからといって、それが同じ最終サイクルを通過せずにリリースされるわけではありません。コード フリーズはその重要な部分です。
CI を使用すると、最終的なビルド、テスト、およびリリースの信頼性が非常に高くなる可能性があるため、コードのフリーズは非常に短くなる可能性があります。ブランチが必要ないため、小さなプロジェクトではコードのフリーズさえ存在しない可能性があります。リリースしてすぐに戻ることができます。次の一連の機能の開発に非常に迅速に移行できます。
また、CI と TDD により、これまで行われてきた継続的な QA とは対照的に、最終的なビルドとテストのフェーズを従来のウォーターフォール (すべての開発を行い、すべてのテストを行い、その後リリースする) に近づけることができることも付け加えたいと思います。毎週または毎月のビルドのプロジェクト。テスターは CI ビルドを使用して初期のフィードバックを提供できますが、これは実質的に、機能ではなく安定性と信頼性を求める最終テストとは異なる種類のフィードバックです (ユニットの「テスト」では明らかに見落とされていました)。開発者が構築した)。