pr

 @IT情報マネジメント編集部主催の『ソフトウェアテスト・ミーティング2008〜なぜわたしたちは「早め」にできないのか?〜』が、2008年7月17日に東京・ベルサール神田で開催された。

 ソフトウェアテストにかかわる間違った常識から脱却し、ソフトウェアの品質をさらに向上させるにはどうしたらよいのか。本セミナーでは、「早めの対応」をキーワードに、各社のセッションを通じて、その理由と方法を明らかにした。

 基調講演では、NARAコンサルティングの奈良隆正氏が、『体験的ソフトウェアテスト論――「早め」に始めることの重要性』をテーマに、ソフトウェア開発において「設計」と「テスト」は両輪であり、ソフトウェア開発の生産性を上げるためにはテスト環境の改善が必要と指摘。代表的なテスト手法として「V字モデル」「ダブルVモデル」「V&V」「Wモデル」を紹介し、ソフトウェアテスト戦略/計画の早期立案、早期実施の重要性を訴えた。

 基調講演後は、各社のセッションが行われ、さまざまな角度から「早め」のソフトウェアテスト、さらにはソフトウェア品質向上へのアプローチなどが紹介された。ここでは、コベリティ、テクマトリックス、日本ヒューレット・パッカードの3セッションの内容をレポートする。

   
 セッション1:コベリティ 日本支社
 『早期に品質を作り込むために、開発者ができること
        〜開発の初期段間での品質向上事例〜』

 コベリティは、ソースコード静的解析ツール「Prevent」を主力に展開しており、現在450社以上の企業に採用され、10億行を超えるコード解析をしてきた実績を持つ。

コベリティ 日本支社 アジアパシフィック マネージングディレクターのリッチ・セルート氏

 コベリティ 日本支社 アジアパシフィック マネージングディレクターのリッチ・セルート氏は、「当社のミッションは、ソースコードに含まれている重大なバグやセキュリティ上の脆弱性を検出すること。特に、なるべく早い段階でバグを発見することがコスト削減につながると考えている」と解説。

 ソースコード静的解析ツール、Preventでは「ソフトウェアに生じる欠陥の根本的な原因を早期に正確に特定し、開発プロセスのコーディング段階で静的解析することで、危険な不具合がフィールド環境で検出されることを防ぐことができる」という。

 また、同社では新製品として、並列処理向けの不具合を検証するために動的解析手法を採用したツール「Thread Analyzer for Java」をリリース。これにより、従来の方法では検出できない、非常に危険な不具合を検知可能となった。

コベリティ 日本支社 アプリケーションズ エンジニアリング マネージャーの高石勇氏

 セッションでは、同社アプリケーションズ エンジニアリング マネージャーの高石勇氏により、「Prevent」を用いてオープンソースコードを解析するデモが行われ、さまざまなパスの解析やプロシージャ間解析など、詳細かつ正確な解析が可能な「Prevent」の特徴が紹介された。

 製品デモ終了後は、実際に「Prevent」を使用してソフトウェアに品質を向上し、開発コストを改善した事例として、ACCESSとシンプレクス・テクノロジーの2社が紹介された。

 ACCESSは、携帯端末および情報家電向けブラウザ「NetFront Browser」を提供し、ディファクトスタンダードの地位を確立している。  「Prevent」の導入経緯について、ACCESS開発支援室基盤課 主任の川瀬明氏は、「製品のさらなる品質向上を図るとともに、一定の品質基準を保つために、新たな静的開発ツールの導入を検討した結果、誤検知率の低さ、解析範囲、解析レポートの3点を評価してPreventの採用を決めた」としている。

 導入効果については、バグの誤検知率が10%以下に軽減、開発の初期段階でバグ検出が可能、レポーティング機能により解析結果の精査にかかる時間が大幅軽減、バグの調査作業時間が約5分の1に短縮などを挙げており、投資した以上のコスト削減を実現したという。今後は、「Prevent」での解析対象プロジェクトの拡大を検討しており、高品質な製品の品質向上を目指していく方針。

 シンプレクス・テクノロジーは、金融システムに特化したソリューションを展開し、コンサルから受託開発、パッケージ提供、運用・保守まで幅広いサービスを提供している。

 シンプレクス・テクノロジー 金融フロンティアグループ バイスプレジデントの五十嵐博氏は、「当社では、株式トレーディングシステムおよびアルゴリズムトレーディングシステムの4つのプロジェクトにおいてPreventを適用しており、毎晩自動的にPrevent解析を実施し、解析結果を各担当者がWebブラウザで確認し、対応している」という。

 同社では、「Prevent」の導入によって、テストだけでは発見されにくい障害を早期発見することが可能となり、さらなる高品質化を実現。また、テスト工程において、不具合解析、修正の確認だけでなく、顧客の要件・仕様が実現されているかなど、ユーザビリティの確認に集中することが可能になった。今後は、「Prevent」をリアルタイムトレーディングツールや高速通信ミドルウェア、外国為替オークションシステムへ適用する予定。さらに、「Thread Analyzer for Java」を株式トレーディングシステムへ適用することも検討している。  

本セッションで取り上げた製品に関連した資料をダウンロードしていただけます。
以下の画像をクリックしてください。
お問い合わせ先:japan_sales@coverity.com

   
 セッション2:テクマトリックス
 『単体テストの質と効率:「早め」の実践で手戻りを防ぐ』

 一般的にソフトウェア開発のプロセスは、コーディングから単体テスト、そして結合テスト、システムテスト、プロダクションテストを経て製品リリースに至る。テクマトリックスはこのプロセスにおいて、Parasoft社が提唱するソフトウェアの欠陥を未然に防止する“ADP:Automated Defect Prevention”をコンセプトにした、「品質向上ソリューション」を提供している。

 同社システムエンジニアリング事業部ソフトウェアエンジニアリング技術部ソフトウェアエンジニアリング技術課の今井敦氏は、「ソフトウェア開発のプロセスで、バグの混入率が最も高いのは初期のコーディング段階。しかし、バグの発見率は、システムテストなど製品リリースに近づくほど高まり、発見が遅れれば遅れるほど、バグの修正コストは、何倍にもふくれあがる。そのため、コーディング段階でなるべくバグ混入率を削減するとともに、単体テストでのバグ発見率を高める取り組みが重要になる」と、ソフトウェアの欠陥を早期に検出することの大切さを訴える。

テクマトリックス システムエンジニアリング事業部ソフトウェアエンジニアリング技術部ソフトウェアエンジニアリング技術課の今井敦氏

 そして、早期のバグ検出に対応するための重点ポイントとして、(1)コーディング規約、(2)単体テスト、(3)ソースコードレビュー──の3点を挙げ、これらをテスト戦略の中に組み込んで、誰でも簡単に実施できる環境を実現するツールとして「品質向上ソリューション」をアピールした。

 「品質向上ソリューション」は、開発言語ごとに、Java向けの「Parasoft Jtest」、C言語およびC++向けの「Parasoft C++test」、C♯やManaged C++、Visual Basic向けの「Parasoft .TEST」の3製品をラインアップしている。  各製品とも、バグの早期検出を実現する3つの重点ポイントをカバーする機能を備えており、「コーディング規約」としては、カテゴリごとに分けられた数百のルールセットを搭載している。また、いままではツールで検出することができなかったオリジナルのコーディング規約を新規に作成できる「RuleWizard」機能も備えており、組込のルールをカスタマイズすることができる。

 「単体テスト」については、テストケースを自動生成して実行する機能や実行時カバレッジの計測機能、スタブの自動生成/カスタマイズ性、回帰テストの実行、コマンドラインインターフェイスなどを提供。さらに、ブラックボックステストで複数のデータパターンをテストする場合に効果的な、テストケースのパラメータ化にも対応する。

 「コードレビュー」では、開発者やレビューアの場所、時間を限定しない効率的な運用を実現。コミット前のレビューでは、開発者がレビューして欲しい部分を依頼することができ、コミット後のレビューでは、レビューアがレビューすべき部分を選択できるとともに、レビュー時の指摘結果を確認することが可能となっている。

 さらに「品質向上ソリューション」は、この3つの重点機能に加え、「バグ探偵」機能を備えているのも特徴だ。これは、プログラムを実行することなくデータの流れを解析し、コーディング段階で問題を検出する機能。実行事例外やセキュリティ脆弱性につながる実行パスを検出することで、後工程からの手戻りを防止できる。また、テストコードが存在しないレガシーコードにも有効となっている。

 最後に今井氏は、「これらの機能は、早期でのバグ検出のために非常に役立つベストプラクティスといえるが、実際に運用できなければ意味がない」と指摘し、「品質向上ソリューション」の活用事例として、「静的解析・バグ探偵検証の自動化」、「開発者による単体テストの実施」、「コミット後のソースコードレビュー」の3つの運用例を紹介した。

本セッションで取り上げた製品の詳細な資料をダウンロードしていただけます。
以下の画像をクリックしてください。
お問い合わせ先:parasoft-info@techmatrix.co.jp

   
 セッション3:日本ヒューレット・パッカード
 「プロジェクトコストを最適化する品質管理のアプローチ」

 日本ヒューレット・パッカードは、ソフトウェア開発のプロジェクトコスト最適化に向けて品質管理にフォーカスした取り組みを行っている。

 同社ソフトウェア事業本部の岡崎義明氏は、「ソフトウェア開発において、品質、コスト、納期はトレードオフの関係にある。そして、これら3つの要素の中で、IT関連部門が唯一コントロールできるのが品質。当社では、単に品質を向上するのではなく、納期とコストのバランスを考えて、開発の初期段階で計画的に品質の着地点を決めて、その計画をチェックしていくことが重要だと考えている」と説明する。

 この考えに基づいた品質管理へのアプローチとして、同社が提唱しているのが「HP Quality Model」。具体的には、(1)品質基準とそれを実現するプロセスを確立するために、テストプロセスを標準化し、リスクに応じてテスト戦略を立案、(2)品質基準を効率的に実現するために、テスト工程を統合的に管理し、テストの自動化を図る、(3)品質基準の達成を確認するために、品質レベルを可視化する──ことでソフトウェア開発の品質管理を実現するアプローチだ。

 「ソフトウェア開発の不具合の70%は要件定義や設計の段階で発生している。しかし、そのほとんどがユーザーテストの段階まで検出できていないのが現状。この背景には、要件定義に関する不具合は、プログラマやテスターの努力だけで検出することは難しいという要因がある。これに対しては、初期段階でビジネス要件まで組み込んだテストプロセスを作り、ビジネスインパクトを中心としたテスト戦略により、品質管理を進めていく必要がある」(岡崎氏)としている。

日本ヒューレット・パッカード ソフトウェア事業本部の 岡崎義明氏

 そして、同社では、こうした品質管理への取り組みを支えるソリューション製品群として「HP Quality Center」をラインアップしている。その中で、テストプロセスを管理する役割を担う製品が「HP TestDirector Software」。要件管理からテスト計画、テスト実行、不具合管理まで、テストプロセスを統合的に管理できるテスト管理ソリューションとなっている。

 また、テストを効率化する製品として提供しているのが「HP QuickTest Professional Software」。ソフトウェアのブラックボックステストを自動化するソリューションで、スクリプトをテスト資産として再利用でき、常に同じレベルのテストが実行可能となる。これにより、アプリケーションの品質向上を図れるほか、テストの効率化とテスト期間の短縮を実現する。

 セッションの最後には、アプリケーションを開発、テストするというフェイズを超えて、アプリケーションのライフサイクル全般を通じて品質を管理するという、同社の新たな品質管理へのアプローチが紹介された。

 岡崎氏は、「これからのアプリケーションの品質管理を考えた場合、企画段階から設計・開発、さらには運用に至るまで、アプリケーションのライフサイクルすべてをカバーすることが重要になると考えている。

 特に運用段階において、本番環境でもセキュリティは確保できているのか、ビジネス対して十分なパフォーマンスと可用性を提供できているのかなどを管理し、不具合などの要求を確実に開発側に反映できるプロセスを作っていく必要がある」とし、今後、アプリケーションライフサイクルを通じた品質管理プロセスを提唱していく考えを示した。

本セッションで取り上げた製品の詳細な資料をダウンロードしていただけます。
以下の画像をクリックしてください。

 

提供:コベリティ日本支社
テクマトリックス株式会社
日本ヒューレット・パッカード株式会社

企画:アイティメディア 営業本部
制作:@IT情報マネジメント 編集部
掲載内容有効期限:2008年8月31日

イベントリポート インデックス
『早期に品質を作り込むために、開発者ができること〜開発の初期段間での品質向上事例〜』
――コベリティ日本支社
『単体テストの質と効率:「早め」の実践で手戻りを防ぐ』
――テクマトリックス株式会社
「プロジェクトコストを最適化する品質管理のアプローチ」』
――日本ヒューレット・パッカード株式会社
   

スポンサーリンク

マイクロソフトセミナーレポート:
「Visual Studio」で実現する、 効率的なチーム開発

ホワイトペーパーダウンロード

 マルチコアの出現で開発の複雑性は増し、エンタープライズ系ソフトウェアでも競合状態やデッドロックなど重大な並列処理欠陥が多発している。開発の初期段階で静的解析を用い、その種の不具合をどう解決できるのか? シンプレクス・テクノロジーの事例とともに説明する。



 常に変更されるソースコード。品質を保つには、コード全体への影響を日々確認しなければならない。単体レベルでの回帰テストをバッチで実施するストラテジを解説する。



 ソフトウェア品質の管理とは、コストや納期のバランスを考えながら最適な品質を実現することを意味する。しかし、実際の開発における品質管理というと、何をどうすればよいのか分からないという人も多いのではないだろうか。