連載
» 2015年12月08日 05時00分 UPDATE

ソフトウェア品質向上の“変”2015秋(後編):ゴールドマン・サックスが実践する「品質向上」の取り組みと役立つツール (1/2)

2015年10月23日に開催された@IT主催セミナーより、後編ではゴールドマン・サックス・ジャパン・ホールディングスの伊藤博志氏による特別講演の他、品質向上に役立つ考え方やツールを紹介した各講演を紹介する。

[谷崎朋子,@IT]

 2015年10月23日、@IT主催セミナー「ソフトウェア品質向上の“変”2015秋〜今、変革のとき〜」が開催された。ビジネスのスピーディな差別化が強く求められ、DevOpsが今あらためて注目されている中で、開発のスピードと品質をどう両立するか、パフォーマンス、安定性、セキュリティなど、さまざまな意味での品質をどう担保するか、あらゆる視点での講演が行われた。前後編に分けて紹介する。

 前編の「JAXA、サイバーエージェントが考える「品質向上」と役立つツール」では、JAXA主任研究員の植田泰士氏やサイバーエージェントのチーフクリエイティブディレクターの佐藤洋介氏による品質向上への取り組みに関する講演、品質向上に役立つ考え方やツールを紹介した各講演をお伝えした。後編の今回は、ゴールドマン・サックス・ジャパン・ホールディングスの伊藤博志氏による特別講演の他、開発のスピードと品質を両立するさまざまなアプローチと、それを支えるツールを具体的に紹介した各講演を紹介する。

r20_hinsitsu2015aki.jpg

バズワードで終わらせない。品質向上につながる「DevOps」

 「DevOpsがバズワード扱いされる原因を考えた。一つは、開発や運用から業務までがすべからく『エンタープライズ』のコンテキストでひとくくりで語られ、しっくり受け止められないこと。もう一つは、コスト削減というキーワードが製造コストなのかキャッシュアウトなのか分からないまま一人歩きしていることも挙げられる」――セッション「DevOpsはなぜ”バズワード”扱いされちゃうか」で、日本ヒューレット・パッカードの藤井智弘氏は、自身のDevOpsに関する取材記事をきっかけに浮かんだ疑問を、こう分析した。

r20_hinsitu_aki_1.jpg 日本ヒューレット・パッカード ソフトウェア事業統括 シニアコンサルタント 藤井智弘氏

 では、バズワードに終わらせずDevOps導入を成功させるにはどうすればよいのか。ポイントは、ビジネスのコンテキストを含めたデザイン全体の中で、長期ロードマップを通して見極めていくことだと藤井氏は述べる。

 ヒューレット・パッカードでは、DevOpsへの継続的な取り組みを推進するために、「継続的インテグレーション(CI)とテスト」「継続的デリバリとデプロイメント」「継続的モニタリングとオペレーション」「継続的プランニングとアセスメント」の四つのイニシアティブを定め、ソリューションを提供している。それぞれ、市場投下までの時間の短縮、協調と首尾一貫した可視性、予測性の向上とコストの削減、ユーザー体験とビジネスサービスの改善を実現する。

 コアとなる前者二つでは、テスト用ビルド、機能とパフォーマンステストの自動化、仮想化環境でのサービスのエミュレーションなどを含むテスト環境の構築と実施が当てはまる。そして、サポートイニシアティブとなる後者二つでは、不具合を認識・分析するためのデータ収集やユーザーエクスペリエンスの最適化、テストへのフィードバックや変更管理、分析の継続などが該当する。

 ヒューレット・パッカードでは、「HP DevOpsトランスフォーメーションワークショップ」を実施している。同ワークショップでは、DevOpsのモデルやベストプラクティス、同社のソリューションやサポート、DevOpsの体系化、将来的なロードマップまで、DevOpsを企業全体の取り組みに据えて、継続的に実施できる体制作りを支援する。

 「ヒューレット・パッカードでも組織的にDevOpsを支援するための体制が整ってきた。あらゆるプロセスで活用できるツールも用意しているので、ぜひ相談してほしい」(藤井氏)

ソースコード静的解析ツールはSLA指標の構築にも役立つ

 パートナーやオフショアによる実装、オープンソースソフトウエア(OSS)の活用など、ソフトウエアのサプライチェーンは日々複雑化しており、全体で見たときのソフトウエアの品質やセキュリティレベルはますます見えなくなった。そのため、開発段階のソースコードレベルで不具合やセキュリティの脆弱性を解析、洗い出すことは、より一層重要になっている。

 ソースコード解析は、大きく動的解析と静的解析があるが、静的解析は誤検出が多いという課題があった。だが、これはコーディング規約をチェックする場合であって、「ランタイムエラー検出であればバグ自体を検出でき、これまで動的解析でしか確認できなかったメモリリークやデータ破壊、データ競合、セキュリティ問題なども検出できる」と、日本シノプシスの雨宮吉秀氏はセッション「テストを変える。新しいソフトウェアテストへのアプローチ」で述べる。

r20_hinsitu_aki_3.jpg 日本シノプシス 営業本部 ソフトウェアインテグリティグループ シニアマネージャー 雨宮吉秀氏

 ソースコード静的解析ソリューション「Coverity」は、コールされたメソッドの内部コードまで解析。また、開発者の意図を学びながら不具合を検出する統計解析を実行することで、誤検知率10%を実現する。「例えば、似たような処理でコードを使い回すことがあるが、変数名の書き換えを忘れてコピー&ペーストしてしまうことがある。こうしたミスは、例外が発生しなければ見つからず、テストで検出されにくい。しかし、Coverityであれば変数の使われ方を見て検出してくれる」(雨宮氏)

 また、同製品で測定可能なメトリクスを品質の目標値とし、不具合や脆弱性の密度をコンポーネントごとに計測して品質をコントロールすることも可能だという。

 同社製品を導入したイギリスの保険会社AVIVAは、社内やオフショア、OEMでサービス開発していたが、品質の指標もチェックプロセスもなく、品質はばらつき、50%の不具合をユーザーアクセプタンステストで発見される事態になっていた。Coverityを導入し、14カ月の展開でおよそ300万行のコードを解析。約3000件の不具合を発見した同社は、解析データを基にオフショア先とSLA(Service Level Agreement)を締結。品質を下げることなく、より短期でのリリースを実現した。

 「コーディング段階で分かる不具合はテストフェーズに持ち越さず、コードの品質指標を定義して管理し、リスクの高いコードを明確にしてテストする」。それがソフトウエア品質の向上につながると雨宮氏はまとめた。

       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。