「ソフトウェアテストセミナー」レポート

セッション3 アプリケーション・ライフサイクルにおける「パフォーマンス」「セキュリティ」品質向上アプローチ

セッション3は, ⁠株)サムライズの富田誠氏と藤井義隆氏による「アプリケーション・ライフサイクルにおける『パフォーマンス』⁠セキュリティ』の品質向上アプローチ」と題する講演です。前半は富田氏の「J2EEアプリケーションにおけるパフォーマンステスト」, 後半は藤井氏の「アプリケーションライフサイクルと脆弱性対策」がテーマでした。

J2EEアプリケーションにおけるパフォーマンステスト(富田氏)

性能テストの現状

実施すべき性能関連のテストは, 負荷テスト・ストレステスト・ソークテスト・ランニングテストの4種類に大きく分類できます。管理レベルを下位からネットワーク管理・OS死活管理・プロセス管理・アプリケーション管理の4レベルに分類すると, 実際に管理できているのはネットワーク管理からプロセス管理までに過ぎず, 性能問題で原因となるアプリケーション管理レベルは見えない情報であり管理できていないのが実情です。

またテスト工程の現状を見ると, テストシナリオの単純さや目標値の曖昧さ, 診断レベルなどに問題があり, パフォーマンスの状況がわかっても, どこから改善すればよいのかよくわからないという状況にあります。

テスト自体に工数を要する上にログの出力・解析にもかなりの時間と労力がかかり, 解析自体も大変なのが現実です。このため, きちんとテストしようとしても人的・時間的コストが膨大になってしまうのです。

富田誠氏(Photo:蝦名悟)
富田誠氏(Photo:蝦名悟)

Introscopeの導入で課題解決

当社のユーザーにも, このような問題を抱えていた事例があります。

この事例ではCOBOLで構築しホストで稼働中の業務システムをJ2EEのアプリケーション上にリプレースしようとしたところ, 稼働している機能が多く全てを再設計する余裕がない, システムが停止すると業務全体に支障を来すという問題に直面しました。またテスト工程に関してもさまざまな課題が浮かび上がりました。

そこで, 当社取扱い製品である「CA Willy Introscope」を導入したところ, これらの問題が解決したのです。IntroscopeにはJavaや.NETのソースを変更せずにメソッドの平均応答時間や最小/最大応答時間, 実行回数を取得できる, 取得したデータをリアルタイムでグラフ化でき蓄積も可能などといった特長があります。これにより分析・報告の時間の短縮, 既存の監視プロセスに大きなインパクトを与えない導入, 障害の予兆発見, 回避手段の検討, リソース増強スケジュールへの反映が実現しました。テストは問題が無くても繰り返すことが重要であり, Introscopeにより繰り返しが容易になりました。

まとめ

Itroscopeによりテスト結果が数値化により結果がわかりやすくなり, 細かい性能評価により手戻りが減少し問題箇所の絞り込みが容易になります。またリソースの拡張計画を立てやすくなるとともに, アプリケーションの動作を可視化して事前に運用による対策を立てることができるのです。

アプリケーションライフサイクルと脆弱性対策(藤井氏)

侵入を前提とした構築が不可欠

周知の通りアプリケーションの脆弱性を利用する事件や事故は増加する一方ですが, 完全な防御は残念ながら難しいと言わざるを得ません。このため, 侵入されることを前提としたアプリケーション開発やシステム全体の構築が不可欠なのです。

セキュリティ対策としてセキュアなアプリケーションの構築が求められ, セキュリティ要件を機能要件と同様に計画し実施していくことが必要です。しかし, チェックが部分的になったり負担が過大になるといった物理的な限界とのトレードオフが発生しがちです。

藤井義隆氏(Photo:蝦名悟)
藤井義隆氏(Photo:蝦名悟)

多言語対応ソース解析ツール FORTIFY SCA

このようなセキュアアプリケーションの開発における時間や人的リソースなどへの負担増は, ツールにより削減可能です。

当社では, アプリケーションの脆弱性についてセキュリティの観点からソースコードを解析するツール「FORTIFY SCA」を提供しています。

FORTIFYはソースコードを分析して脆弱性に関する問題点を発見・可視化するツールであり, C/C++やJAVAからPHPやJava Scriptまで多彩な言語に対応し, 対応プラットフォームも多様です。複数の言語が混在するシステムの一括分析も可能であり, 問題の原因/概要/推奨情報を提供します。また最新のセキュリティノウハウを研究・調査し反映させています。

FORTIFYの導入により, ソースコードの検収時やリリース直前のセキュリティテストなどで発生する大量の手戻りを削減可能であり, またルールの更新によりリリース後も最新の動向に合わせた解析を継続できます。当社ユーザーの開発ベンダーでの実例を挙げると, 手戻り工数が6分の1, 修正時間が2分の1, 脆弱箇所に関するレビュー工数が5分の2に, それぞれ減少しました。

まとめ

開発期間の短縮に反して機能要件が複雑化する中, 性能やセキュリティなどの非機能要件も同様に重要な要素として扱われる必要性が高まっています。その対処はプロジェクトにとって非常に負担となっていますが, FORTIFYはこのような負担を大きく軽減可能なツールといえます。

おすすめ記事

記事・ニュース一覧