CI(継続的インテグレーション)が解決する課題
CI(継続的インテグレーション)とは
CIとは、Continuous Integrationの略で、継続的インテグレーションと呼ばれています。CI(継続的インテグレーション)では、開発者が自分のコード変更を頻繁にリポジトリにマージし、その度に自動化されたビルドとテストを実行します。小さなサイクルでインテグレーションを繰り返し行い、インテグレーションのエラーを素早く修正することによりチームは統合されたソフトウェアをより迅速に開発できるようになります。
CI導入前の課題
CIが導入される前は、開発者は長期間にわたって独立して作業し、自分の作業が完了したあと初めて、変更点をリポジトリにマージしていました。このような開発プロセスでは、累積したコード変更をマージする作業は困難で時間のかかるものでした。また、バグが発生した場合も複数の変更が混在するため、影響範囲も広く特定と修正にかかるコストが大きくなってしまいます。このようなリードタイムの長い開発プロセスでは次の課題が存在します。
- ソースコードの品質表示が定まっておらず、品質にバラつきがある。
- 結合またはシステムテスト時に多くの問題が発見され手戻りの工数がかさむ。
- リポジトリから最新のソースコードを取得したがビルドが通らない。
- 不具合修正が関連する派生ソフトウェアに適用されていない。
- ソフトウェアの修正や変更によりデグレードが発生した。
CI(継続的インテグレーション)で実現できるもの
CI導入により、従来の開発プロセスにかかるコストを削減し、ビジネスの競争力を高めることができます。これまでプロジェクトの最終段階で見つかっていたエラーが、早く小さなコストで修正されるようになるため、開発チームの生産性が向上し、品質の良いソフトウェアの開発に繋がります。
CI導入による効果
- 開発工数の削減
- ソースコードの早期チェックにより、バグ解決数の向上やコードレビューの工数が削減される。
- 作業品質の向上
- ビルドやソースコードのチェックの定期実行により、開発されるコードの品質が均一化される。
- 運用の標準化
- 自動化や構成管理が適切に行われるようになり、運用のルール化が進む。
- 自動化の促進
- 手作業によるテストを改善し、開発プロジェクトに即した適切な自動化されたテストが行える。
自動で行うテストの例
- コード解析
- 保守性の低い実装や致命的な不具合につながる実装をコードを実行せずに機械的に検証する。
- 単体テスト
- プログラムを構成する小さな単位(ユニット)が正しく動作することを検証する。
- APIテスト
- APIを用いてプログラムの機能を検証する、またはAPIを組み合わせたシナリオを検証する。
- UIテスト
- プログラムのUIが正しく機能することを検証する。
- 負荷テスト
- システムに疑似的に多くの負荷をかけ反応を検証する。
Jenkins ならびに Jenkins CIは、Jenkins (https://jenkins.io)に帰属します。また、Creative Commons Attribution-ShareAlike 4.0に従い、利用しています。
PICK UP
CIツール「Jenkins」活用ソリューションに
関するお問い合わせ
テクマトリックス株式会社
東京本社ソフトウェアエンジニアリング事業部
03-4405-7853
- メールでのお問い合わせ
- se-info@techmatrix.co.jp