PR
 米Parasoft社の営業部門担当の副社長であるThomas Chen氏が来日し,本誌記者のインタビューに応じた。Parasoftは,ソフトウェアのテスト支援ツールを数多く擁するメーカだ。ソース・コードを解析してエラーを検出したり,自動的にテストを実行するツールなどを揃える。
 現在力を入れているのは,テスト用のプログラムを自動的に生成,実行し,エラーがあった個所を教えてくれる自動テスト・ツールだ。C++版の「C++Test」,Java版の「Jtest」の2種類がある。このほか,SOAPのテスト・ツールである「SOAPtest」の発売も予定されている。日本では,2002年6月26日から開催されるソフトウエア開発環境展に出展されるのがお披露目となる。Jtestを中心に,今後の同社の製品展開について聞いた。

Q Jtestはどんなツールか。
A Jtestは,Javaで開発したプログラムのテストを自動化するツールだ。まず,正常な動作が実現できているかを調べるプログラムであるテスト・ケースを作る。これを実行させて,エラーを発見する。すべてが自動化されているので,プログラマが自分のプログラムをテストする手間を削減できる。

Q テストを自動化するツールなら,「JUnit」というフリー・ソフトがある。それで同じことができるのではないか。
A JUnitを使えば,Javaプログラムのテストにかかる時間を大幅に削減できる。しかし,JUnitはJtestのような「自動的なツール」ではない。テスト・ケースを自分で作らなければならないからだ。
 Jtestの特徴は,テスト・ケースを自動的に作成することにある。Jtestでできるテストには,プログラムのスペックのテストであるブラックボックス・テストと,プログラムの構造のテストであるホワイトボックス・テストがある。Jtestを使えば,ホワイトボックス・テスト用のテスト・ケースを自動生成する。自動生成で,最低でも60%のテストをカバーできる。もちろん,足りないテストは自分で作ることもできる。
 JUnitのユーザならば,Jtestの良さがよりわかるだろう。JtestはJUnitを包括するツールだ。しかもJUnitで作ったテスト・ケースは,一切変更することなくJtestでも使える。

Q テスト・ケースを自動生成する機能は,今話題の開発方法である,ExtremeProgramming(XP)に有効だと思うが。またXPについてどう考えているか。
A その通りだ。XPではまずclassを作り,コンパイルをし,テストをする。これが終わって初めて,次のclassの作成に移る。この流れを実現するために,Jtestは大変便利であると思う。

Q JtestはWindowsXPには対応していないようだが,対応するのか。また,日本語のLinux/Solaris版の発売予定はあるか。
A XPについては時期は未定だ。OSについては,我々はシェアの多さで対応するものを決めている。そのため,Windowsを先にリリースした。それら以外の対応は未定だ。ただLinuxは,これからもっと存在感を増すOSであると思っている。

Q Javaにはない,Cで書かれたプログラムの問題点として,バッファ・オーバフローがある。これがセキュリティ上のぜい弱性となる場合も多い。C++のエラー検出ツール「Insure++」は,このような問題も完全に発見できるのか。
A 我々はセキュリティ上のぜい弱性を検出する目的でツールを作っているわけではない。メモリ関連のエラーを完全に自動的に見つけることはできない。しかし,コードのレベルで問題を持っているものは,我々のツールで警告が出る。これはぜい弱性の改善に大いに役立つと考えている。その証拠にアメリカでは,国家安全保障局などの防衛関連機関やNASAなど,高いセキュリティ・レベルが要求されるところで我々の製品が使われている。

Q 今後の製品展開は。
A これまでParasoftは開発者向けのツール会社としてやってきた。これからは,エンタプライズ・ソリューションを提供できる企業へと転換する。具体的には,Webサービスのニーズの高まりなどに応じていくつもりだ。例えば,データベースやSOAPを使ったテストも自動的にできるようなものだ。また開発だけでなく,運用時にも活用できるようにしていく。C++やJavaだけでなく,ASPやJSPを使った,Webサイトをテストできるようなツールだ。

(八木 玲子=日経バイト)