SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2019】セッションレポート (AD)

CI/CDの導入で何が変わるのか? 専門家が教える数段上のソフトウェア開発【デブサミ2019】

【15-E-2】CI/CDを使い倒して数段上のソフトウェア開発をしよう!

  • このエントリーをはてなブックマークに追加

 アプリケーションの品質向上やリリース作業の負荷軽減のため、Continuous Integration(継続的インテグレーション。以下、CI)やContinuous Deployment(継続的デプロイ。以下、CD)を導入する企業が増えている。なぜCI/CDのニーズが高まっているのか。導入を成功させるための鍵はあるのか。CircleCIのJapan Tech Leadである金洋国(キム・ヒロクニ)氏が、CI/CDを最大限に活用することで、チームの開発プロセスがどう変わるかを解説した。

  • このエントリーをはてなブックマークに追加

CircleCI Japan Tech Lead 金洋国氏
CircleCI Japan Tech Lead 金洋国氏

CIを導入するために知っておきたいこと

 近年、ソフトウェア開発において「テストコードを書くこと」が重要だと提唱されることが多くなった。

 人間はコンピューターとは違い、同じ手順を100%正確に行うことはできない。何度も同じことをしていると、必ず見落としやミスが発生する。それを避けるために、テストコードを書いてテストを実施することが重要なのだ。そして、テストを自動的に実行し続けるために有効な仕組みがCIである。

 では、なぜテストコードを書くだけではなく、CIを行う必要があるのか。その答えは、テストコードがアプリケーションの品質を保証し"続けられる"状態を保つためである。

 「テストはあるけれど実行し忘れた。過去にテストを書いたけれど、いまは動かない状態になっている。テスト結果が環境依存で、ある環境では動くけれど別の環境では動かない。こういった問題を経験したことのある方は多いでしょう。CIを導入することで、これらの問題を防ぐことが可能になります。

 CIはテストを常に自動で実行することで、開発者に環境やテストコードのメンテナンスを強制します。そうすることで、テストの信頼性を高められるのです」

CIの導入により、これらの利点が生まれる
CIの導入により、これらの利点が生まれる

 金氏は次に、CIを導入するにあたって乗り越えるべき問題とその解決策について解説した。CIの導入を妨げる主な要因として「現在、テストコードがまったく書かれていない」という問題がある。これはCIを導入する上で最も厄介な問題である。この状態からCIを始めるには、以下の5ステップに沿って導入を進めるといいそうだ。

  1. 好きなCIツールを選ぶ。おすすめは、メンテナンスの負担が軽いCircleCIのようなクラウド型のCIツール
  2. ソースコードの構文チェックやカバレッジ計測、循環的複雑度のチェック、ドキュメントの自動生成など、テスト以外のさまざまなタスクをCI上で自動化する
  3. CIの実行結果を可視化する
  4. バージョン管理システムの機能を用いて、マージブロックを有効化する
  5. テストを追加していく

 「何もない状態からテストを追加する場合、すでに動いているアプリケーションのユニットテストを書くのはメリットが少ないので、後回しで大丈夫です。代わりに、最も重要なビジネスロジックを検証するテストコードから追加していきましょう。

 このフェーズで注意すべきは、無理は禁物だということです。テストしにくい処理に対して無理にテストコードを書こうとすると、燃え尽きてしまい継続し続けることが困難になります」

次のページ
CDによって何が実現できるのか?

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
【デブサミ2019】セッションレポート 連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11424 2019/03/12 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング