(57)【要約】      （修正有）【課題】ウェブサイトのテストをより簡便に行えるよう支援するウェブ検査プログラムを提供する。【解決手段】ウェブ検査プログラムは、ウェブサイトから、複数の入力項目を特定しＳ２０２、入力項目の各々の規約を推定するＳ２０４。推定された規約の各々に対応した入力値の集合を、対応テーブルから取得するＳ２０８。取得した入力値の集合の各々から１つずつ要素を取り出してＳ２１０、複数の入力項目の各々に入力する要素の組を生成するＳ２１２。要素の所定の組を複数の入力項目に入力したときのウェブサイトの予測される応答を推定するＳ２１４。要素の所定の組を複数の入力項目に実際に入力してウェブサイトの実際の応答を取得するＳ２１６。予測される応答と実際の応答とが相違する場合における、入力された要素の所定の組に基づいて、ウェブサイトの欠陥の有無及び／又は欠陥の内容を出力するＳ２１８。【選択図】図２
2019191689.tif 000002
【特許請求の範囲】
【請求項１】
ウェブサイトから、複数の入力項目を特定するステップと、
前記ウェブサイトから、前記複数の入力項目の各々の規約を推定するステップと、
推定された前記規約の各々に対応した入力値の集合を、対応テーブルから取得するステップと、
取得した前記入力値の集合の各々から１つずつ要素を取り出して、前記複数の入力項目の各々に入力する要素の組を生成するステップと、
前記要素の所定の組を前記複数の入力項目に入力したときの前記ウェブサイトの予測される応答を推定するステップと、
をコンピュータに実行させるウェブ検査プログラム。
【請求項２】
前記要素の前記所定の組を前記複数の入力項目に実際に入力して前記ウェブサイトの実際の応答を取得するステップと、
前記予測される応答と前記実際の応答とが相違する場合における、前記入力された要素の所定の組に基づいて、前記ウェブサイトの欠陥の有無及び／又は前記欠陥の内容を出力するステップと、
を更にコンピュータに実行させる請求項１に記載のウェブ検査プログラム。
【請求項３】
前記複数の入力項目の各々の規約は、前記ウェブサイトにおいて定められた条件を持ち、前記規約の各々に対応した入力値の集合は、前記定められた条件を満たす要素と、前記定められた条件を満たさない要素とを含む、
請求項１又は２に記載のウェブ検査プログラム。
【請求項４】
前記規約を、オペレータから受け取るステップ、
を更にコンピュータに実行させる、
請求項１ないし３のうちいずれか１項に記載のウェブ検査プログラム。
【請求項５】
前記規約を推定するステップは、前記ウェブサイトのＨＴＭＬソースにおいて、入力項目の周辺の記述の特徴を認識するステップを含む、
請求項１ないし４のうちいずれか１項に記載のウェブ検査プログラム。
【請求項６】
ウェブサイトから、複数の入力項目を特定する手段と、
前記ウェブサイトから、前記複数の入力項目の各々の規約を推定する手段と、
推定された前記規約の各々に対応した入力値の集合を、対応テーブルから取得する手段と、
取得した前記入力値の集合の各々から１つずつ要素を取り出して、前記複数の入力項目の各々に入力する要素の組を生成する手段と、
前記要素の所定の組を前記複数の入力項目に入力したときの前記ウェブサイトの予測される応答を推定する手段と、
を有するウェブ検査装置。
【請求項７】
前記要素の前記所定の組を前記複数の入力項目に実際に入力して前記ウェブサイトの実際の応答を取得する手段と、
前記予測される応答と前記実際の応答とが相違する場合における、前記入力された要素の所定の組に基づいて、前記ウェブサイトの欠陥の有無及び／又は前記欠陥の内容を出力する手段と、
を更に有する請求項６に記載のウェブ検査装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウェブ検査プログラム及びウェブ検査装置に関する。
【背景技術】
【０００２】
従来より、入力欄などが存在するウェブサイトの構築においては、そのウェブサイトが正常に動作するかを、ウェブサイト構築後、公開前にチェックする作業が行われている。
通常は、正常にウェブサイトが動作する妥当な入力値と、不正な入力値を組み合わせて、複数の入力欄にデータを入力し、ウェブサイトの応答が正常に行われるかをチェックすることが行われている。このチェックのためのサンプルデータは、入力欄が多いウェブサイトでは滂沱な量になることが多い。しかも、サンプルデータを手作業で準備することは、手間のかかることである。
【０００３】
動的なウェブページに対する動作テストを再現するためのテスト・プログラムを作成し実行する以下の技術がある。操作記録部は、動作確認対象のウェブページに対するデータ入力操作を検出し、データ入力操作に対応する関数であってウェブページへの入力データを取得するためのインタフェースを備える関数を、操作内容ファイルに記録する。オブジェクト検出部は、ページ構成ファイルの中から、ユーザ操作に応じたイベントを発生させるためのイベントハンドラが埋め込まれているオブジェクトを検出する。イベント記録部は、イベントハンドラが埋め込まれているオブジェクトで発生するイベントに対応する関数を操作内容ファイルに記録する。動的タグ記録部は、ページ構成ファイル内にオブジェクトを動的に作成するプログラムが含まれている場合、動的に作成されたオブジェクトに対するユーザ操作を操作内容ファイルに記録する（例えば、特許文献１参照）。
【０００４】
また、以下の技術が存在する。
ウェブページを表示するウェブブラウザに対する操作に応じたウェブサーバの動作確認のためのテスト・プログラムを実行させる装置であって、ウェブページに含まれるオブジェクトの識別情報と、オブジェクトをマウス・クリックする操作またはオブジェクトに対するデータ入力操作で入力されたデータとの組み合わせが記録されたログを取得し、マウス・クリックする操作またはデータ入力操作を自動的に実行する処理がそれぞれ記述されたロジックが組み込まれた関数が記録される操作内容ファイルに対して、ログに記録されたデータ入力操作についてはウェブページに含まれるオブジェクトの識別情報とオブジェクトに入力されたデータを記述した入力データファイル内の入力データを指定する識別子とを引数とする入力関数を記録し、ログに記録されたマウス・クリックする操作については各操作の操作対象であるオブジェクトの識別情報を引数とする関数を記録する操作記録部と、操作内容ファイルに記録された関数を呼び出すコールステップを組み合わせたプログラムコードを設定することにより、ウェブページに対して実行された一連の操作を再現するためのテスト・プログラムを生成するプログラム生成部と、操作内容ファイルとは異なる入力データファイルから識別子で指定される入力データを取得して入力関数に渡すことにより、テスト・プログラムを実行させるプログラム実行部と、を備えることを特徴とする動作検証装置がある（例えば、特許文献２参照）。
【０００５】
複数クライアントから同時にアクセスされ、該クライアント対応の複数の画面操作内容を表示するウエブアプリケーションを行うシミュレーションシステムにおける画面操作内容の表示方法において、前記複数のクライアント対応のスプリクトを実行する第１のステップと、該第１のステップにより実行したクライアント対応の複数の画面操作内容を表示する機械言語を格納する第２ステップと、該第２ステップにより格納した機械言語に含まれる検索文字列を設定する第３のステップと、該第３のステップにより設定された機械言語の文字列をキーとして任意のスプリクトにおける画面操作内容を表示する機械言語を検索し、前記第２ステップで格納した画面操作内容を表示する第４のステップとを含む技術が存在する（例えば、特許文献３参照）。
【０００６】
また、ウェブサイトのテストツールとしては、例えばSeleniumがある。Seleniumは、ブラウザに対するアドオンのツールとして機能する。オペレータが、検査ターゲットのウェブサイトに対してブラウザを用いて操作すると、その操作履歴が保存される。この操作履歴に基づいて、ＨＴＭＬテストスクリプトが作成される。このようにして、ブラウザ操作によりテストスクリプトのベースを作成する。このＨＴＭＬテストスクリプトを実行すれば、オペレータと同様の操作をリプレイできる。しかしながら、ウェブサイトにどのような入力値を与えるか、ウェブサイトの応答の判断に用いるウェブサイト上のテキストの位置及びその内容などを具体的に指定する必要がある。このため、予め、テストケースを手動で準備する等、ウェブサイトのチェックを実行するには、手間のかかる作業も存在している。
また、入力欄の多いウェブサイトなどでは、テストケースが膨大になるなどの困難性が存在している（例えば、非特許文献１参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第４６８１６７３号公報
【特許文献２】特許第４７９５４４６号公報
【特許文献３】特開２００２−２３６５９８号公報
【非特許文献】
【０００８】
【非特許文献１】（２０１８年3月１９日アクセス）https://e-algorithm.xyz/selenium/
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、上記のような、ウェブサイトのテストをより簡便に行えるよう支援を行うことを目的としている。
【課題を解決するための手段】
【００１０】
実施形態によれば、ウェブサイトから、複数の入力項目を特定するステップと、前記ウェブサイトから、前記複数の入力項目の各々の規約を推定するステップと、推定された前記規約の各々に対応した入力値の集合を、対応テーブルから取得するステップと、取得した前記入力値の集合の各々から１つずつ要素を取り出して、前記複数の入力項目の各々に入力する要素の組を生成するステップと、前記要素の所定の組を前記複数の入力項目に入力したときの前記ウェブサイトの予測される応答を推定するステップと、をコンピュータに実行させるウェブ検査プログラムが提供される。また、同様の機能を有するウェブ検査装置が提供される。
【発明の効果】
【００１１】
開示の実施形態によれば、ウェブサイトのテストをより簡便に行えるよう支援を行うことができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態のブロック図である。
【図２】実施形態のフローチャートである。
【図３】予測されたウェブサイトの応答と実際の応答とからウェブの欠陥を発見する例を示すフローチャートである。
【図４】ウェブサイトの入力画面の例を示す図である。
【図５】ウェブサイトの応答画面の例を示す図である。
【図６】ウェブサイトの入力値の集合を示す表である。
【図７】ウェブサイトの入力に失敗した場合の応答画面の例を示す図である。
【図８】ウェブサイトの入力項目の各々に入力する要素の組を生成した例を示す表である。
【図９】実施形態のハードウエア構成を示す図である。
【発明を実施するための形態】
【００１３】
以下、種々の実施形態について、図面を参照しながら説明する。各実施形態は、例示であって、請求項に記載された発明を限定するためのものではない。また、各実施形態にかかるウェブ検査プログラムのフローは、時系列的に示したが、矛盾の無い限り、入れ替えることができる。また、フローチャートの各ステップと、ウェブ検査装置の機能ブロック図の各機能とは、相互に補完しあうものであり、排他的なものではない。したがって、機能ブロック図に描かれた各機能をフローチャートの各フローと解釈してもよいし、フローチャートに描かれた各ステップの動作を機能ブロック図の動作と解釈することも当然に可能である。
【００１４】
＜実施形態１＞
図１は、実施形態のブロック図である。複数の入力項目を特定する手段１０２は、オペレータ等からウェブサイトのＵＲＬを受け取る。受け取られたＵＲＬによって、目的のウェブサイトにアクセスし、ＨＴＭＬ情報を受け取る。そして、複数の入力項目を特定する手段１０２は、ＨＴＭＬを解析し、入力項目があればその入力項目を特定する。
【００１５】
入力項目の各々の規約を推定する手段１０４は、各入力項目の規約を推定する。規約とは、例えば、氏名のふりがなを入力する欄であれば、その入力欄に入力され得る文字がカナなのかひらがななのか、或いは、半角なのか全角なのか、などの入力条件を意味する。ＨＴＭＬの周辺の記述の特徴を認識する手段１０５は、例えば、inputタグの親要素をトラバースして、例えば「ふりがな」などの表示文字を抽出したり、inputタグの周辺に存在する入力の案内のテキスト、例えば「全角ひらがなで入力してください」などの表示文字を解析する機能を有する。このような解析を行うことで、入力項目の規約を効率よく推定することができる。
【００１６】
入力項目の規約をオペレータから受け取る手段１０６は、オペレータから、入力項目の規約に含まれ得る入力条件を受け取ることができる。入力項目の各々の規約を推定する手段１０４により推定された入力条件に加えて、オペレータの指示する入力条件を加味することにより、より正確な入力項目の規約を取得することができる。なお、実施形態は、オペレータからの指示が必須のものではない。
【００１７】
例えば、パスワードに関して、半角英数字に加えて、%&#などの特殊文字を1つ以上加え、かつ半角英文字は大文字と小文字を含み、かつ全体で８文字以上というような、パスワードの条件を必須とするウェブサイトがある。このような条件がパスワードの入力欄と離れたところに記載されている場合には、ＨＴＭＬの周辺の記述の特徴を認識する手段１０５が、これらの条件を取得するのに失敗する場合がある。このような場合には、ＨＴＭＬの周辺の記述の特徴を認識する手段１０５を介して、オペレータからの指示を受け入れることができるようにすることが望ましい。
なお、この規約には、入力項目が必須の入力項目か、任意の入力項目かを含むことが望ましい。なお、任意の入力項目か必須の入力項目かを認識する例としては、入力欄の近くに「＊」などの文字が記載されている場合が多い。そして、ウェブサイトの中で、「＊」に関しての説明、例えば「＊は必須入力項目です。」などの標記がされている場合が多い、このようなウェブサイトの記載を手掛かりに、各入力項目が必須の入力項目であるか否かを認識することができる。また、例えば、通常必須の入力項目であるＩＤ、パスワードの入力項目などは、デフォルトとして、必須の入力項目であることをあらかじめ定めておいてもよい。この場合においても、デフォルトとして与えられた必須の入力項目が任意であることが認識された場合には、任意の入力項目に変更することができることは言うまでもない。
【００１８】
規約の各々に対応した入力値の集合を対応テーブルから取得する手段１０８は、取得された規約を基にして、具体的なテストケースを作るための入力値の対応テーブル１１０を検索する。入力値の対応テーブル１１０には、様々なテストケースを想定して、具体的な入力値が格納されている。格納された入力値は、規約をキーにして検索することができる。検索された入力値は、規約に合致した正しい入力値と誤りの存在する入力値との双方が含まれていることが望ましい。例えば、規約のうちの一部を満たさない入力値は、誤った入力値である確率が非常に高い。このような誤った入力値も含めて、入力値の組を、入力値の対応テーブル１１０の中に予め格納しておく。正しい入力値と誤りの存在する入力値との双方が含まれている入力値の組を用いることで、ウェブサイトを網羅的にチェックすることができる。この詳細は後述する。
なお、入力値の対応テーブル１１０は、取得された規約と、規約に合致した正しい入力値及び誤りの存在する入力値との双方とが対になって記憶されたデータベースなどであってもよい。
【００１９】
なお、未知のウェブサイトである場合には、入力値の対応テーブル１１０に入力値の候補が存在しない場合も想定される。そのような場合には、オペレータ自身からの提案、あるいはウェブサイトの仕様書、ウェブサイトのスクリプトを基にして、オペレータから、正しい入力値と、誤りの入力値を取得してもよい。取得された入力値は、正誤の区別と、その規約の条件をキーにして、入力値の対応テーブル１１０に格納しておくようにすることが望ましい。このようにすれば、入力値の対応テーブル１１０の網羅性が向上することになる。入力値の集合の具体例については、図６を用いて後述する。
また、パスワードのように、パスワードに含まれる文字の構成について様々な規約が定められている場合がある。例えば、以下のようなパスワードの設定規約が挙げられる。
（１）パスワードは、８文字以上であって、数字及び英文字がそれぞれ１文字以上含まれていなければならない。
（２）パスワードは、４文字以上であって、数字のみで構成されていなければならない。
（３）パスワードは、８文字以上であって、数字及び英文字がそれぞれ１文字以上含まれ、英文字は小文字と大文字を含んでいなければならない。
（４）パスワードは、８文字以上であって、数字及び英文字がそれぞれ１文字以上含まれ、英文字は小文字と大文字を含んでおり、かつ特殊文字「＆％＄＃！[ ]」のいずれかが１文字以上含まれていなければならない。
上記のような場合には、入力値の対応テーブル１１０を検索する代わりに、試験用のパスワードの組を生成するアルゴリズムを用いてもよい。
この試験用のパスワードの組を生成するアルゴリズムの入力には、「パスワードの文字数の規約」（例えば、文字数の最小値をオペレータが指示できるようにする。）、「１文字以上含まれていなければならない構成文字」（例えば、１文字以上含まれなければならない文字種（数字、英字、英字大文字、英字小文字、％などの特殊文字を、オペレータが指示できるようにする。）
また、これらのパスワードの規約に合致しない誤りのパスワードも出力するよう、試験用のパスワードの組を生成するアルゴリズムを設定すればよい。
【００２０】
入力する要素の組を生成する手段１１２は、複数の入力項目の各々に対して得られた入力値の集合から、一つずつ集合の要素を取り出して、複数の入力項目に入力する具体的な入力値の組を作成する。この入力値の組は、複数個作成されることが望ましい。この入力値の組には、正しい入力値だけを含む組及び、正しい入力値に加えて、誤った入力値を含む組を作ることが望ましい。なお、入力する項目が多い場合又は集合に含まれる要素が多い場合には、複数の入力項目に入力する具体的な入力値の組の数が膨大になることがある。ウェブサイトのテストを合理的な時間で終えるためには、入力値の組の数を調整することが必要となる場合がある。効率的に入力値の組を作る手法としては、組合せテストの工数を削減するペアワイズ法などの周知のテスト工数削減手法を利用することが望ましい。
【００２１】
ウェブサイトの予測される応答を推定する手段１１６は、入力値の組に応じて、ウェブサイトが入力の成功の応答を返すか、入力の失敗の応答を返すかを予め推測する手段である。例えば、全ての入力値が適切であるとされる入力値の組をウェブサイトに適用した場合には、ウェブサイトは、入力成功の応答を返すと予測される。これに対して、１つでも適切でない入力値を含む入力値の組をウェブサイトに適用した場合には、ウェブサイトは、入力失敗の応答を返すと予測される。このようにして、予め、ウェブサイトの応答を予測しておく。なお、予測される応答を推定する際には、それぞれの項目が必須の入力項目であるか否かも考慮する。
このような入力値の組を取得することができれば、これらの入力値を順次生成することで、ウェブサイトのテスト用の入力要素の集合と、予測される応答を取得することができる。このように、ウェブサイトのテスト用の入力要素の集合と、予測される応答が簡便に取得することができるため、その後のウェブサイトのテストを網羅的にかつ迅速に実行することができる。
【００２２】
ウェブサイトの実際の応答を取得する手段１１４は、実際に、入力値の組をウェブサイトに適用した場合に、実際のウェブサイトの応答（入力成功又は入力失敗）の応答を取得する手段である。
【００２３】
ウェブサイトの欠陥の有無及び／又は欠陥の内容を出力する手段１１８は、予測されたウェブサイトの応答と、ウェブサイトの実際の応答とを比較する。比較において、一致した場合には、予測通りであり、パスしたことになる。これに対して、比較において、不一致が発生した場合には、ウェブサイトに欠陥が存在するか、予測が誤っていたかのいずれかである。予測が誤っていることは、ウェブサイトの欠陥が見つからず、適用された入力値の組とウェブサイトの仕様を十分チェックして、予測が誤っていたことが発見されることとなる。この場合には、チェック結果に基づいて、入力項目の各々の規約を推定する手段１０４及び入力値の対応テーブル１１０を適切に改善することが望ましい。
【００２４】
ウェブサイトの欠陥の発見手法の具体例については、図３及び図８を用いて後述する。また、入力値の組をウェブサイトに適用する手法については、ブラウザを操作する操作者をシミュレートするスクリプトをウェブサイトに適用することによって実現できる。この技術については、Seleniumなど、周知の既存の手法が存在するので、詳細な説明は省略する。
【００２５】
以上のようにして、ウェブサイトの欠陥に関する検査結果が得られる。本実施形態によって、ほぼ自動的に、網羅性のある入力値の組を複数作成することができる。この入力値の組が生成されることによって、ウェブサイトの検査の作業を支援することができる。
さらに、これらの入力値の組を自動的にウェブサイトに適用することにより、ウェブサイトの欠陥をより容易に発見することができる。
【００２６】
＜実施形態２＞
図２は、実施形態のフローチャートである。本実施形態は、コンピュータに実行されるプログラム又は該プログラムを格納した記憶媒体により実現される。また、本実施形態は、方法の発明としても実施されることは言うまでもない。
以下に、図２に示す本実施形態の各ステップを説明する。
【００２７】
［ステップＳ２０２］複数の入力項目が特定される。オペレータ等からウェブサイトのＵＲＬを受け取る。本ステップは、受け取られたＵＲＬによって、目的のウェブサイトにアクセスし、ＨＴＭＬ情報を受け取る。そして、本ステップは、ＨＴＭＬ情報を解析し、入力項目があればその入力項目を特定する。
【００２８】
［ステップＳ２０４］各入力項目の規約が推定される。規約とは、例えば、氏名のふりがなを入力する欄であれば、その入力欄に入力され得る文字がカナなのかひらがななのか、或いは、半角なのか全角なのか、などの入力条件を意味する。
【００２９】
［ステップＳ２０６］ステップＳ２０４は、ステップＳ２０６を含む。このステップにおいて、ＨＴＭＬの周辺の記述の特徴が認識される。例えば、ｉｎｐｕｔタグの親要素をトラバースして、例えば「ふりがな」などの表示文字を抽出したり、ｉｎｐｕｔタグの周辺に存在する入力の案内のテキスト、例えば「全角ひらがなで入力してください」などの表示文字を解析する機能を有する。このような解析を行うことで、入力項目の規約を効率よく推定することができる。
【００３０】
［ステップＳ２０８］このステップによって、入力項目の規約がオペレータから受け取られる。すなわち、オペレータから、入力項目の規約に含まれ得る入力条件を受け取ることができる。ステップＳ２０４により推定された入力条件に加えて、オペレータの指示する入力条件を加味することにより、次のステップＳ２１０において、より正確な入力項目の規約を取得することができる。
【００３１】
［ステップＳ２１０］規約の各々に対応した入力値の集合が、入力値の対応テーブル１１０から取得される。取得された規約を基にして、具体的なテストケースを作るための入力値の対応テーブル１１０を検索する。入力値の対応テーブル１１０には、様々なテストケースを想定して、具体的な入力値が格納されている。格納された入力値は、規約をキーにして検索することができる。検索された入力値は、規約に合致した正しい入力値と誤りの存在する入力値との双方が含まれていることが望ましい。例えば、規約のうちの一部を満たさない入力値は、誤った入力値である確率が非常に高い。このような誤った入力値も含めて、入力値の組を、入力値の対応テーブル１１０の中に予め格納しておく。正しい入力値と誤りの存在する入力値との双方が含まれている入力値の組を用いることで、ウェブサイトを網羅的にチェックすることができる。この動作の詳細は後述する。
なお、入力値の対応テーブル１１０は、取得された規約と、規約に合致した正しい入力値及び誤りの存在する入力値との双方とが対になって記憶されたデータベースなどであってもよい。
【００３２】
［ステップＳ２１２］入力する要素の組が生成される。本ステップは、複数の入力項目の各々に対して得られた入力値の集合から、一つずつ集合の要素を取り出して、複数の入力項目に入力する具体的な入力値の組を作成する。この入力値の組は、複数個作成されることが望ましい。この入力値の組には、正しい入力値だけを含む組及び、正しい入力値に加えて、誤った入力値を含む組を作ることが望ましい。
【００３３】
［ステップＳ２１４］ウェブサイトの予測される応答が推定される。本ステップは、入力値の組に応じて、ウェブサイトが入力の成功の応答を返すか、入力の失敗の応答を返すかを予め推測する。例えば、全ての入力値が適正とされる入力値の組をウェブサイトに適用した場合には、ウェブサイトは、入力成功の応答を返すと予測される。これに対して、１つでも適正でない入力値を含む入力値の組をウェブサイトに適用した場合には、ウェブサイトは、入力失敗の応答を返すと予測される。このようにして、予め、ウェブサイトの応答を予測しておく。
【００３４】
［ステップＳ２１６］ウェブサイトの実際の応答が取得される。実際に、入力値の組がウェブサイトに適用された場合に、実際のウェブサイトの応答（入力成功又は入力失敗の応答）が取得される。
【００３５】
［ステップＳ２１８］ウェブサイトの欠陥の有無及び／又は欠陥の内容が出力される。本ステップは、予測されたウェブサイトの応答と、ウェブサイトの実際の応答とを比較する。比較において、一致した場合には、予測通りであり、パスしたことになる。これに対して、比較において、不一致が発生した場合には、ウェブサイトに欠陥が存在するか、予測が誤っていたかのいずれかである。予測が誤っている場合には、ウェブサイトの欠陥が見つからず、適用された入力値の組とウェブサイトの仕様を十分チェックすることで、予測が誤っていたことが発見されることとなる。この場合には、入力項目の各々の規約を推定するステップＳ２０４のアルゴリズム及び入力値の対応テーブル１１０を適切に改善することが望ましい。ウェブサイトの欠陥の発見手法の具体例については、図３及び図８を用いて後述する。
【００３６】
以上のようにして、本実施形態のプログラムがコンピュータにより実行される。なお、本実施形態２は、既に説明した実施形態１の動作と同様である。詳細な動作は、実施形態１を参照することにより、より深く理解することができる。
【００３７】
本プログラムによって、ウェブサイトの欠陥に関する検査結果が得られる。本実施形態のプログラムによって、ほぼ自動的に、網羅性のある入力項目の組を複数作成することができる。この入力値の組が生成されることによって、ウェブサイトの検査の作業を支援することができる。
さらに、これらの入力値の組を自動的にウェブサイトに適用することにより、ウェブサイトの欠陥をより容易に発見することができる。
【００３８】
＜実施形態３＞
図３は、予測されたウェブサイトの応答と実際の応答とからウェブの欠陥を発見する例を示すフローチャートである。
以下に、図３に示す本実施形態の各ステップを説明する。なお、下記の動作は、図８においても詳述される。図３に示すステップＳ３０６ないしステップＳ３２０は、図２におけるステップＳ２１８の動作を詳細に示すものである。なお、図３のフローは、予測される応答が正しい場合を前提としたフローであることに留意されたい。
［ステップＳ３０２］本ステップは、図２におけるステップＳ２１４と同じである。
［ステップＳ３０４］本ステップは、図２におけるステップＳ２１６と同じである。
【００３９】
［ステップＳ３０６］本ステップにおいて、予測される応答は実際の応答と同じかが判断される。判断が肯定的（「はい」）である場合には、ステップＳ３１０に進む。判断が否定的（「いいえ」）である場合には、ステップＳ３０８に進む。
【００４０】
［ステップＳ３０８］本ステップで、使用した要素の組に関しては、ウェブサイトに欠陥ありと判断される。なぜなら、予測される応答と実際の応答とが相反するからである。
【００４１】
［ステップＳ３１０］本ステップで、使用した要素の組に関しては、ウェブサイトに欠陥なしと判断される。なぜなら、予測される応答と実際の応答とが同じであるからである。
［ステップＳ３１２］入力する要素の組が終わるまで、「開始」に戻って、処理を繰り返す。
【００４２】
［ステップＳ３１４］本ステップで、実際の応答は「失敗」したのに「成功」するとの予測をしたかが判断される。判断が肯定的（「はい」）である場合には、ステップＳ３１８に進む。判断が否定的（「いいえ」）である場合には、ステップＳ３１６に進む。
【００４３】
［ステップＳ３１６］このステップに到達した場合には、入力された要素の組のうち、誤りの要素が、誤りでないと判断されたことが判明することとなる。したがって、誤りの要素に対応するウェブサイトの項目の処理ロジックに欠陥があることが特定される。この特定は、オペレータに報知されることとなる。
【００４４】
［ステップＳ３１８］このステップに到達した場合には、本ステップは、実際の応答が「成功」した他の要素の組との比較判断を行い、どの要素に対応するウェブの項目の処理ロジックが誤りかを特定する。具体例については、図８を用いて説明する。
［ステップＳ３２０］入力する要素の組が終わるまで、「開始」に戻って、処理を繰り返す。
【００４５】
以上のようにして、ウェブサイトの欠陥の場所及びその態様が明らかとなる。このため、この結果が提供されたオペレータは、ウェブサイトの欠陥をより容易に発見することができ、その対策をより容易に講じることができる。
【００４６】
＜実施形態４＞
図４は、ウェブサイト４００の入力画面の例を示す図である。図４では、ウェブサイト４００において、「お客様登録フォーム」が表示されている。このウェブサイト４００は、ウェブサイト４００を管理する主体が提供するサービスの会員になるための諸情報の入力を、お客様に促すウェブサイトの例である。
【００４７】
このようなウェブサイト４００を構築した場合には、複数の入力項目にテストデータを入力して、ウェブサイト４００が正常な動作をするか否かをチェックすることが必要となる。
【００４８】
ウェブサイト４００には、最上段に、「名前」４０２、「＊」４０４、名前入力欄４０６及び入力のための説明文「全角半角」４０８が表示されている。なお、「＊」４０４は、説明文４９５に記載されているように、名前入力欄４０６が必須入力欄であることを示している。
【００４９】
その他、ウェブサイト４００は、ふりがな入力欄４１０、メールアドレス入力欄４２０、パスワード入力欄４３０、パスワード（確認用）入力欄４４０、性別のラジオボタン「男性」４５２、「女性」４５３、郵便番号入力欄４６０、都道府県選択欄４７０、市区町村番地等入力欄４８０及び利用規約同意チェックボックス４９０を有する。
【００５０】
図５は、ウェブサイトの応答画面の例を示す図である。図５の応答画面は、図４に示した各入力項目に対応する欄に、適切な値が適用されて、会員登録が完了した画面５００であり、「会員登録完了」５１０、「登録完了しました。」５２０及び「ログインページは、こちらです。」５３０が表示されている。
【００５１】
本実施形態に係るプログラム及び装置は、この、会員登録が完了した画面５００のＨＴＭＬソースから、例えば、「登録完了」５２０の文字の存在を認識することにより、図４のお客様登録画面の全項目の入力が成功したことを認識することができる。
【００５２】
図６は、ウェブサイトの入力値の集合を示す表６００である。ＨＴＭＬ位置６１０は、ウェブサイトのＨＴＭＬソースの場所を示している。なお、図６においては、位置の一部を簡略的に示している。実際の位置は、文字数が長くなるので省略した。例えば、ＨＴＭＬ位置６１１は、「...type(1)>td>input」というように簡略化して示しているが、実際には、「html > body > div:nth-of-type(2) > div > form > table > tbody > tr:nth-of-type(1) > td > input」である。他のＨＴＭＬ位置についても同様に簡略化して示している点に留意されたい。
ＨＴＭＬ中の名前６２０は、ＨＴＭＬソースの中で、入力項目がどのような名前で処理されているかを抽出した項目である。
【００５３】
項目規約６３０は、ＨＴＭＬの入力項目６４０の周辺に存在するテキスト（周辺テキスト６５０）によって自動的に認識された項目の規約である。例えば、入力項目（氏名）においては、「全角 or 半角」と「必須」が認識されている。この認識は、周辺テキスト６５０が「名前＊全角半角」を調べることによって可能となる。また、図示していないが、ＨＴＭＬ中の<INPUT>タグのタイプ「type=”text”」を参照することにより、文字列を入力対象としていることがわかる（不図示）。周辺テキスト「全角」「半角」から、項目規約として「全角or半角」が条件であることが判明する。加えて「＊」「＊は必須入力項目です。」が周辺のテキストに存在するため、「必須」の項目であることがわかる。したがって、例えばこの項目を空欄とすることは、許容されないことがわかる。
【００５４】
入力値の集合６６０は、例えば、項目規約６３０をキーにして、上述した入力値の対応テーブルを検索することで取得することができる（６６２、６６４、６６６、６６８）。したがって、入力値の対応テーブル１１０には、あらかじめ、項目の規約に適合する具体的な入力値の例と、項目の規約に適合しない入力値の例とを格納しておくことが望ましい。項目の規約に適合しない入力値の例は、項目に適合する規約と紐づけて格納しておいて、項目の規約に適合する入力値と適合しない入力値を合わせて抽出してもよい。或いは、項目の規約の一部の条件を除いて、入力値の対応テーブルを検索した際に新たに抽出された入力値を、項目の規約に適合しない入力値に用いてもよい。
【００５５】
なお、上述のように、入力値の集合が見つからない場合には、オペレータによる指示を促してもよい。オペレータにより、具体的な入力値を入力値の集合６６０にエントリするようにしてもよい。その際、項目規約６３０にもオペレータからの入力を促すようにしてもよい。オペレータにより入力された具体的な入力値と、入力された項目規約６３０とを対にして、入力値の対応テーブルに格納することで、入力値の対応テーブルの内容を充実させることができる。
なお、入力値の集合６６０において、［  ］で囲まれた入力値は、項目の規約に適合しない入力値を示している。
以上のようにして、入力項目の各々の規約に対応した入力値の集合（規約に適合する入力値と、規約に適合しない入力値の双方）を取得することができる。
【００５６】
なお、例えば、パスワードなどの具体的な入力値の生成については、既に述べたように入力値の対応テーブル１１０を検索するのではなく、オペレータによって与えられた規約（条件）に応じて、パスワードの入力値（規約に適合するものと適合しないもの）をプログラムにより生成するようにしてもよい。このプログラムは、パスワードの文字数、文字種別、大文字小文字、特殊文字などの構成要素のうち、どの構成要素を必須とするか、又はその条件をオペレータから取得して、その条件に合致したパスワードの値と合致しないパスワードの値とを出力するように構成すればよい。
【００５７】
図７は、ウェブサイトの入力に失敗した場合の応答画面７００の例を示す図である。ウェブサイトの入力に失敗した場合には、例えば、応答画面７００の中に「入力に不備があります」７１０のような文字が表示されるのが通常である。このように、応答画面７００に「入力に不備があります」７１０のような表示が存在するかを、ＨＴＭＬソースから検索することで、実際に、入力が成功したか、失敗したかがわかる。
【００５８】
また、不備の箇所７２０をハイライトさせたり、赤フォントで表示させたりする場合が多い。このような、画面の変化を応答画面７００から抽出することにより、どの入力項目において、誤りが生じたのかがわかる。たとえば、予測した応答は、成功するはずであったが、実際の応答が失敗の応答であった場合には、このような誤りが生じている個所の表示を探索することによって、ウェブサイトの入力項目の処理における、不備の箇所を特定することもできる。
【００５９】
図８は、ウェブサイトの入力項目の各々に入力する要素の組を生成した例を示す表８００である。図８における入力要素の組１ないし９は、一例であって、全ての組を網羅しているわけではない。要素の組No.１は、入力項目のうちの氏名の項目が山田太郎である入力要素の組を示している。これらの入力要素は、図６の入力値の集合６６０から、各入力項目に対応して１つずつ入力値を選択して、入力する要素の一組が作成されている。
【００６０】
要素の組No.１においては、全ての入力値が適合する入力値であるため、予測応答８５０は、「成功すると予測」している。そして、実際の応答８６０も「成功した」結果を示している。この場合には、予測応答８５０と実際の応答８６０とが一致しているため、この入力要素の組に対しては、ウェブサイトは適正な応答を返していることがわかる。
【００６１】
要素の組No.３においては、予測応答８１３は、成功すると予測している。しかしながら、実際の応答８１５は、失敗の応答を返している。この場合には、例えば、成功すると予測した要素の組No.１と要素の組No.３とを比較することにより、欠陥箇所を推定することが可能である。要素の組No.１と要素の組No.３では、都道府県の入力項目だけが相違している。要素の組No.１の都道府県は「北海道」であり、要素の組No.３の都道府県は、「青森県」である。いずれも、都道府県であるから適正な入力値である。しかしながら、要素の組No.３に対するウェブサイトの実際の応答８１５は、「失敗した」となっているから、この都道府県の入力項目に関するウェブサイトの処理に欠陥がある可能性が高いことがわかる。
【００６２】
要素の組No.５においては、予測応答８２３は、失敗すると予測している。しかしながら、実際の応答８２５は、成功の応答を返している。この場合には、失敗すると予測した根拠となる入力項目すなわちウェブサイトの郵便番号の処理ロジックに欠陥がある可能性が高いことがわかる。図８に示されるように、要素の組No.５の郵便番号８２０は、「abcdeg」である。これは、郵便番号としては、不正な値である。それにもかかわらず。実際の応答８２５は、「成功した」と応答しているから、ウェブサイトの郵便番号の処理ロジックに欠陥がある可能性が高いことがわかる。
【００６３】
以上のように、複数の入力する要素の組を容易に生成でき、かつ、順次これらをウェブサイトに適用することによって、ウェブサイトの欠陥の箇所をより容易に特定することが可能となる。
【００６４】
＜ハードウエア構成＞  
図９は、一実施形態のハードウエア構成９００を示す図である。
ハードウエア構成９００は、ＣＰＵ９０２、メモリ９０４、通信制御装置９０６、入力インタフェース９０８、表示制御部９１０、外部メモリ制御部９１２及び出力インタフェース９１４を有する。
【００６５】
そして、通信制御装置９０６には、ネットワーク９３０（ＷＩＦＩ、有線ＬＡＮ、広域ネットワーク（インターネット）、近距離無線通信等）が接続される。入力インタフェース９０８には、タッチ感知センサ等９４０などが接続される。表示制御部９１０には、ディスプレイ９５０が接続される。外部メモリ制御部９１２は、記憶媒体９６０を読み書きすることができる。出力インタフェースには、スピーカ等９７０などが接続される。
記憶媒体９６０は、ＲＡＭ、ＲＯＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、メモリーカード等であってもよい。
【００６６】
以上説明した実施形態のプログラムは、ハードウエア構成９００を備えるコンピュータにより実行され得る。また，実施形態のプログラムは，コンピュータに実行させる方法として，インプリメントされてもよい。本実施形態のプログラムの一部又は全部は、オペレーティングシステムにより実行されてもよい。また、プログラムの一部がハードウエアにより実現されてもよい。プログラムは記憶媒体９６０又はメモリ９０４に記憶されてもよい。
【００６７】
なお，上述の実施形態において，プログラムのステップは、矛盾のない限り，同時に，又は順序を入れ替えて実行されてもよい。
以上の実施形態は，ハードウエアの装置としてインプリメントされ得る。
以上の実施形態は，請求項に記載された発明を限定するものではなく，例示として取り扱われることは言うまでもない。
【符号の説明】
【００６８】
１０２  複数の入力項目を特定する手段
１０４  入力項目の各々の規約を推定する手段
１０５  ＨＴＭＬの周辺の記述の特徴を認識する手段
１０６  入力項目の規約をオペレータから受け取る手段
１０８  規約の各々に対応した入力値の集合を対応テーブルから取得する手段
１１０  入力値の対応テーブル
１１２  入力する要素の組を生成する手段
１１４  ウェブサイトの実際の応答を取得する手段
１１６  ウェブサイトの予測される応答を推定する手段
１１８  ウェブサイトの欠陥の有無及び／又は欠陥の内容を出力する手段
【図１】
2019191689.tif 000003
【図２】
2019191689.tif 000004
【図３】
2019191689.tif 000005
【図４】
2019191689.tif 000006
【図５】
2019191689.tif 000007
【図６】
2019191689.tif 000008
【図７】
2019191689.tif 000009
【図８】
2019191689.tif 000010
【図９】
2019191689.tif 000011