継続インテグレーションとは
継続インテグレーション(CI : Continuous Integration)とは、ソフトウェア品質向上と開発プロセスの加速を目的としたソフトウェア開発手法です
この手法では、高頻度に修正されるソースコードに対して、ビルドや静的解析、テストなどの品質検証作業を継続的に行います。これにより、問題を早期に発見し、修正コストを抑えつつ品質を維持することが可能となります。
結果として、下流工程での大量の問題発生を防ぐことができます。
継続インテグレーションツールのご紹介
ソースコードが修正されるたびに手動で品質検証作業を行うと、多大な工数がかかります。
この問題を解決するために、それらの作業をワークフローとして定義し、自動で定期的に実行してくれるのがCIツールです。
代表的なCIツールを以下にご紹介いたします。
- Jenkins
- GitHub Actions
- GitLab Runner
- Azure DevOps Pipelines
- Bitbucket Pipelines
- AWS CodePipeline
- Drone
- Travis CI
継続インテグレーションに組み込むツール
継続インテグレーションに様々な検証ツールを組み込み、定期的に実行することで、工数を抑えつつ品質を維持することが可能です。
一般的に継続インテグレーションに組み込む検証ツールを以下にご紹介いたします。
ステップ数計測
ステップ数を定期的に計測することで、プロジェクトの規模の推移を把握することができます。
また、ファイル/クラス/メソッド毎のコード肥大化の抑制にも活用できます。
ビルド警告解析
定期的にビルド警告チェックを実施し、修正することで不適切・不正確な記述の是正、及び予期せぬ不具合の排除が可能となります。
コーディング規約解析
コーディング規約に基づき、ソースコードのフォーマットをチェックし、修正することで、統一されたソースコードになり、可読性・保守性が向上します。
メトリクス計測
関数の複雑度などを計測し、一定基準を超えた関数をチェックし、見直すことで、保守性や再利用性を高め、不具合の混入も防止することができます。
静的解析
静的解析を実施することで、バグやセキュリティ脆弱性、パフォーマンス面などの様々な問題を検出し、修正することでソースコードの品質を向上させることができます。
単体テスト
関数単位で動作確認を行い、一定の品質担保が可能となります。また、定期的に実施することで、ソースコードの変更が他の部分に影響を与えていないのかの確認にもなります。
UIテスト
ユーザーの操作を自動化し、ソフトウェアが正しく動作しているかを確認できます。
単体テストと同様にソースコードの変更が他の部分に影響を与えていないかの確認にもなります。
OSSライセンス管理
使用しているOSSをチェックし、そのライセンスを把握することができます。
最後に
継続インテグレーションを導入することで、工数を抑えつつ、品質を向上させることができるので、ぜひ、ご検討いただければと思います。