このセクションでは、静的解析違反を分析して修正する方法について説明します。
このセクションの内容:
結果の参照
結果には、GUI のさまざまな場所から、あるいはコマンドライン レポートからアクセスできます。
GUI からテストを実行した場合、テスト結果は [品質タスク] ビューにレポートされます。
テストしたソース ファイルをエディターで開くと、静的解析ルールに違反するソース コードの行がマーカーで示されます。マーカーをマウス オーバーすると、静的解析ルールや他の情報がポップアップ ウィンドウに表示されます。また、問題の原因のソース コードを右クリックして [Parasoft] > [タスクの表示] を選択することで、[品質タスク] ビューで違反メッセージを確認できます。
コマンドライン インターフェイスから実行された静的解析の場合、違反はレポートの [Static Analysis] セクションに表示されます。違反を Team Server または DTP に送った場合、「GUI への結果のインポート」で説明するように、GUI に違反をインポートできます。違反は [品質タスク] ビューに表示されます。
静的解析エラーは、機能テストの失敗の基準ではありません。たとえば、Browser Playback ツールまたは Scanning ツールを含む Web シナリオに対して静的解析を実行できる場合、テストは正常に実行されるかもしれません。しかし、参照されるページで静的エラーが発見された場合、テストは成功し、静的解析エラーは [品質タスク] ビューに表示されます。
GUI でのテスト実行の結果
[テスト進捗] ビュー
[テスト進捗] ビュー には、テストの進捗とステータスがレポートされます。
以下の点に注意してください。
- テストを実行すると、ビューのラベルが「テスト進捗」から「テストしています:<テスト コンフィギュレーション名>」に変わります。
- [タスクのレビュー] ボタンをクリックすると、結果が [品質タスク] ビューに表示されます。
- 各解析カテゴリの結果サマリーは、展開できるセクションに表示されます。
- [テスト進捗] ビューの右上のツールバー ボタンを使用すると、レポートを生成できます。
[レポート] ダイアログが開き、レポートの設定を行うことができます。
[品質タスク] ビュー
「インタラクティブなテスト中に生成された」または「コマンドライン テストからインポートされた」自分の割当の品質タスクは、[品質タスク] ビューに表示されます。このビューが表示されていない場合、 [Parasoft] メニューの [ビューの表示] > [品質タスク] をクリックします。さらに詳細を確認するには、[品質] ビューのツリーを展開します。このビューにレポートされた項目を切り替えるには、ビューのツールバーの矢印ボタンを使用します。
結果はタスク リストとして表示され、テストとコードの実装をどのように進めるかをユーザーが判断するのに役立ちます。タスクは、作成者、カテゴリ、重要度 (割り当てられている場合) によってまとめられます。重要度レベルは、レベル 1 からレベル 5 までの 5 段階あります。レベル1 が最も違反の深刻度が高いレベルです。重大なバグを排除したり防止できる確率が最も高いといえます。
タスクは、Parasoft ツールの機能によって異なるカテゴリに分類されます。カテゴリの詳細については、ご使用の Parasoft ツールのドキュメントを参照してください。
ソース コード マーカー
ソース ファイルに対して実行されたテストの場合、結果はソース コード レベルでもレポートされます。
テストしたソース ファイルをエディターで開いた場合、発見された問題の原因であるソース コードにはマーカーが表示されます。静的解析違反の場合、マーカーは違反の原因であるコード行の隣に表示されます。単体テストのエラーの場合、マーカーはテスト対象クラスに一致するスタック トレースの先頭行に表示されます。単体テストの失敗の場合、またはテスト対象クラスが不明なエラーの場合、マーカーはテスト対象クラスに一致するスタック トレースの先頭行に表示されます。マーカーが示す問題を確認するには、マーカー上にマウス ポインタを起きます。ポップアップ ウィンドウに情報が表示されます。または、関連する [品質タスク] ビュー メッセージに直接行くには、問題の原因であるソース コードを右クリックし、[表示] > [品質タスク] (Eclipse の場合) または [Parasoft] > [品質タスクで表示] を選択します。
[コンソール] ビュー
テストの詳細を確認するには、テストの実行中に [コンソール] ビューを表示します。テストの進行中、テストの詳細は [コンソール] ビューに表示され、消去されるか別のテストが実行されるまで、[コンソール] ビューに表示され続けます。
コマンドラインからのテスト実行の結果
コマンドラインから実行したテストの場合、結果は生成されたレポートに記録されます。結果を Team Server に送った場合、「GUI への結果のインポート」で説明するように、この結果は GUI にインポートできます。GUI でテストを実行したかのように結果をレビューすることができます。
結果表示レイアウトの変更
デフォルトでは、[品質タスク] ビューは機能テストの結果を表示するためのレイアウトになっています。
静的解析の結果をレビューしやすくするために、SOAtest には 2 種類のレイアウトが用意されています。
- SOAtest 静的解析レイアウト: ソース コードに対して静的解析テストを実行している場合、このレイアウトを推奨します (たとえば、スキャニング パースペクティブからなど)。
- SOAtest 機能テストの静的解析レイアウト: Browser Playback Tool や Scanning Tool など、テスト スイートで静的解析を実行している場合、このレイアウトを推奨します。このレイアウトでは、 SOAtest は静的解析エラーが発見されたテスト、および静的解析エラーが発生したファイルの名前をレポートします。ブラウザー内で生成した HTML でエラーが発生した場合は、ファイル名ではなく "ブラウザー内で生成した HTML (<ブラウザー名とバージョン>)" をレポートします。
静的解析レイアウトを選択するには、次の操作を行います。
- [品質タスク] ビューの右上のプルダウン メニューを開きます。
- [表示] メニューから適切なレイアウト オプションを選択します。
テスト結果への対応
レポートされた静的解析違反について 1 つずつルールの説明とコードを検証して、次のどれに該当するかを決定します。
- 違反は正当であり重要である (違反が修正されるべきである)
- この特定の状況ではルールが当てはまらない (違反が抑制されるべきである)
- プロジェクトまたは優先順位にルールが適していない (関連するルールが無効化されるべきである)
多くのチームは、コード レビュー時に静的解析違反をレビューすることを好みます。開発者は、チームの設計者あるいは管理者が選択したルールを使って自分のコードをチェックします。特定の違反を無視しても問題ないと判断した場合、開発者はそのことをコード レビュー時にチーム内で話し合います。そして、違反を抑制するのか、ルール自体を無効にするのか、コードを修正するのかを決定します。
ルール違反についての詳細説明
SOAtest のルール説明は「どのルールに準拠するか」「レポートされた違反がアプリケーションの信頼性、安全性、保守性にどのような影響を与えるか」「レポートされた違反をどのように修正するか」を決めるのに役立ちます。
ルールの説明を参照するには、 [品質タスク] ビューで静的解析違反メッセージを右クリックし、ショートカット メニューの [ルール ドキュメントの参照] をクリックします。黄色の "注意" サインのマークがついているノードが、ルールの説明をチェックするべきノードです。
ヒント
SOAtest に付属の静的解析ルールの詳細については、[ヘルプ] > [ヘルプ目次] をクリックして『Parasoft SOAtest 静的解析ルール』ブックを参照してください。
テスト コンフィギュレーションで有効化されている静的解析ルールのリストとその説明を参照するには、次の操作を行います。
- [Parasoft] メニューの [テスト コンフィギュレーション]をクリックするか、または ツールバーの [テストの実行] ドロップダウン リストから [テスト コンフィギュレーション] を選択します。
- ルール リストを参照するテスト コンフィギュレーションのカテゴリを選択します。
- [静的] タブをクリックします。
- [有効なルールの一覧] をクリックします。
ルールのリストと各ルールの説明を印刷したい場合、メインのルール リスト (index.html ページ) を印刷する前に、ブラウザーの [リンク ドキュメントをすべて印刷する] オプションを有効にします。PDF を作成するには、 index.html ページから PDFを作成します。必ずリンク先のページも PDF 化するように PDF 生成ツールを設定してください (Acrobat の場合は [サイト全体] オプションを有効にしてください) 。
コードが単一のコーディング スタンダード、所定のカテゴリのコーディング スタンダード、またはすべての利用可能なコーディング スタンダードに準ずるかチェックしたい場合は、次の方法で確認できます。この方法でコーディング スタンダードをチェックするには、以下の操作を行います。
- SOAtest の [ナビゲーター] ビューからテストを実行するリソースを選択します。
- 次のいずれかを実施します。
- ツールバーの [テストの実行] プルダウン メニューから、 を選択します。 [テストの実行] > [ビルトイン] > [静的解析ルール] >「任意のルールまたはルールカテゴリ」 を選択します。
- [Parasoft] > [テストの実行] > [SOAtest] > [ビルトイン] > [静的解析ルール] >「任意のルールまたはルールカテゴリ」 を選択します。
ソース コードのレビューと修正
ルール違反の該当ソース コードを参照するには、行番号を表示するノードをダブルクリックするか、ノードを右クリックしてショートカット メニューの [移動] をクリックします。エディターが開き、該当するコード行がハイライト表示されます。
必要な変更を加え、変更後のファイルを保存できます。
Team Server からインポートした静的解析タスクに関連するソースが参照できない場合
違うページのソースが参照されているなどの理由で、インポートした静的解析タスクのソース コードを参照できない場合、原因として、対象ページを生成するために必要なログイン情報に、ローカルにインストールされた SOAtest がアクセスできないことが考えられます。
SOAtest GUI でテストを再実行すれば、レポートされた違反に関連するコードを参照できるはずです。
レポートされるタスクの抑制
「タスクの抑制」を参照してください。