(57)【要約】【課題】クロールが十分に行われているか否か判断する。【解決手段】本検査品質分析支援方法は、Webアプリケーションに対する検査の品質分析を支援するための方法であって、所定のルールに基づき、Webページ・データを生成するためのページ生成用テンプレートから、Webページ・データに含まれることとなる文字列である固定文字列を抽出し、固定文字列テーブルに格納するステップと、Webアプリケーションから、ページ生成用テンプレートに基づいて生成された特定のWebページ・データを受信し、当該特定のWebページ・データに含まれる文字列を抽出するステップと、抽出した文字列で固定文字列テーブルを検索し、抽出した文字列と一致する固定文字列を特定するステップと、特定された固定文字列に係る検出フラグを検出済みに設定するステップとを含む。【選択図】図３
2010026749.tif 000002
【特許請求の範囲】
【請求項１】
ウェブアプリケーションに対する検査の品質分析を支援するための検査品質分析支援プログラムであって、
所定のルールに基づき、ウェブページ・データを生成するためのページ生成用テンプレートから、前記ウェブページ・データに含まれることとなる文字列である固定文字列を抽出し、固定文字列テーブルに格納する格納ステップと、
前記ウェブアプリケーションから、前記ページ生成用テンプレートに基づいて生成された特定のウェブページ・データを受信し、当該特定のウェブページ・データに含まれる文字列を抽出するステップと、
抽出した前記文字列で前記固定文字列テーブルを検索し、抽出した前記文字列と一致する前記固定文字列を特定するステップと、
特定された前記固定文字列に係る検出フラグを検出済みに設定するステップと、
をコンピュータに実行させるための検査品質分析支援プログラム。
【請求項２】
ウェブアプリケーションに対する検査の品質分析を支援するための検査品質分析支援プログラムであって、
所定のルールに基づき、ウェブページ・データを生成するためのページ生成用テンプレートから、前記ウェブページ・データに含まれることとなる文字列である固定文字列を抽出し、各前記固定文字列を識別するための第１の識別子と対応付けて識別子テーブルに格納する格納ステップと、
各前記固定文字列に対応付けられた前記第１の識別子を、前記ページ生成用テンプレート内の、対応付けがなされている前記固定文字列の位置に埋め込むことにより、前記ページ生成用テンプレートを更新するステップと、
前記ウェブアプリケーションから、更新後の前記ページ生成用テンプレートに基づいて生成された特定のウェブページ・データを受信し、当該特定のウェブページ・データに含まれる識別子を第２の識別子として抽出するステップと、
抽出した前記第２の識別子で前記識別子テーブルを検索し、抽出した前記第２の識別子と一致する前記第１の識別子を特定するステップと、
特定された前記第１の識別子に係る検出フラグを検出済みに設定するステップと、
をコンピュータに実行させるための検査品質分析支援プログラム。
【請求項３】
抽出した前記固定文字列の総数と、前記検出フラグに検出済みが設定されている前記固定文字列の数又は前記検出済みフラグに未検出が設定されている前記固定文字列の数とを用いて、前記ウェブアプリケーションに対する検査の網羅度を算出し、出力するステップ
をさらにコンピュータに実行させるための請求項１又は２記載の検査品質分析支援プログラム。
【請求項４】
前記検出フラグに未検出が設定されている前記固定文字列を特定し、当該固定文字列を出力するステップ
をさらにコンピュータに実行させるための請求項１又は２記載の検査品質分析支援プログラム。
【請求項５】
前記所定のルールが、所定のテンプレート言語で記述され且つ条件分岐、繰り返し及び所定の処理の少なくともいずれかを規定するコード部分を特定するルールを含み、
前記格納ステップにおいて、前記コード部分以外の部分に含まれる文字列を前記固定文字列として抽出する
ことを特徴とする請求項１又は２記載の検査品質分析支援プログラム。
【請求項６】
ウェブアプリケーションに対する検査の品質分析を支援するための検査品質分析支援方法であって、
所定のルールに基づき、ウェブページ・データを生成するためのページ生成用テンプレートから、前記ウェブページ・データに含まれることとなる文字列である固定文字列を抽出し、固定文字列テーブルに格納する格納ステップと、
前記ウェブアプリケーションから、前記ページ生成用テンプレートに基づいて生成された特定のウェブページ・データを受信し、当該特定のウェブページ・データに含まれる文字列を抽出するステップと、
抽出した前記文字列で前記固定文字列テーブルを検索し、抽出した前記文字列と一致する前記固定文字列を特定するステップと、
特定された前記固定文字列に係る検出フラグを検出済みに設定するステップと、
を含み、コンピュータにより実行される検査品質分析支援方法。
【請求項７】
ウェブアプリケーションに対する検査の品質分析を支援するための検査品質分析支援装置であって、
所定のルールに基づき、ウェブページ・データを生成するためのページ生成用テンプレートから、前記ウェブページ・データに含まれることとなる文字列である固定文字列を抽出し、固定文字列テーブルに格納する手段と、
前記ウェブアプリケーションから、前記ページ生成用テンプレートに基づいて生成された特定のウェブページ・データを受信し、当該特定のウェブページ・データに含まれる文字列を抽出する手段と、
抽出した前記文字列で前記固定文字列テーブルを検索し、抽出した前記文字列と一致する前記固定文字列を特定する手段と、
特定された前記固定文字列に係る検出フラグを検出済みに設定する手段と、
を有する検査品質分析支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、ウェブ（Ｗｅｂ）アプリケーションに対する検査の品質分析を行う分野の技術に関する。
【背景技術】
【０００２】
近年のウェブ（Ｗｅｂ）アプリケーションの構造は、プレゼンテーション層（以下、プレゼン層と略称する場合もある）とアプリケーション層（以下、アプリ層と略称する場合もある）とデータ層とからなる３層アーキテクチャが主流となっている。そして、Ｗｅｂアプリケーションの実行環境は、一般的には、図１に示すように、プレゼン層と、アプリ層と、ＤＢ（すなわち、データ層）と、コンテナ、ＶＭ（Virtual Machine）及びインタープリタなどのソフトウェアと、Ｗｅｂサーバとで構成される。
【０００３】
プレゼンテーション層では、例えばＪＳＰ（Java（Sun Microsystems社の商標） Server Pages）やＰＨＰ（Hypertext Preprocessor）などのテンプレート言語で記述されたテンプレートを利用してＷｅｂページ・データ（例えばＨＴＭＬ（Hyper Text Markup Language）ファイルなど）の生成を行う。また、アプリケーション層では、当該Ｗｅｂアプリケーションに関わる処理（例えば、インターネットを介して商品を購入するようなＷｅｂアプリケーションであれば、決済処理など）を実施する。なお、アプリケーション層により実施される処理（例えば決済処理など）は、ソースコードにて規定される。また、Ｗｅｂアプリケーションを利用するユーザは、Ｗｅｂブラウザがインストールされたユーザ端末（例えば、パーソナル・コンピュータ（ＰＣ）など）を操作して、ＷｅｂブラウザによりＷｅｂページを表示装置等に表示する。
【０００４】
一方で、Ｗｅｂアプリケーションのセキュリティの脆弱性を発見するようなセキュリティ検査は、ブラックボックステストが主流となっており、一般的に（１）クロール、（２）テスト生成、（３）攻撃リクエスト送信、（４）レスポンス分析という手順で行われる。具体的には、まず、検査対象となるＷｅｂページをできる限り抽出し（（１）クロール）、抽出したＷｅｂページに対して、どのようなテストを行うか検討する（（２）テスト生成）。そして、実際の攻撃者と同じような擬似攻撃を行い（（３）攻撃リクエスト送信）、結果としてセキュリティに問題があるか否かの分析を行う（（４）レスポンス分析）。なお、（３）攻撃リクエスト送信、及び（４）レスポンス分析には、図１に示すようなブラックボックス診断ツールなどがインストールされた診断サーバが用いられる。従って、より多くのＷｅｂページを抽出することで、検査の網羅度が高くなり、セキュリティ検査の品質も高くなる。
【特許文献１】特開２００３−１５０５４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のセキュリティ検査においては、どのようなテストを行うかという点（すなわち、上記（２）乃至（４））に重きが置かれており、クロールが十分に行われているか否かという点については考慮されていない。また、例えば徐々に機能追加が行われた巨大なＷｅｂアプリケーションなどの場合、メンテナンスや検査の担当者が、どのようなＷｅｂページが存在するのかを全て把握することは非常に困難であり、クロールが十分に行われているか否かを判断することはできない。そのため、検査対象から漏れているＷｅｂページがあったとしても、これを認識することができず、セキュリティ検査の品質を適切に判断することはできない。
【０００６】
従って、本技術の目的は、Ｗｅｂアプリケーションのセキュリティ検査において、クロールが十分に行われているか否かを判断することである。
【０００７】
また、本技術の他の目的は、Ｗｅｂアプリケーションのセキュリティ検査において、検査対象から漏れているＷｅｂページを容易に特定できるようにすることである。
【課題を解決するための手段】
【０００８】
第１の態様に係る検査品質分析支援方法は、ウェブアプリケーションに対する検査の品質分析を支援するための方法であって、所定のルールに基づき、ウェブページ・データを生成するためのページ生成用テンプレートから、ウェブページ・データに含まれることとなる文字列である固定文字列を抽出し、固定文字列テーブルに格納する格納ステップと、ウェブアプリケーションから、ページ生成用テンプレートに基づいて生成された特定のウェブページ・データを受信し、当該特定のウェブページ・データに含まれる文字列を抽出するステップと、抽出した文字列で固定文字列テーブルを検索し、抽出した文字列と一致する固定文字列を特定するステップと、特定された固定文字列に係る検出フラグを検出済みに設定するステップとを含む。
【０００９】
第２の態様に係る検査品質分析支援方法は、ウェブアプリケーションに対する検査の品質分析を支援するための方法であって、所定のルールに基づき、ウェブページ・データを生成するためのページ生成用テンプレートから、ウェブページ・データに含まれることとなる文字列である固定文字列を抽出し、各固定文字列を識別するための第１の識別子と対応付けて識別子テーブルに格納する格納ステップと、各固定文字列に対応付けられた第１の識別子を、ページ生成用テンプレート内の、対応付けがなされている固定文字列の位置に埋め込むことにより、ページ生成用テンプレートを更新するステップと、ウェブアプリケーションから、更新後のページ生成用テンプレートに基づいて生成された特定のウェブページ・データを受信し、当該特定のウェブページ・データに含まれる識別子を第２の識別子として抽出するステップと、抽出した第２の識別子で識別子テーブルを検索し、抽出した第２の識別子と一致する第１の識別子を特定するステップと、特定された第１の識別子に係る検出フラグを検出済みに設定するステップとを含む。
【発明の効果】
【００１０】
Ｗｅｂアプリケーションのセキュリティ検査において、クロールが十分に行われているか否かを判断することができるようになる。
【００１１】
また、他の側面によれば、Ｗｅｂアプリケーションのセキュリティ検査において、検査対象から漏れているＷｅｂページを容易に特定できるようになる。
【発明を実施するための最良の形態】
【００１２】
［実施の形態１］
図２乃至図１３を用いて本技術の第１の実施の形態について説明する。まず、第１の実施の形態の処理概要を説明する。上でも述べたが、Ｗｅｂアプリケーションのプレゼンテーション層では、例えばＪＳＰやＰＨＰなどのテンプレート言語で記述されたテンプレートを利用してレスポンスとなるＷｅｂページ・データを生成する。ここで、テンプレートには、Ｗｅｂページ・データにそのまま含まれることとなる固定部分と、条件分岐、繰り返し及び所定の処理を規定するコード部分とが含まれる。例えば、図２に示すようなテンプレート（welcom.jsp）の場合、網掛けの行（すなわち、１行目、５行目、７行目及び９行目）が固定部分となり、それ以外の行（すなわち、２行目、３行目、４行目、６行目及び８行目）がコード部分となる。なお、図２は、ＪＳＰで記述されたテンプレートの一例であり、ＪＳＰの場合、コード部分は「<%」と「%>」とを用いて記述される。
【００１３】
また、図２に示したテンプレート（welcom.jsp）からは、当該テンプレートの下に示すようなＷｅｂページ・データが生成される。具体的には、変数userがadminの場合には、テンプレートの１行目の文字列「<html>」と、５行目の文字列「<b>あなたはadminです</b>」と、９行目の文字列「</html>」とを含むＷｅｂページ・データが生成される。一方、変数userがadmin以外の場合には、テンプレートの１行目の文字列「<html>」と、７行目の文字列「<b>あなたは一般ユーザです</b>」と、９行目の文字列「</html>」とを含むＷｅｂページ・データが生成される。すなわち、例えば、変数userがadminの際に表示されるＷｅｂページを検査対象として抽出できていない場合、テンプレートの５行目の文字列「<b>あなたはadminです</b>」は、一度も使われないことになる。そこで、本実施の形態では、プレゼンテーション層により生成されたＷｅｂページ・データに含まれる文字列を抽出し、テンプレート内の固定部分の文字列のうち、使われていない文字列があるか否かを判断することによって、クロールが十分に行われているか否かを判断する。
【００１４】
次に、図３に第１の実施の形態におけるシステム構成図を示す。図３では、本システムは、例えばＪＳＰやＰＨＰなどのテンプレート言語で記述されたテンプレートを格納するテンプレート格納部１と、アプリケーション層の実施すべき処理を規定するソースコードを格納するソースコード格納部３と、テンプレート格納部１に格納されているテンプレート及びソースコード格納部３に格納されているソースコードをコンパイルするコンパイラ５と、カバレッジ検出装置１５からのリクエストに応じてレスポンスとなるＷｅｂページ・データを生成し、カバレッジ検出装置１５に送信するＷｅｂアプリケーションの実行環境７と、後で説明する固定文字列抽出ルールを格納する固定文字列抽出ルール格納部９と、テンプレート格納部１及び固定文字列抽出ルール格納部９に格納されているデータに基づき、後で説明する固定文字列テーブルを生成する固定文字列抽出装置１１と、固定文字列抽出装置１１により生成された固定文字列テーブルを格納する固定文字列テーブル格納部１３と、ユーザ端末（Ｗｅｂブラウザ）又は診断サーバ（ブラックボックス診断ツール）と、Ｗｅｂアプリケーションの実行環境７との間でやりとりされるデータを中継し、Ｗｅｂアプリケーションの実行環境７からのＷｅｂページ・データに基づき、固定文字列テーブル格納部１３を更新するカバレッジ検出装置１５と、Ｗｅｂブラウザのインストールされたユーザ端末と、ブラックボックス診断ツールのインストールされた診断サーバとを有する。
【００１５】
Ｗｅｂアプリケーションの実行環境７は、Ｗｅｂサーバ７１と、プレゼン層７２と、アプリ層７３と、ＤＢ７４と、コンテナ、ＶＭ及びインタープリタなどのソフトウェア７５とを有する。なお、テンプレート格納部１に格納されているテンプレート、ソースコード格納部３に格納されているソースコード、コンパイラ５及びＷｅｂアプリケーションの実行環境７は、それぞれ従来通りのものと変わらない。
【００１６】
図４に、固定文字列抽出装置１１の機能ブロック図を示す。固定文字列抽出装置１１は、テンプレート格納部１及び固定文字列抽出ルール格納部９からデータを取得するデータ取得部１１１と、データ取得部１１１により取得したデータに基づき、後で説明する固定文字列テーブルを生成する固定文字列テーブル生成部１１３とを有する。なお、固定文字列抽出装置１１の詳細な処理については後で説明する。
【００１７】
図５に、カバレッジ検出装置１５の機能ブロック図を示す。カバレッジ検出装置１５は、ユーザ端末又は診断サーバからのリクエスト、並びにＷｅｂアプリケーションの実行環境７からのＷｅｂページ・データを受信する受信部１５１と、ユーザ端末又は診断サーバからのリクエストをＷｅｂアプリケーションの実行環境７に送信し、Ｗｅｂアプリケーションの実行環境７からのＷｅｂページ・データをユーザ端末又は診断サーバに送信する送信部１５３と、固定文字列抽出ルール格納部９及び固定文字列テーブル格納部１３からデータを取得するデータ取得部１５５と、Ｗｅｂアプリケーションの実行環境７からのＷｅｂページ・データに含まれる固定文字列を検出する固定文字列検出部１５７とを有する。なお、カバレッジ検出装置１５の詳細な処理については後で説明する。
【００１８】
図６に固定文字列テーブル格納部１３に格納される固定文字列テーブルの一例を示す。図６の例では、固定文字列テーブルには、ＩＤの列と、固定文字列の列と、固定文字列位置の列と、検出フラグ（０又は空欄：未検出／１：検出済み）の列とが含まれる。固定文字列位置の列には、当該固定文字列を含むテンプレートのファイル名と当該固定文字列が記述されている行の番号とが設定される。
【００１９】
図７に固定文字列抽出ルール格納部９に格納されるデータの一例を示す。図７の例では、固定文字列抽出ルール格納部９には、テンプレート言語の列と、抽出ルールの列とが含まれる。抽出ルールの列には、当該テンプレート言語で記述されたテンプレート内のコード部分を特定するための正規表現が設定される。上でも述べたが、テンプレートには固定部分とコード部分とが含まれ、例えばテンプレート言語がＪＳＰの場合、コード部分は「<%」と「%>」とを用いて記述される。また、例えばテンプレート言語がＰＨＰの場合、図８に示すように、コード部分（すなわち、２行目、３行目、４行目、６行目及び８行目）は「<?php」と「?>」とを用いて記述される。すなわち、テンプレート内のコード部分の書き方は、そのテンプレート言語によって予め決められている。そこで、本実施の形態では、テンプレート言語毎に、当該テンプレート言語で記述されたテンプレート内のコード部分を検索するための正規表現を抽出ルールとして定義しておき、当該正規表現と一致しない部分（すなわち、コード部分以外の部分）を固定部分として特定する。例えば図７における正規表現「<\%.*\%>」（ＪＳＰ）は、「<\%」で始まり、「%>」で終わる部分を検索するものである。なお、「.*」は、任意の文字の０回以上の繰り返しを意味する。従って、図２に示したテンプレートであれば、２行目から４行目までと、６行目と、８行目とがコード部分として特定され、１行目と、５行目と、７行目と、９行目とが固定部分として特定される。
【００２０】
次に、図９を用いて、図３に示したシステム全体の処理フローを説明する。まず、テンプレート格納部１に格納されているテンプレート及びソースコード格納部３に格納されているソースコードのコンパイル等を行い、Ｗｅｂアプリケーションの実行環境７を実装する（図９：ステップ（１））。なお、実装の仕方は従来と変わらないため、ここではこれ以上述べない。また、固定文字列抽出装置１１は、テンプレート格納部１及び固定文字列抽出ルール格納部９に格納されているデータに基づき固定文字列テーブルを生成する（ステップ（２））。固定文字列テーブルの生成処理については、後で詳細に説明する。
【００２１】
次に、検査の担当者は、診断サーバを操作して、リクエストをカバレッジ検出装置１５に送信する（ステップ（３））。そして、カバレッジ検出装置１５は、診断サーバからリクエストを受信し、当該リクエストをＷｅｂアプリケーションの実行環境７に送信する（ステップ（４））。そして、Ｗｅｂアプリケーションの実行環境７は、リクエストに対するレスポンス（すなわち、Ｗｅｂページ・データ）を生成し、カバレッジ検出装置１５に送信する（ステップ（５））。そして、カバレッジ検出装置１５は、Ｗｅｂアプリケーションの実行環境７からレスポンス（Ｗｅｂページ・データ）を受信し、Ｗｅｂページ・データに含まれる文字列を検出し、検出した文字列と一致する固定文字列に係る検出フラグを検出済みに設定する（ステップ（６））。また、カバレッジ検出装置１５は、Ｗｅｂアプリケーションの実行環境７からのレスポンスを診断サーバに送信する（ステップ（７））。そして、ステップ（３）乃至ステップ（７）の処理を繰り返す。
【００２２】
その後、カバレッジ検出装置１５は、検出フラグに検出済みが設定されている固定文字列の割合を検査の網羅度として算出し、処理結果として固定文字列テーブルと共に診断サーバに出力する（ステップ（８））。診断サーバは、カバレッジ検出装置１５から検査の網羅度及び固定文字列テーブルを受信し、表示装置等に表示する。これにより、検査の担当者は、検査対象としてどれだけのＷｅｂページを抽出できているか判断できるようになる。また、使われていない固定文字列及びその位置を認識することができるので、どのようなＷｅｂページが検査対象から漏れているかも特定し易くなる。
【００２３】
次に、図１０及び図１１を用いて、固定文字列抽出装置１１の処理の詳細について説明する。まず、固定文字列抽出装置１１のデータ取得部１１１は、固定文字列抽出ルール格納部９から固定文字列抽出ルールを読み出し、一旦記憶装置に格納する（図１０：ステップＳ１）。また、データ取得部１１１は、テンプレート格納部１から未処理のテンプレートを読み出し、一旦記憶装置に格納する（ステップＳ３）。
【００２４】
そして、固定文字列抽出装置１１の固定文字列テーブル生成部１１３は、記憶装置に格納されたテンプレートの先頭にポインタを設定する（ステップＳ５）。そして、固定文字列テーブル生成部１１３は、固定文字列抽出ルールに基づき、ポインタの位置から直近の固定部分を探索する（ステップＳ７）。具体的には、固定文字列抽出ルールとして定義されている正規表現を基に、当該正規表現と一致しない部分を探索する。なお、図示していないが、固定部分が検出されなかった場合は、以降の処理をスキップし、ステップＳ１７の処理に移行する。
【００２５】
そして、固定文字列テーブル生成部１１３は、検出した固定部分に含まれる文字列を固定文字列として抽出する（ステップＳ９）。そして、固定文字列テーブル生成部１１３は、ＩＤと、抽出した固定文字列と、当該固定文字列の位置情報（テンプレートのファイル名及び行番号）とを含むレコードを固定文字列テーブルに登録する（ステップＳ１１）。
【００２６】
そして、固定文字列テーブル生成部１１３は、今回検出した固定部分の終端がテンプレートの終端であるか判断する（ステップＳ１３）。今回検出した固定部分の終端がテンプレートの終端ではないと判断された場合（ステップＳ１３：Ｎｏルート）、固定文字列テーブル生成部１１３は、ポインタを今回検出した固定部分の終端に設定し（ステップＳ１５）、ステップＳ７の処理に戻る。そして、ステップ７乃至ステップＳ１５の処理を繰り返す。
【００２７】
一方、今回検出した固定部分の終端がテンプレートの終端であると判断された場合（ステップＳ１３：Ｙｅｓルート）、固定文字列テーブル生成部１１３は、全てのテンプレートについて処理が完了したか判断する（ステップＳ１７）。全てのテンプレートについて処理が完了していなければ（ステップＳ１７：Ｎｏルート）、ステップＳ３の処理に戻る。そして、ステップＳ３乃至ステップＳ１７の処理を繰り返す。一方、全てのテンプレートについて処理が完了した場合（ステップＳ１７：Ｙｅｓルート）、処理を終了する。例えば、図２に示したテンプレート（welcom.jsp）について、本処理を実施すると、図１１に示すような固定文字列テーブルが生成される。なお、図１１に示すテンプレート（welcom.jsp）は、図２に示したテンプレートと同じものである。
【００２８】
以上のような処理を実施することにより、Ｗｅｂページ・データに含まれることとなる固定文字列を抽出し、固定文字列テーブルに登録することができる。
【００２９】
次に、図１２及び図１３を用いて、カバレッジ検出装置１５の処理の詳細について説明する。まず、カバレッジ検出装置１５の受信部１５１は、Ｗｅｂアプリケーションの実行環境７からレスポンス（Ｗｅｂページ・データ）を受信し、一旦記憶装置に格納する（図１２：ステップＳ２１）。そして、カバレッジ検出装置１５のデータ取得部１５５は、固定文字列テーブル格納部１３から固定文字列テーブルを読み出し、一旦記憶装置に格納する（ステップＳ２３）。そして、カバレッジ検出装置１５の固定文字列検出部１５７は、記憶装置に格納されたレスポンスの先頭にポインタを設定する（ステップＳ２５）。そして、固定文字列検出部１５７は、レスポンスから、ポインタの位置における文字列を抽出し、一旦記憶装置に格納する（ステップＳ２７）。そして、固定文字列検出部１５７は、抽出文字列と一致する固定文字列を含むレコードが固定文字列テーブル内に存在するか判断する（ステップＳ２９）。抽出文字列と一致する固定文字列を含むレコードが固定文字列テーブル内に存在しないと判断された場合（ステップＳ２９：Ｎｏルート）、ステップＳ３３の処理に移行する。
【００３０】
一方、抽出文字列と一致する固定文字列を含むレコードが固定文字列テーブル内に存在すると判断された場合（ステップＳ２９：Ｙｅｓルート）、固定文字列検出部１５７は、固定文字列テーブル内の該当レコードの検出フラグを検出済みに設定する（ステップＳ３１）。なお、複数レコードが該当する場合には、該当する全てのレコードの検出フラグを検出済みに設定する。
【００３１】
そして、固定文字列検出部１５７は、レスポンスの終端であるか、すなわちレスポンス内の全ての文字列について処理したか判断する（ステップＳ３３）。レスポンスの終端ではないと判断された場合（ステップＳ３３：Ｎｏルート）、固定文字列検出部１５７は、ポインタを次の位置に設定し（ステップＳ３５）、ステップＳ２７の処理に戻る。そして、ステップＳ２７乃至ステップＳ３５の処理を繰り返す。一方、レスポンスの終端であると判断された場合（ステップＳ３３：Ｙｅｓルート）、固定文字列検出部１５７は、新たなレスポンスを受信したか判断する（ステップＳ３７）。新たなレスポンスを受信した場合（ステップＳ３７：Ｙｅｓルート）、当該レスポンスを一旦記憶装置に格納し、ステップＳ２５の処理に戻る。
【００３２】
一方、新たなレスポンスを受信していなければ（ステップＳ３７：Ｎｏルート）、固定文字列検出部１５７は、検出フラグの設定を固定文字列テーブル格納部１３内の固定文字列テーブルに反映する（ステップＳ３９）。また、固定文字列検出部１５７は、検査の網羅度を算出し、処理結果として固定文字列テーブルと共に診断サーバに出力する（ステップＳ４１）。例えば、固定文字列テーブルに格納されている固定文字列の総数と、検出フラグに検出済みが設定されている固定文字列の数（又は検出済みフラグに未検出が設定されている固定文字列の数）とを用いて、検出フラグに検出済みが設定されている固定文字列の割合を検査の網羅度として算出する。その後、処理を終了する。
【００３３】
例えば図１１に示したデータが固定文字列テーブルに格納されている場合において、図１３に示すようなレスポンスを受信し、本処理を実施すると、固定文字列テーブルは同じく図１３に示すような内容となる。図１３に示すレスポンスには、文字列「<html>」、「<b>あなたは一般ユーザです</b>」及び「</html>」が含まれているため、固定文字列テーブルにおいて、固定文字列の列に「<html>」、「<b>あなたは一般ユーザです</b>」及び「</html>」を含む各レコードの検出フラグが検出済み（１）に設定されている。
【００３４】
以上のような処理を実施することにより、テンプレート内の固定文字列のうち使用されていない文字列を認識することができるようになる。
【００３５】
［実施の形態２］
上で説明した第１の実施の形態では、同一の固定文字列が複数登録されていても、それぞれを区別して検出フラグを設定するようにはなっていなかった。本技術の第２の実施の形態では、同一の固定文字列が複数登録されている場合でも、それぞれを区別できるようにする。
【００３６】
図１４乃至図２４を用いて本技術の第２の実施の形態について説明する。まず、第２の実施の形態の処理概要を説明する。テンプレートの固定部分から固定文字列を抽出する点は、第１の実施の形態と変わらないが、第２の実施の形態では、各固定文字列を識別可能なユニークな識別子を、抽出した固定文字列に対応付けて登録する。さらに、図１４に示すように、テンプレート内の各固定部分（１行目、５行目、７行目及び９行目）に当該識別子（図１４では、#0001〜#0004）を埋め込む。なお、この識別子は、Ｗｅｂページ上には表示されることのない文字列とする。このように、テンプレート内に識別子を埋め込むことにより、同じく図１４に示すように、プレゼンテーション層により生成されるＷｅｂページ・データにも当該識別子が含まれることとなる。従って、第２の実施の形態では、Ｗｅｂページ・データに含まれる識別子を抽出し、抽出したの識別子が対応付けられている固定文字列に係る検出フラグを検出済みに設定する。これにより、同一の固定文字列が複数登録されている場合であっても、それぞれを区別することが可能となる。
【００３７】
次に、図１５に第２の実施の形態におけるシステム構成図を示す。図１５では、本システムは、テンプレート格納部１と、ソースコード格納部３と、コンパイルするコンパイラ５と、Ｗｅｂアプリケーションの実行環境７と、後で説明する識別子挿入ルールを格納する識別子挿入ルール格納部２１と、テンプレート格納部１及び識別子挿入ルール格納部２１に格納されているデータに基づき、後で説明する識別子テーブルを生成したり、テンプレート内に識別子を埋め込むことにより、テンプレートを更新したりする識別子処理装置２３と、識別子処理装置２３により生成された識別子テーブルを格納する識別子テーブル格納部２５と、ユーザ端末（Ｗｅｂブラウザ）又は診断サーバ（ブラックボックス診断ツール）と、Ｗｅｂアプリケーションの実行環境７との間でやりとりされるデータを中継し、Ｗｅｂアプリケーションの実行環境７からのＷｅｂページ・データに基づき、識別子テーブル格納部２５を更新するカバレッジ検出装置２７と、Ｗｅｂブラウザのインストールされたユーザ端末と、ブラックボックス診断ツールのインストールされた診断サーバとを有する。なお、テンプレート格納部１と、ソースコード格納部３と、コンパイラ５と、Ｗｅｂアプリケーションの実行環境７とは第１の実施の形態のものと同じである。
【００３８】
図１６に、識別子処理装置２３の機能ブロック図を示す。識別子処理装置２３は、テンプレート格納部１及び識別子挿入ルール格納部２１からデータを取得するデータ取得部２３１と、データ取得部２３１により取得したデータに基づき、後で説明する識別子テーブルを生成したり、テンプレート内に識別子を埋め込むことにより、テンプレートを更新したりする識別子処理部２３３とを有する。なお、識別子処理装置２３の詳細な処理については後で説明する。
【００３９】
図１７に、カバレッジ検出装置２７の機能ブロック図を示す。カバレッジ検出装置２７は、ユーザ端末又は診断サーバからのリクエスト、並びにＷｅｂアプリケーションの実行環境７からのＷｅｂページ・データを受信する受信部２７１と、ユーザ端末又は診断サーバからのリクエストをＷｅｂアプリケーションの実行環境７に送信し、Ｗｅｂアプリケーションの実行環境７からのＷｅｂページ・データをユーザ端末又は診断サーバに送信する送信部２７３と、識別子挿入ルール格納部２１及び識別子テーブル格納部２５からデータを取得するデータ取得部２７５と、Ｗｅｂアプリケーションの実行環境７からのＷｅｂページ・データに含まれる識別子を検出する識別子検出部２７７とを有する。なお、カバレッジ検出装置２７の詳細な処理については後で説明する。
【００４０】
図１８に識別子テーブル格納部２５に格納される識別子テーブルの一例を示す。図１８の例では、識別子テーブルには、識別子の列と、固定文字列の列と、固定文字列位置の列と、検出フラグ（０又は空欄：未検出／１：検出済み）の列とが含まれる。固定文字列位置の列には、当該固定文字列を含むテンプレートのファイル名と当該固定文字列が記述されている行の番号とが設定される。
【００４１】
図１９に識別子挿入ルール格納部２１に格納されるデータの一例を示す。図１９の例では、識別子挿入ルール格納部２１には、テンプレート言語の列と、挿入ルールの列とが含まれる。挿入ルールの列には、当該テンプレート言語で記述されたテンプレート内のコード部分を特定するための正規表現と、識別子となる文字列に含むべき語句とが設定される。例えば図１９における挿入ルール「<\%.*\%>,＃」であれば、正規表現「<\%.*\%>」に一致しない部分を固定部分として特定し、「#」から始まる識別子（#0001〜）を固定部分に埋め込む。
【００４２】
次に、図２０を用いて、図１５に示したシステム全体の処理フローを説明する。まず、識別子挿入装置２３が、テンプレート格納部１及び識別子挿入ルール格納部２１に格納されているデータに基づき識別子テーブルを生成する（図２０：ステップ（１１））。また、識別子挿入装置２３は、テンプレート内の各固定部分に識別子を埋め込むことにより、テンプレートを更新する（ステップ（１２））。固定文字列テーブルの生成処理及び識別子の埋め込み処理については、後で詳細に説明する。
【００４３】
そして、識別子挿入装置２３により更新されたテンプレート及びソースコード格納部３に格納されているソースコードのコンパイル等を行い、Ｗｅｂアプリケーションの実行環境７を実装する（ステップ（１３））。第１の実施の形態では、テンプレート格納部１に格納されているテンプレートをそのまま用いたが、第２の実施の形態では、識別子の埋め込まれたテンプレートを用いる。
【００４４】
次に、検査の担当者は、診断サーバを操作して、リクエストをカバレッジ検出装置２７に送信する（ステップ（１４））。そして、カバレッジ検出装置２７は、診断サーバからリクエストを受信し、当該リクエストをＷｅｂアプリケーションの実行環境７に送信する（ステップ（１５））。そして、Ｗｅｂアプリケーションの実行環境７は、リクエストに対するレスポンス（すなわち、Ｗｅｂページ・データ）を生成し、カバレッジ検出装置２７に送信する（ステップ（１６））。そして、カバレッジ検出装置２７は、Ｗｅｂアプリケーションの実行環境７からレスポンス（Ｗｅｂページ・データ）を受信し、Ｗｅｂページ・データに含まれる識別子を検出し、検出した識別子に係る検出フラグを検出済みに設定する（ステップ（１７））。また、カバレッジ検出装置２７は、Ｗｅｂアプリケーションの実行環境７からのレスポンスを診断サーバに送信する（ステップ（１８））。そして、ステップ（１４）乃至ステップ（１８）の処理を繰り返す。
【００４５】
その後、カバレッジ検出装置２７は、検出フラグに検出済みが設定されている固定文字列の割合を検査の網羅度として算出し、処理結果として識別子テーブルと共に診断サーバに出力する（ステップ（１９））。診断サーバは、カバレッジ検出装置２７から検査の網羅度及び識別子テーブルを受信し、表示装置等に表示する。これにより、検査の担当者は、検査対象としてどれだけのＷｅｂページを抽出できているか判断できるようになる。また、使われていない固定文字列及びその位置を認識することができるので、検査対象から漏れているＷｅｂページを容易に特定できるようになる。さらに、同一の固定文字列が複数存在する場合であっても、これらは区別されるので、より正確な検査の網羅度を把握することができる。
【００４６】
次に、図２１及び図２２を用いて、識別子挿入装置２３の処理の詳細について説明する。まず、識別子挿入装置２３のデータ取得部２３１は、識別子挿入ルール格納部２１から識別子挿入ルールを読み出し、一旦記憶装置に格納する（図２１：ステップＳ５１）。また、データ取得部２３１は、テンプレート格納部１から未処理のテンプレートを読み出し、一旦記憶装置に格納する（ステップＳ５３）。
【００４７】
そして、識別子挿入装置２３の識別子処理部２３３は、記憶装置に格納されたテンプレートの先頭にポインタを設定する（ステップＳ５５）。そして、識別子処理部２３３は、識別子挿入ルールに基づき、ポインタの位置から直近の固定部分を探索する（ステップＳ５７）。具体的には、識別子挿入ルールとして定義されている正規表現を基に、当該正規表現と一致しない部分を探索する。なお、図示していないが、固定部分が検出されなかった場合は、以降の処理をスキップし、ステップＳ６９の処理に移行する。
【００４８】
そして、識別子処理部２３３は、検出した固定部分に含まれる文字列を固定文字列として抽出する（ステップＳ５９）。そして、識別子処理部２３３は、挿入ルールに従って識別子を採番し、当該識別子と、抽出した固定文字列と、当該固定文字列の位置情報（テンプレートのファイル名及び行番号）とを含むレコードを識別子テーブルに登録する（ステップＳ６１）。また、識別子処理部２３３は、今回検出した固定部分に識別子を埋め込むことにより、テンプレートを更新し、記憶装置に格納する（ステップＳ６３）。
【００４９】
そして、識別子処理部２３３は、今回検出した固定部分の終端がテンプレートの終端であるか判断する（ステップＳ６５）。今回検出した固定部分の終端がテンプレートの終端ではないと判断された場合（ステップＳ６５：Ｎｏルート）、識別子処理部２３３は、ポインタを今回検出した固定部分の終端に設定し（ステップＳ６７）、ステップＳ５７の処理に戻る。そして、ステップ５７乃至ステップＳ６７の処理を繰り返す。
【００５０】
一方、今回検出した固定部分の終端がテンプレートの終端であると判断された場合（ステップＳ６５：Ｙｅｓルート）、識別子処理部２３３は、全てのテンプレートについて処理が完了したか判断する（ステップＳ６９）。全てのテンプレートについて処理が完了していなければ（ステップＳ６９：Ｎｏルート）、ステップＳ５３の処理に戻る。そして、ステップＳ５３乃至ステップＳ６９の処理を繰り返す。一方、全てのテンプレートについて処理が完了した場合（ステップＳ６９：Ｙｅｓルート）、記憶装置に格納されたテンプレートをコンパイラ５に出力し、処理を終了する。例えば、図２２に示すようなテンプレート（welcom.jsp）について本処理を実施すると、同じく図２２に示すような識別子テーブルが生成される。また、図１４に示したように、テンプレートには識別子が埋め込まれる。
【００５１】
以上のような処理を実施することにより、Ｗｅｂページ・データに含まれることとなる固定文字列を抽出し、識別子と対応付けて識別子テーブルに登録することができ、テンプレートの固定部分に識別子を埋め込むことができる。
【００５２】
次に、図２３及び図２４を用いて、カバレッジ検出装置２７の処理の詳細について説明する。まず、カバレッジ検出装置２７の受信部２７１は、Ｗｅｂアプリケーションの実行環境７からレスポンス（Ｗｅｂページ・データ）を受信し、一旦記憶装置に格納する（図２３：ステップＳ７１）。そして、カバレッジ検出装置２７のデータ取得部２７５は、識別子挿入ルール格納部２１から識別子挿入ルールを読み出し、識別子テーブル格納部２５から識別子テーブルを読み出し、各々を一旦記憶装置に格納する（ステップＳ７３）。そして、カバレッジ検出装置２７の識別子検出部２７７は、記憶装置に格納されたレスポンスの先頭にポインタを設定する（ステップＳ７５）。そして、識別子検出部２７７は、識別子挿入ルールに基づき、ポインタの位置から直近の識別子を探索する（ステップＳ７７）。なお、図示していないが、識別子が検出されなかった場合は、以降の処理をスキップし、ステップＳ８５の処理に移行する。
【００５３】
そして、識別子検出部２７７は、識別子を抽出し、当該識別子を含むレコードの検出フラグを検出済みに設定する（ステップＳ７９）。そして、識別子検出部２７７は、レスポンス内の全ての識別子について処理が完了したか判断する（ステップＳ８１）。レスポンス内の全ての識別子について処理が完了していなければ（ステップＳ８１：Ｎｏルート）、識別子検出部２７７は、ポインタを次の位置に設定し（ステップＳ８３）、ステップＳ７７の処理に戻る。そして、ステップＳ７７乃至ステップＳ８３の処理を繰り返す。
【００５４】
一方、レスポンス内の全ての識別子について処理が完了した場合（ステップＳ８１：Ｙｅｓルート）、識別子検出部２７７は、新たなレスポンスを受信したか判断する（ステップＳ８５）。新たなレスポンスを受信した場合（ステップＳ８５：Ｙｅｓルート）、当該レスポンスを一旦記憶装置に格納し、ステップＳ７５の処理に戻る。
【００５５】
一方、新たなレスポンスを受信していなければ（ステップＳ８５：Ｎｏルート）、識別子検出部２７７は、検出フラグの設定を識別子テーブル格納部２５内の識別子テーブルに反映する（ステップＳ８７）。また、識別子検出部２７７は、検査の網羅度を算出し、処理結果として識別子テーブルと共に診断サーバに出力する（ステップＳ８９）。例えば、識別子テーブルに格納されている固定文字列の総数と、検出フラグに検出済みが設定されている固定文字列の数（又は検出済みフラグに未検出が設定されている固定文字列の数）とを用いて、検出フラグに検出済みが設定されている固定文字列の割合を検査の網羅度として算出する。その後、処理を終了する。
【００５６】
例えば図２２に示したデータが識別子テーブルに格納されている場合において、図２４に示すようなレスポンスを受信し、本処理を実施すると、識別子テーブルの内容は同じく図２４に示すような内容となる。図２４に示すレスポンスには、識別子「#0001」、「#0002」及び「#0004」が含まれているため、識別子テーブルにおいて、識別子の列に「#0001」、「#0002」及び「#0004」を含む各レコードの検出フラグが検出済み（１）に設定されている。
【００５７】
以上のような処理を実施することにより、同一の固定文字列が複数存在する場合であっても、正確な検査の網羅度を把握することができるようになる。
【００５８】
以上本技術の実施の形態を説明したが、実施の形態はこれに限定されるものではない。例えば、上で説明した機能ブロック図は必ずしも実際のプログラムモジュール構成に対応するものではない。例えば固定文字列抽出装置１１（第２の実施の形態では識別子処理装置２３）の処理と、カバレッジ検出装置１５（第２の実施の形態ではカバレッジ検出装置２７）の処理とを１台のコンピュータに処理させるようにしてもよい。
【００５９】
また、上で説明した各テーブルの構成は一例であって、必ずしも上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えたり、並列に実行させるようにしてもよい。
【００６０】
また、上で説明した固定文字列抽出ルール及び識別子挿入ルールも一例であって、同じような処理を行うことができれば、他のルールを採用するようにしてもよい。
【００６１】
以上述べた本技術の実施の形態は、以下のような態様にまとめることができる。
【００６２】
第１の態様に係る検査品質分析支援方法は、ウェブアプリケーションに対する検査の品質分析を支援するための方法であって、所定のルールに基づき、ウェブページ・データを生成するためのページ生成用テンプレートから、ウェブページ・データに含まれることとなる文字列である固定文字列を抽出し、固定文字列テーブルに格納する格納ステップと、ウェブアプリケーションから、ページ生成用テンプレートに基づいて生成された特定のウェブページ・データを受信し、当該特定のウェブページ・データに含まれる文字列を抽出するステップと、抽出した文字列で固定文字列テーブルを検索し、抽出した文字列と一致する固定文字列を特定するステップと、特定された固定文字列に係る検出フラグを検出済みに設定するステップとを含む。
【００６３】
このようにすれば、例えば、検査の担当者は、検出フラグを確認することによって、検査対象から漏れているＷｅｂページがあるか否かを容易に判断することができるようになる。
【００６４】
第２の態様に係る検査品質分析支援方法は、ウェブアプリケーションに対する検査の品質分析を支援するための方法であって、所定のルールに基づき、ウェブページ・データを生成するためのページ生成用テンプレートから、ウェブページ・データに含まれることとなる文字列である固定文字列を抽出し、各固定文字列を識別するための第１の識別子と対応付けて識別子テーブルに格納する格納ステップと、各固定文字列に対応付けられた第１の識別子を、ページ生成用テンプレート内の、対応付けがなされている固定文字列の位置に埋め込むことにより、ページ生成用テンプレートを更新するステップと、ウェブアプリケーションから、更新後のページ生成用テンプレートに基づいて生成された特定のウェブページ・データを受信し、当該特定のウェブページ・データに含まれる識別子を第２の識別子として抽出するステップと、抽出した第２の識別子で識別子テーブルを検索し、抽出した第２の識別子と一致する第１の識別子を特定するステップと、特定された第１の識別子に係る検出フラグを検出済みに設定するステップとを含む。
【００６５】
このようにすれば、例えば同一の固定文字列が複数存在する場合であっても、検査の担当者は、検出フラグを確認することによって、検査対象から漏れているＷｅｂページがあるか否かを正確且つ容易に判断することができるようになる。
【００６６】
また、第１及び第２の態様において、抽出した固定文字列の総数と、検出フラグに検出済みが設定されている固定文字列の数又は検出済みフラグに未検出が設定されている固定文字列の数とを用いて、ウェブアプリケーションに対する検査の網羅度を算出し、出力するステップをさらに含むようにしてもよい。このようにすれば、例えば検査の担当者は、検査の網羅度を把握することができ、クロールが十分に行われているか否か判断できるようになる。
【００６７】
さらに、第１及び第２の態様において、検出フラグに未検出が設定されている固定文字列を特定し、当該固定文字列を出力するステップをさらに含むようにしてもよい。未使用の固定文字列が特定されれば、検査対象から漏れているＷｅｂページを容易に特定することができるようになる。
【００６８】
また、第１及び第２の態様において、上で述べた所定のルールが、所定のテンプレート言語で記述され且つ条件分岐、繰り返し及び所定の処理の少なくともいずれかを規定するコード部分を特定するルールを含む場合もある。そして、上で述べた格納ステップにおいて、コード部分以外の部分に含まれる文字列を固定文字列として抽出するようにしてもよい。コード部分の書き方は、テンプレート言語によって予め決められているので、例えばコード部分を検索するための正規表現を用いることで、簡単に固定文字列を抽出することができるようになる。
【００６９】
さらに、第２の態様において、上で述べた第１の識別子及び第２の識別子が、ウェブページ上に表示されることのない文字列である場合もある。
【００７０】
なお、上記方法をコンピュータハードウエアに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。また、ネットワークなどを介してデジタル信号として配信される場合もある。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００７１】
また、固定文字列抽出装置、カバレッジ検出装置及び識別子処理装置はコンピュータ装置であって、図２５に示すように、メモリ２５０１（記憶部）とＣＰＵ２５０３（処理部）とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。ＯＳ及びＷｅｂブラウザを含むアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。必要に応じてＣＰＵ２５０３は、表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ２５０１に格納され、必要があればＨＤＤ２５０５に格納される。このようなコンピュータは、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００７２】
（付記１）
ウェブアプリケーションに対する検査の品質分析を支援するための検査品質分析支援プログラムであって、
所定のルールに基づき、ウェブページ・データを生成するためのページ生成用テンプレートから、前記ウェブページ・データに含まれることとなる文字列である固定文字列を抽出し、固定文字列テーブルに格納する格納ステップと、
前記ウェブアプリケーションから、前記ページ生成用テンプレートに基づいて生成された特定のウェブページ・データを受信し、当該特定のウェブページ・データに含まれる文字列を抽出するステップと、
抽出した前記文字列で前記固定文字列テーブルを検索し、抽出した前記文字列と一致する前記固定文字列を特定するステップと、
特定された前記固定文字列に係る検出フラグを検出済みに設定するステップと、
をコンピュータに実行させるための検査品質分析支援プログラム。
【００７３】
（付記２）
ウェブアプリケーションに対する検査の品質分析を支援するための検査品質分析支援プログラムであって、
所定のルールに基づき、ウェブページ・データを生成するためのページ生成用テンプレートから、前記ウェブページ・データに含まれることとなる文字列である固定文字列を抽出し、各前記固定文字列を識別するための第１の識別子と対応付けて識別子テーブルに格納する格納ステップと、
各前記固定文字列に対応付けられた前記第１の識別子を、前記ページ生成用テンプレート内の、対応付けがなされている前記固定文字列の位置に埋め込むことにより、前記ページ生成用テンプレートを更新するステップと、
前記ウェブアプリケーションから、更新後の前記ページ生成用テンプレートに基づいて生成された特定のウェブページ・データを受信し、当該特定のウェブページ・データに含まれる識別子を第２の識別子として抽出するステップと、
抽出した前記第２の識別子で前記識別子テーブルを検索し、抽出した前記第２の識別子と一致する前記第１の識別子を特定するステップと、
特定された前記第１の識別子に係る検出フラグを検出済みに設定するステップと、
をコンピュータに実行させるための検査品質分析支援プログラム。
【００７４】
（付記３）
抽出した前記固定文字列の総数と、前記検出フラグに検出済みが設定されている前記固定文字列の数又は前記検出済みフラグに未検出が設定されている前記固定文字列の数とを用いて、前記ウェブアプリケーションに対する検査の網羅度を算出し、出力するステップ
をさらにコンピュータに実行させるための付記１又は２記載の検査品質分析支援プログラム。
【００７５】
（付記４）
前記検出フラグに未検出が設定されている前記固定文字列を特定し、当該固定文字列を出力するステップ
をさらにコンピュータに実行させるための付記１又は２記載の検査品質分析支援プログラム。
【００７６】
（付記５）
前記所定のルールが、所定のテンプレート言語で記述され且つ条件分岐、繰り返し及び所定の処理の少なくともいずれかを規定するコード部分を特定するルールを含み、
前記格納ステップにおいて、前記コード部分以外の部分に含まれる文字列を前記固定文字列として抽出する
ことを特徴とする付記１又は２記載の検査品質分析支援プログラム。
【００７７】
（付記６）
前記第１の識別子及び前記第２の識別子が、前記ウェブページ上に表示されることのない文字列である
ことを特徴とする付記２記載の検査品質分析支援プログラム。
【００７８】
（付記７）
ウェブアプリケーションに対する検査の品質分析を支援するための検査品質分析支援方法であって、
所定のルールに基づき、ウェブページ・データを生成するためのページ生成用テンプレートから、前記ウェブページ・データに含まれることとなる文字列である固定文字列を抽出し、固定文字列テーブルに格納する格納ステップと、
前記ウェブアプリケーションから、前記ページ生成用テンプレートに基づいて生成された特定のウェブページ・データを受信し、当該特定のウェブページ・データに含まれる文字列を抽出するステップと、
抽出した前記文字列で前記固定文字列テーブルを検索し、抽出した前記文字列と一致する前記固定文字列を特定するステップと、
特定された前記固定文字列に係る検出フラグを検出済みに設定するステップと、
を含み、コンピュータにより実行される検査品質分析支援方法。
【００７９】
（付記８）
ウェブアプリケーションに対する検査の品質分析を支援するための検査品質分析支援方法であって、
所定のルールに基づき、ウェブページ・データを生成するためのページ生成用テンプレートから、前記ウェブページ・データに含まれることとなる文字列である固定文字列を抽出し、各前記固定文字列を識別するための第１の識別子と対応付けて識別子テーブルに格納する格納ステップと、
各前記固定文字列に対応付けられた前記第１の識別子を、前記ページ生成用テンプレート内の、対応付けがなされている前記固定文字列の位置に埋め込むことにより、前記ページ生成用テンプレートを更新するステップと、
前記ウェブアプリケーションから、更新後の前記ページ生成用テンプレートに基づいて生成された特定のウェブページ・データを受信し、当該特定のウェブページ・データに含まれる識別子を第２の識別子として抽出するステップと、
抽出した前記第２の識別子で前記識別子テーブルを検索し、抽出した前記第２の識別子と一致する前記第１の識別子を特定するステップと、
特定された前記第１の識別子に係る検出フラグを検出済みに設定するステップと、
を含み、コンピュータにより実行される検査品質分析支援方法。
【００８０】
（付記９）
ウェブアプリケーションに対する検査の品質分析を支援するための検査品質分析支援装置であって、
所定のルールに基づき、ウェブページ・データを生成するためのページ生成用テンプレートから、前記ウェブページ・データに含まれることとなる文字列である固定文字列を抽出し、固定文字列テーブルに格納する手段と、
前記ウェブアプリケーションから、前記ページ生成用テンプレートに基づいて生成された特定のウェブページ・データを受信し、当該特定のウェブページ・データに含まれる文字列を抽出する手段と、
抽出した前記文字列で前記固定文字列テーブルを検索し、抽出した前記文字列と一致する前記固定文字列を特定する手段と、
特定された前記固定文字列に係る検出フラグを検出済みに設定する手段と、
を有する検査品質分析支援装置。
【００８１】
（付記１０）
ウェブアプリケーションに対する検査の品質分析を支援するための検査品質分析支援装置であって、
所定のルールに基づき、ウェブページ・データを生成するためのページ生成用テンプレートから、前記ウェブページ・データに含まれることとなる文字列である固定文字列を抽出し、各前記固定文字列を識別するための第１の識別子と対応付けて識別子テーブルに格納する手段と、
各前記固定文字列に対応付けられた前記第１の識別子を、前記ページ生成用テンプレート内の、対応付けがなされている前記固定文字列の位置に埋め込むことにより、前記ページ生成用テンプレートを更新する手段と、
前記ウェブアプリケーションから、更新後の前記ページ生成用テンプレートに基づいて生成された特定のウェブページ・データを受信し、当該特定のウェブページ・データに含まれる識別子を第２の識別子として抽出する手段と、
抽出した前記第２の識別子で前記識別子テーブルを検索し、抽出した前記第２の識別子と一致する前記第１の識別子を特定する手段と、
特定された前記第１の識別子に係る検出フラグを検出済みに設定する手段と、
を有する検査品質分析支援装置。
【図面の簡単な説明】
【００８２】
【図１】Ｗｅｂアプリケーションの実行環境を示す図である。
【図２】第１の実施の形態の処理概要を説明するための図である。
【図３】第１の実施の形態におけるシステム構成図である。
【図４】固定文字列抽出装置の機能ブロック図である。
【図５】カバレッジ検出装置の機能ブロック図である。
【図６】固定文字列テーブルの一例を示す図である。
【図７】固定文字列抽出ルール格納部に格納されるデータの一例を示す図である。
【図８】ＰＨＰで記述されたテンプレートの一例を示す図である。
【図９】第１の実施の形態におけるシステム全体の処理を説明するための図である。
【図１０】固定文字列抽出装置の処理フローを示す図である。
【図１１】固定文字列抽出装置の処理を説明するための図である。
【図１２】カバレッジ検出装置の処理フローを示す図である。
【図１３】カバレッジ検出装置の処理を説明するための図である。
【図１４】第２の実施の形態の処理概要を説明するための図である。
【図１５】第２の実施の形態におけるシステム構成図である。
【図１６】識別子処理装置の機能ブロック図である。
【図１７】カバレッジ検出装置の機能ブロック図である。
【図１８】識別子テーブルの一例を示す図である。
【図１９】識別子挿入ルール格納部に格納されるデータの一例を示す図である。
【図２０】第２の実施の形態におけるシステム全体の処理を説明するための図である。
【図２１】識別子処理装置の処理フローを示す図である。
【図２２】識別子処理装置の処理を説明するための図である。
【図２３】カバレッジ検出装置の処理フローを示す図である。
【図２４】カバレッジ検出装置の処理を説明するための図である。
【図２５】コンピュータの機能ブロック図である。
【符号の説明】
【００８３】
１  テンプレート格納部    ３  ソースコード格納部
５  コンパイラ    ７  実行環境
９  固定文字列抽出ルール格納部    １１  固定文字列抽出装置
１３  固定文字列テーブル格納部    １５，２７  カバレッジ検出装置
２１  識別子挿入ルール格納部    ２３  識別子処理装置
２５  識別子テーブル格納部    ７１  Ｗｅｂサーバ
７２  プレゼン層    ７３  アプリ層
７４  ＤＢ    ７５  ソフトウェア
【図１】
2010026749.tif 000003
【図２】
2010026749.tif 000004
【図３】
2010026749.tif 000005
【図４】
2010026749.tif 000006
【図５】
2010026749.tif 000007
【図６】
2010026749.tif 000008
【図７】
2010026749.tif 000009
【図８】
2010026749.tif 000010
【図９】
2010026749.tif 000011
【図１０】
2010026749.tif 000012
【図１１】
2010026749.tif 000013
【図１２】
2010026749.tif 000014
【図１３】
2010026749.tif 000015
【図１４】
2010026749.tif 000016
【図１５】
2010026749.tif 000017
【図１６】
2010026749.tif 000018
【図１７】
2010026749.tif 000019
【図１８】
2010026749.tif 000020
【図１９】
2010026749.tif 000021
【図２０】
2010026749.tif 000022
【図２１】
2010026749.tif 000023
【図２２】
2010026749.tif 000024
【図２３】
2010026749.tif 000025
【図２４】
2010026749.tif 000026
【図２５】
2010026749.tif 000027