Swift・iOS

Swiftを中心に学んだことを記録に残すブログです。技術に関係ない記事もたまに書いています。

継続的インテグレーションとは

■はじめに

アプリ開発でのCI環境構築に関して、根拠を持って技術選定できるようになりたいため、まずは継続的インテグレーションに関して以下調べてみました。

・概要 ※おまけ:単体テストの概要

・メリット

・CI環境構築のタイミング

 

継続的インテグレーションとは

継続的インテグレーションは、開発者が自分のコード変更を定期的にセントラルリポジトリにマージし、その後に自動化されたビルドとテストを実行する DevOps ソフトウェア開発の手法です。」

※引用:継続的インテグレーションとは?– アマゾン ウェブ サービス

 

技術的なバックグラウンドがない人材なので、単体テストも調べます。。

 

単体テストとは

・プログラムを構成する比較的小さな単位(ユニット)が個々の機能を正しく果たしているかどうかを検証するテストである。

単体テストはQAチームではなく、開発者によって作成時などの早い段階で実施されることが多いのが特徴。

単体テストの課題としては、開発者にかかるテストの負担が大きくなりやすく、スケジュールの関係で単体テストに時間を割くことができない場合など、テストが省略されたり不完全になりやすいことがあげられる。

※参考:単体テスト(ユニットテスト)とは | ソフトウェアの検証の種類 | テクマトリックス株式会社

 

継続的インテグレーションのメリット

単体テストを自動化することは、

・開発者の単体テストにかかる負担を小さくする

・スケジュールによってテストが不完全になる危険性を下げる

・自動的にビルドと単体テストを実施するので、エラーをすぐに発見できる。

 

 ■CI環境を構築するタイミングに関して

初期段階で行ったほうが、

・ビルド時間が早いのでCI構築時のサイクルがはやい

・何か問題が起きた場合、CIの設定まわりが怪しいといえる

・その後の開発サイクルがスムーズになる

引用:iOSアプリ新規開発のノウハウ - NSBlogger

 

■おわりに

今回は継続的インテグレーションの概要/メリット/導入タイミングに関して調べてみました。今後はアプリ開発におけるCI関連ツールに関して調べていきたいと思います。

 

■関連リンク

継続的インテグレーションとは?– アマゾン ウェブ サービス

ソフトウェア開発に必須。CI(継続的インテグレーション)のススメ |IT・Web・機電の派遣求人ならパーソルテクノロジースタッフのエンジニア派遣

iOSアプリでCIを始めようとサービスを調べた - Qiita

iOSアプリ新規開発のノウハウ - NSBlogger

2017年のiOSアプリ開発におけるCI事情

iOSアプリ開発のCI環境 - Jenkins編 -