Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

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

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

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2019/03/12 12:00

 アプリケーションの品質向上やリリース作業の負荷軽減のため、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. テストを追加していく

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

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


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

著者プロフィール

バックナンバー

連載:【デブサミ2019】セッションレポート

もっと読む

All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5