[画像のクリックで拡大表示]

 米ParasoftのJava用テスト・ツール「Jtest」は,コーディング・ルールのチェック機能や,単体テスト・ケースの生成機能などを備える。最新版「Jtest8.0」を紹介するプライベート・セミナー(主催はテクマトリックス)に合わせて来日した,同社のChairman/CEOであるAdam Kolawa氏に,8.0の新機能やJtestを使ったセキュリティ対策を聞いた。(聞き手は,森山 徹=日経SYSTEMS)

---Jtest8.0の新機能の目玉は何か
 今回の8.0は,歴代のバージョンの中で最も大きなエンハンスを加えている。数多い新機能の中から,「バグ・ディテクティブ」を紹介したい。Jtestには大きく,ソースコードの静的解析と単体テスト・ケースの作成という二つの機能がある。これまで静的解析は,600超のルールとソースコードをパターン・マッチングする機能を提供してきた。バグ・ディテクティブは,Javaのクラスやパッケージにまたがる実行パスを解析して,不具合を検出する機能だ。これを使えば,“Null Pointer Exception”といった,パターン・マッチングでは見つからなかった問題が検出できる。

---テスト・ケース作成機能の強化はどうか
 SOAtestと呼ぶ製品と,Jtestを連携できるようにした。これにより,Webサービス経由でアプリケーションを起動し,その挙動をトレースしてテスト・ケースが自動生成できる。これは,Parasoftだけが提供している機能だと思う。Webサービスの利用は,日本ではこれからだと聞くが,今後必要性が高まってくる機能だろう。
 Jtest8.0は,9月12日に日米で同時リリースする予定だ。同時リリースは今回が初めて。これまでのバージョンは,米国から半年ぐらい遅れて日本でリリースしてきた。しかし日本でJtestの利用が進んできたので,もう,そんなに待たせられないという判断だ。

---Jtestでセキュリティが強化できるのか
 アプリケーションのセキュリティを高めるために,Jtestが役に立てる。アプリケーションが脆弱なのは,ソースコードの実装に問題があるからと考えている。SQLインジェクションなどが典型例だろう。セキュリティ上問題があるコードを,Jtestの静的解析機能で洗い出して,適切なコードに書き直す必要がある。そのために,まずセキュリティ・ポリシーをしっかり持つことが大切だ。ポリシーを決めた上で,それを実現するコードを書き,それがきちんと実装されているか検証するというプロセスを踏まなければならない。
 セキュリティ侵害は,ハッカーだけでなく,社内の正当な利用者によっても引き起こされる。例えば,データベースへの侵入に対しては,アクセス回数を制限することが対策となる。その場合,アクセス回数をカウントするカウンタを設けるだろう。カウンタをコーディングし,そのカウンタがきちんと実装されているかをパターン・マッチングで検証する必要がある。

---セキュリティ強化のポイントは何か
 先ほど説明したプロセスをユーザー自らができるようになることだ。我々は,セキュリティ・ポリシーの書き方やコードの検証方法などについて,トレーニングを提供している。セキュリティ要件を確認するプロセスは一回やって終わり,というわけにはいかない。ユーザー自らが反復可能になることが重要だ。パターンやテスト・ケースを蓄積して反復検証できることは,Jtestの大きな特徴でもある。