コードに潜む不具合の可能性を確実に検知 金融サービス

コベリティ静的解析ツール活用事例
GMOクリック証券株式会社
コードに潜む不具合の可能性を確実に検知
金融サービスシステムの安定稼働を実現
幅広いインターネット金融サービスの提供で知られる GMO クリック証券。同社では創業以来一貫して、オンライ
ン取引を支えるシステムの企画・開発・保守・運用を自社で行ってきた。そうした中、本番システムにおけるプログ
ラムのある不具合が発覚したことを契機に、同社ではコード静的解析ツールの必要性を痛感。
「Coverity Quality
Advisor」
及び
「Coverity Security Advisor」
を導入した。導入後、ビルドプロセスにツールを組み込んで静的解析を
自動実行するという運用を実践。コードに潜在する不具合の可能性を確実に検知、除去できる体制を整えた。
取引ツールはフロントからバックエンドまで自社で開発
GMOクリック証券株式会社
情報システム部長
津国 貴洋氏
株式取引に加え、FX、バイナリー・オプション、CFD
(差金決
済取引)
など幅広いインターネット金融サービス事業を展開す
るGMOクリック証券。
「誰もがもっと簡単に投資を始めること
ができる環境、もっと楽しく自由に世界中のあらゆる金融商品
を取引できる環境を提供すること」
をミッションに、2006年の
サービス開始以来、業界トップクラスの低廉な取引手数料と顧
客の投資スタイルに合わせた使い勝手の良い取引ツールを武器
に急成長を遂げてきた。
特に取引ツールに関して、同社は強いこだわりを持っている。
創業以来、フロントエンドからバックエンドに至るシステムの
企画・開発・保守・運用まで一貫して自社で行ってきた。取引シス
は、当然のことながら発生の可能性のある問題を網羅的に想定
テムこそが同社ビジネスの生命線であり、その高度な品質を常
し、然るべきテストケースを作成して、実際にテストを重ねるわ
に担保し、顧客がいつでも快適かつ安全に取引を行える環境を
けですが、今回の問題は現実に本番で動かしてみないと分から
維持することが同社開発部隊の最重要の課題となっている。
ない類の不具合でした。つまり、人が想定できる範囲や設定可
ところが2014年の初め頃、同社の本番システムにおいて、想
能なテスト環境には、どうしても限界があるというわけです」
と
定していなかった不具合が見つかった。発生頻度は極めて少な
GMOクリックホールディングスの齋藤愼之介氏は説明する。
かったが、株式や先物オプション、外為などの複数の口座を持つ
こうした人手によるテストケースの作成やテスト環境が抱え
ユーザーが、口座間で資金移動を行おうとすると画面にエラー
る限界の問題を解消するためのアプローチとして、GMOクリッ
が表示されるケースがあったという。
ク証券が検討を開始したのが静的解析ツールの導入だった。同
調査の結果、株式取引システムで用いられているJavaの
社では、以前からオープンソースのJava用静的解析ツールであ
SimpleDateFormatというクラスのスレッドが競合を起こして
るF i n d B u g sを導 入し利 用していたが 、プラグイン 型の
いることが判明。至急、同社では原因となっているコードを改修
FindBugsでプログラムに内在する問題点を発見するには、開発
し、修正版をリリースして問題の解消を図った。
者が自発的にテストケースを用意し、テストをこなしていくの
この一件によりGMOクリック証券は危機感を募らせた。
「問
が前提。問題検知ができるかどうかは、最終的には個々の開発
題が発覚したプログラムは、当社が長年実践してきた開発プロ
者の意識に依存してしまう。
「これに対し、開発者に高い負荷を
セスにのっとり、十分なテストを経て本番リリースされたもの
かけることなく、日々のビルドプロセスの中に組み込む形で、い
でした。つまり、同様の潜在的な不具合が本番システムに存在
わば
“強制的”
に解析を実行できるようなツールが必要だと考え
し得るという可能性を否定できないことになります」
とGMOク
ました」
と津国氏は言う。
リック証券の津国貴洋氏は語る。
そうした折、GMOクリックホールディングスの役員から紹介
こうした困難な問題に対し、GMOクリック証券がとったアプ
されたのが、
「Coverity Software Testing Platform」
にライン
ローチこそ、コベリティ
(日本シノプシス)
が提供する静的解析
アップされる静的解析ツール「Coverity Quality Advisor」
だった。
ツール
「Coverity Quality Advisor」
の導入だった。
かつてGMOクリックホールディングスのある開発プロジェクト
でソフトウエアの品質担保のためのツールを検討していた際に、
テストで見つからない問題を静的解析ツールで発見
コベリティから同製品の提案を受けた経緯があったという。
2014年初めにGMOクリック証券の口座間振替システムにお
早速、GMOクリック証券では、当の株式取引システムチーム
いて発生した問題は、繁忙時間帯などに本番環境でトランザク
の他、FX、バイナリー・オプション、CFDといったサービスを支
ションがラッシュし、膨大な数のスレッドが実行されたことに
えるシステムの各開発チームにもCoverity Quality Advisorのト
起因するスレッド競合だった。
「プログラムのリリースに際して
ライアル版を展開して検証を実施した。
Coverity_GMO.indd 1
2015/04/01 17:58
コベリティ静的解析ツール活用事例
GMOクリック証券株式会社
ビルドプロセスに組み込んで静的解析を自動実行
はレポートとして出力されますが、仮にコードに問題があれば、
約1カ月にわたる各開発チームでの検証の結果は極めて良好
警告メールが開発チームの関係者に即座に送信されるように
だった。
「各チームの担当者からは、ビルドプロセスに組み込ん
なっています」
と齋藤氏は説明する。
で解析を実行できるという利便性に加え、問題についての検知
精度や出力されるレポートの内容、さらには使いこなしに要す
開発者各自のコード品質についての意識が高まる
る学習コストなどの各ポイントについて、いずれも高い評価が
Coverity Quality AdvisorおよびCoverity Security Advisor
得られました」
と津国氏。
「特に単体テストの手戻りが大幅に減
を導入し、開発プロセスに組み込む運用を実践することで、
りそうだ」
というコメントが数多く寄せられたという。
GMOクリック証券では、従来の人手によるテストの実施やテス
また、試しに今回のツール検討に至るそもそもの発端となっ
ト環境にかかわる問題を解消。プログラムに潜在する不具合の
た、スレッド競合の問題を抱えたプログラムの解析を行ったと
可能性を確実に検知し、除去できる体制を整えることができた。
ころ、Coverity Quality Advisorでは確実に不具合発生の可能
例えば、既存コードの改修時に、
Coverity Quality Advisorを実
性を捉えて警告のレポートを発したとのことである。
行することで、修正箇所だけでなく本番稼働の中で特に不具合が
こうした結果を受け、GMOクリック証券では正式にCoverity
発生していない部分についても、潜在的な問題点を洗い出せる。
Quality Advisorの採用を決定。併せて、プログラムが抱えるセ
「新規プログラムを開発する際に、既存プログラムのコードの
キュリティ上の不具合の可能性を解析するツール「Coverity
一部をコピー&ペーストするという対応も時には行われますが、
Security Advisor」
も同時に導入することにした。
そのコードに問題があればCoverity Quality Advisorが的確に
まず同社では、株式取引システムの開発チームにこれらのツー
指摘してくれます」
と齋藤氏は語る。
ルを適用。その具体的な運用方法としては、
当初の予定通り、ビ
Coverity Quality Advisorでは、コードの可読性についての
ルドプロセスにおいてCoverity Quality Advisor、および
指摘も行うため、既存のコードについても、指摘部分を適宜、可
Coverity Security Advisorを自動実行するようにしている。ビ
読性の高いものに修正していくことで、より保守性の高いコー
ルドサーバーにはCI(継続的インテグレーション)ツールの
ドへと整理されつつあるという成果も表れている。
Jenkinsを採用。ソースコードがコミットされたのを検知して
「Coverityのツールの導入によって得られた何よりも大きな
Jenkinsがビルドプロセスを実行する仕組みになっていて、そ
成果だといえるのが、開発者各自のコードの品質についての意
こに両ツールによる静的解析を組み込んでいる。
「解析の結果
識が高まってきていること。単にコーディングフェーズだけで
GMO
クリックホールディングス株式会社
システム部
証券 サブリーダー
齋藤 愼之介氏
はなく、開発プロセス全体を通じた品質問題への対応力の強化
につながっていくものと考えています」
と齋藤氏は強調する。
G M O クリック 証 券 では 、今 後は 他 の 開 発 チーム へも
Coverity Quality Advisor、そしてCoverity Security Advisor
を横展開していくというビジョンも描いている。
「これらのツールを最大限に活用しながら、当社のビジネス
の生命線でもある各取引システムの安定稼働を確実に担保し、
お客様に最高品質の金融サービスを提供していきたいと考え
ています」
と津国氏は力強く語る。今後、テストに同様の課題を
抱える金融機関をはじめとする他の企業でもCoverity Quality
Advisorが利用されるシーンが増えるであろう。
製品無料トライアルをご希望の方は、
http://softwareintegrity.coverity.com/request-a-free-trial-cov-jp.html でお申し込みください。
担当からご連絡させていただきます。
Coverity, Inc.(コベリティ インク)について
コベリティは、静的解析をコア技術とするデベロップメントテストの業界リーダーです。ソフトウェアの開発工程の初期段階で、重大なソフトウェア不具合およびセキュリ
ティの脆弱性を自動的に解析、検出するコベリティの画期的な技術は、ますます複雑化するソフトウェア開発を効率的に行うサポートをしています。コベリティ社の製品は、
何千万行ものコードに対応するだけでなく、フォールスポジティブ率(誤検知率)が非常に低く、100% のパスをカバーしており、すでに 1100 の顧客が導入しています。
おもな顧客には、サムスン、Symantec/VERITAS、日本電気、ACCESS、WindRiver などがあり、コベリティ製品を利用して、ミッションクリティカルなコードのセキュリティ
や品質における不具合を検出し、品質の向上、開発の効率化に役立てています。同社の詳細は、http://www.coverity.com/html_ja/ でご覧ください。
日本シノプシス合同会社 営業本部 コベリティグループ
〒158-0094 東京都世田谷区玉川2-21-1 二子玉川ライズオフィス
TEL:03-6746-3600 E-mail:[email protected]
Website:http://www.coverity.com/html_ja/
Coverity は Synopsys, Inc. の登録商標です。その他の会社名および商品名は各社の商標または登録商標です。
※日経BP社の許可により
「ITpro Active Special」
(2015年3月26日∼6月17日公開)の広告を抜粋し、再編集したものです。無断転載を禁じます。©日経BP社
Coverity_GMO.indd 2
2015/04/01 17:42