事例

オージス総研のソフトウェア品質管理ソリューション

連載第1回
金融業界のシステムご担当者様

バグそのものや脆弱性などクリティカルな問題が検出できる

指摘が多すぎて使いにくいという従来の静的解析ツールのイメージが変わる

[従来]
・コーディング規約違反の検出   
・誤検知が多い
・局所的な解析
[Coverity]
→ バグそのものや脆弱性の検出
→ 誤検知が圧倒的に少ない
→ 全パス解析





バグそのものの検出は、他の静的解析ツールと比してCoverityが得意とするところですが、金融の開発現場での具体的な事例を、プロジェクトマネジャーの声からご紹介したいと思います。

金融系のシステム開発プロジェクトに携わるプロジェクトマネジャーは、「コピー&ペーストエラーの検出」が興味深かったと語っています。お客様側の開発責任者の方からもこの検出について好評価をいただいています。

「コピー&ペーストエラー」はコーダーが既存のロジックをコピーし、使用している変数を差し替えて完成させようとした場合の変数の差し換え漏れなどを検出するCoverityの独自技術のひとつです。

「これは、これまでに使用した静的解析ツールでは検出されないものです。実際に、類似のコードをコピーして活用することはままあるので、このような変数の書き換え漏れなどが検出されるのは有難い。」とプロジェクトマネジャーは語っています。

機能テストや単体テストではみつけにくく、一般的な静的解析ツールでは検出が難しいエラーとして、リソースリークやマルチスレッドで発生するエラーがあります。


リソースリークに関しては「稼働させていたら一週間後に発生した」など時間が経過する中で発見されることが多く、機能テストや単体テストでは検出するのが難しいという課題がありました。また、マルチスレッド処理で発生するバグも典型例です。例えば、Webシステムはマルチスレッド・プログラムで実装されることが多いですが、複数のスレッドが静的に定義した変数に同時にアクセスすることにより起こり得るエラーなどは、機能テストや単体テストの段階ではやはり検出するのが難しいバグです。

「『リソースリークやマルチスレッドエラー』は、従来の静的解析ツールでは検出できない類のバグなので、ここでもCoverityを使う価値があると思っています。また、従来の静的解析ツールでは実際にバグにはならないものも含めて大量の警告が出るため、警告を分類することにも工数がかかり、なかなか工数削減や実際のバグ対策にはつながらない側面がありました。Coverityはバグを重要度別に表示する機能もありますので、余計な警告が出ない点が特に実運用に向いていると思います。」

「レポートの結果が、ソースコード上でビジュアルに色分けされて表示される点が使い易いです。お客様の開発責任者の方から評価が高かった機能でもあります。UIの使い易さも修正のスピードアップを支えていると思います。」

いかがでしたでしょうか。
次頁では「フェーズ移行の基準が厳格な金融システム開発だからこそ、フェーズ内でバグを取りきる」と題して、バグの取りこぼしが許されない現場での活用価値をお伝えします。

関連サービス