「三権分立」で1年に200リリースを達成した楽天トラベル、150人規模のチームで実現できた秘訣とは:DevOps時代のテスト自動化カンファレンス(後編)(2/2 ページ)
2016年12月6日に開催されたセミナー「DevOps時代のテスト自動化カンファレンス〜はやく、いいものを届けよう〜」のレポート第3弾では、楽天トラベルにおけるDevOpsとテスト自動化の取り組みを中心に、最適な開発ライフサイクル実現のヒントを紹介する。
開発ライフサイクルの中にセキュリティ検査を
DevOpsがもたらす効果は、コストを削減しつつコードの品質を高められることだ。ここでいう「品質」には、要件を満たし、バグが少ないことだけではなく、セキュリティの脆弱(ぜいじゃく)性が少ないことも含まれる。
アプリケーションセキュリティ検査ツール「AppScan」を販売してきたテクマトリックスのネットワークセキュリティ事業部 第二技術部 サービスエンジニアリング課 酒井喜彦氏は、「クラウドベースのセキュリティテストで開発スピードと品質を高める〜IBM Application Security on Cloud(ASoC)のご紹介〜」と題する講演において、「DevOpsのうちOpsの段階でセキュリティを考えていては遅い。もっと早い開発段階からセキュリティを考慮すべき」と述べ、開発ライフサイクルにセキュリティ検査を組み込むことの重要性を訴えた。
酒井氏が紹介したPonemon Researchの調査によると、システム構成要素の中で最もセキュリティリスクが存在するのは、ネットワーク層やデータ層ではなくアプリケーション層だという。一方、セキュリティ支出はネットワーク層やデータ層に偏っており、アプリケーション層への投資はまだ少ない。これを踏まえて酒井氏は「アプリケーションセキュリティへの支出が足りないのではないか」と指摘した。
こうした課題への解決策の1つとしてテクマトリックスは、クラウドベースのアプリケーションセキュリティ検査サービス「IBM Application Security on Cloud」(ASoC)を提供している。IBMのクラウド上でAppScanと同等のセキュリティ検査機能を提供するもので、クラウドを活用して手軽にアプリケーションの脆弱性をチェックできる。AppScan同様、ASoCにも、ソースコードの静的解析を行う「Static Analyzer」、テスト用のリクエストを送信してスキャンを実施する「Dynamic Analyzer」、AndroidやiOSで動作するモバイルアプリを検査する「Mobile Analyzer」という3つの診断エンジンがあり、いずれもWebインタフェースから利用可能だ。
ASoCはクラウドベースのサービス故の新たな利点も備えている。検査結果を各チーム、各企業に閉じた形で活用するだけではなく機微な情報を省いた形で、クラウド上で共有し、IBMのコグニティブコンピューティング技術を活用して学習していく。この結果、「見つかった問題が脆弱性かどうか」「実際に影響を与えるかどうか」をより早く、正確に判断できるというわけだ。
酒井氏は、手軽にアプリケーションのセキュリティを検査できる環境を提供し、検査結果をDevとOps、発注元と外注先とで共有することにより「テストフェーズではなく開発ライフサイクルの中にセキュリティを埋め込み、修正のタイミングを前倒しできる。また、『この脆弱性はリスクが高いから至急で対処した』『あの問題はWeb Application Firewall(WAF)で対処できるため、ひとまず様子見でもいい』といった具合にアプリケーションセキュリティを管理し、高度なリスクマネジメントを実現できる」と述べた。
酒井氏は最後に「セキュリティ検査は、回数が多ければいいというものではない。実績あるシステムで検査をしてほしい」と述べ、テクマトリックスではトレーニングやレポートを読み解くサポートなどを提供するアドバンスドサービスを通じて、ASoCの活用を支援していくとした。
モバイルアプリのテスト自動化は、向き不向き・スコープを明確にした上で
企業向けに幅広いITソリューションを開発、提供しているHewlett Packard Enterprise(HPE)は、DevOpsやテストに関しても数多くのツールを提供している。その背景には「DevOpsは、設計、開発からその後の運用、モニタリングまでをカバーし、そこから得られたフィードバックを基に改善していく」という具合に、「ライフサイクル全体をカバーするものでなくてはならない」という考え方があると、日本ヒューレット・パッカード HPソフトウェア事業統括 プリセールス本部 アプリケーションデリバリマネジメント部 シニア・コンサルタント 小宮山晃氏は述べた。
DevOpsに取り組む企業は増えてはいるが、これを推進するには「変更は紙に打ち出し、上司が確認して承認しないといけない」といった、企業や業界における慣習や文化の変革が欠かせないという。また、日本ヒューレット・パッカードが打ち出している「DevOps成熟モデル」に沿って改善を進め、「開発」「運用」ごとにサイロ化された環境を超えてプロセスを標準化するには、経営層の支援が不可欠だとも述べた。
DevOpsにコミットすることで得られる効果は大きい。例えば、分社化によってHPEと別会社になったHPでは、プリンタのファームウェア開発に関して2008年からDevOpsに取り組んできた。ソースコードの量が1000万行、1日当たりのコミット数は400件に上るという大きなプロジェクトでの適用だが、2011年までにコストを5割削減できたという。「HPのように大きな組織でも、DevOpsで成果が出せる例だ」(小宮山氏)
こうした前提条件をクリアしてはじめて、ツールの話が出てくることになる。小宮山氏は、インフラ構築やプロビジョニングを支援する「Codar」、テストマネジメントツールの「Application Lifecycle Management(ALM)」、テスト自動化ツール「Unified Functional Testing(UFT)」、性能テストツールの「LoadRunner」、セキュリティ検査を実施する「Fortity」といった広範なツールを提供し、DevOpsとテスト自動化を支援すると説明した。
中でも、講演タイトルである「モバイルアプリのテストプロセス効率化」の中核となるのが「HPE Mobile Center」だ。UFTや「LeanFT」をはじめとするHPEの製品群や、「Appium」のようなオープンソースソフトウェアと連携し、「モバイルアプリの開発から運用の段階まで幅広くカバーする」(小宮山氏)。必ずしも良好とは限らないネットワーク環境を再現したり、デバイス側のリソース消費を把握したり、さらにはアプリストアに書き込まれたユーザーのコメントをセンチメンタル分析し、フィードバックするといったことも可能という。
こうしたツールの適切な活用によってモバイルアプリのテスト自動化を推進できるが、「全てのテストケースが自動化に向いているわけではないことに注意が必要だ。テスト設計の際にあらかじめ、自動化に向いているものと向いていないものを判断し、どこにフォーカスして自動化するか範囲を決めることで、人は人がやるべきところに集中できる」と小宮山氏。例えば、画像チェックや音声通話、カメラ撮影といった作業が必要な処理は自動テストに不向き。そうした部分は手動でテストし、それ以外の部分の自動化に注力すべきという。
さらに「モバイルアプリといっても、クラウドや他のアプリと連携するものも多い。受け入れテストや結合テストも考慮に入れ、モバイルアプリ単体での自動化ではなく、全体の自動化にフォーカスしてツールを選定すべき」とアドバイスした。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 「ソフトウェア品質向上の”変”2016初夏〜FinTech、IoTを見据えた”テスト自動化の勘所”」セミナーリポート(前編)
ITサービスをリリース・改善するスピードが、ビジネス差別化の要件となっている今、サービス開発の在り方にも変革が求められている。では具体的に、どのような変革が必要なのか? @IT編集部が6月に主催したセミナー「ソフトウェア品質向上の”変”2016初夏」からそのポイントを紹介する。 - JAXA、サイバーエージェントが考える「品質向上」と役立つツール
2015年10月に開催された@IT主催セミナーより、前編となる今回は、JAXA主任研究員の植田泰士氏やサイバーエージェントのチーフクリエイティブディレクターの佐藤洋介氏による品質向上への取り組みに関する講演、品質向上に役立つ考え方やツールを紹介した各講演をお伝えする。 - 「第3のIT」へと変革する時代に考えておきたい「品質」との付き合い方
2015年2月4日に行われた@IT主催セミナーより、JJUG会長鈴木氏による基調講演の模様や、弥生とYahoo!ショッピングの品質向上事例、各品質向上ツールの概要をお届けする。