JP7053017B2 - ウェブ検査プログラム及びウェブ検査装置 - Google Patents

ウェブ検査プログラム及びウェブ検査装置 Download PDF

Info

Publication number
JP7053017B2
JP7053017B2 JP2018080592A JP2018080592A JP7053017B2 JP 7053017 B2 JP7053017 B2 JP 7053017B2 JP 2018080592 A JP2018080592 A JP 2018080592A JP 2018080592 A JP2018080592 A JP 2018080592A JP 7053017 B2 JP7053017 B2 JP 7053017B2
Authority
JP
Japan
Prior art keywords
input
website
elements
response
items
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018080592A
Other languages
English (en)
Other versions
JP2019191689A (ja
Inventor
立野 池田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HEROZ, INC.
Original Assignee
HEROZ, INC.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by HEROZ, INC. filed Critical HEROZ, INC.
Priority to JP2018080592A priority Critical patent/JP7053017B2/ja
Publication of JP2019191689A publication Critical patent/JP2019191689A/ja
Application granted granted Critical
Publication of JP7053017B2 publication Critical patent/JP7053017B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、ウェブ検査プログラム及びウェブ検査装置に関する。
従来より、入力欄などが存在するウェブサイトの構築においては、そのウェブサイトが正常に動作するかを、ウェブサイト構築後、公開前にチェックする作業が行われている。
通常は、正常にウェブサイトが動作する妥当な入力値と、不正な入力値を組み合わせて、複数の入力欄にデータを入力し、ウェブサイトの応答が正常に行われるかをチェックすることが行われている。このチェックのためのサンプルデータは、入力欄が多いウェブサイトでは滂沱な量になることが多い。しかも、サンプルデータを手作業で準備することは、手間のかかることである。
動的なウェブページに対する動作テストを再現するためのテスト・プログラムを作成し実行する以下の技術がある。操作記録部は、動作確認対象のウェブページに対するデータ入力操作を検出し、データ入力操作に対応する関数であってウェブページへの入力データを取得するためのインタフェースを備える関数を、操作内容ファイルに記録する。オブジェクト検出部は、ページ構成ファイルの中から、ユーザ操作に応じたイベントを発生させるためのイベントハンドラが埋め込まれているオブジェクトを検出する。イベント記録部は、イベントハンドラが埋め込まれているオブジェクトで発生するイベントに対応する関数を操作内容ファイルに記録する。動的タグ記録部は、ページ構成ファイル内にオブジェクトを動的に作成するプログラムが含まれている場合、動的に作成されたオブジェクトに対するユーザ操作を操作内容ファイルに記録する(例えば、特許文献1参照)。
また、以下の技術が存在する。
ウェブページを表示するウェブブラウザに対する操作に応じたウェブサーバの動作確認のためのテスト・プログラムを実行させる装置であって、ウェブページに含まれるオブジェクトの識別情報と、オブジェクトをマウス・クリックする操作またはオブジェクトに対するデータ入力操作で入力されたデータとの組み合わせが記録されたログを取得し、マウス・クリックする操作またはデータ入力操作を自動的に実行する処理がそれぞれ記述されたロジックが組み込まれた関数が記録される操作内容ファイルに対して、ログに記録されたデータ入力操作についてはウェブページに含まれるオブジェクトの識別情報とオブジェクトに入力されたデータを記述した入力データファイル内の入力データを指定する識別子とを引数とする入力関数を記録し、ログに記録されたマウス・クリックする操作については各操作の操作対象であるオブジェクトの識別情報を引数とする関数を記録する操作記録部と、操作内容ファイルに記録された関数を呼び出すコールステップを組み合わせたプログラムコードを設定することにより、ウェブページに対して実行された一連の操作を再現するためのテスト・プログラムを生成するプログラム生成部と、操作内容ファイルとは異なる入力データファイルから識別子で指定される入力データを取得して入力関数に渡すことにより、テスト・プログラムを実行させるプログラム実行部と、を備えることを特徴とする動作検証装置がある(例えば、特許文献2参照)。
複数クライアントから同時にアクセスされ、該クライアント対応の複数の画面操作内容を表示するウエブアプリケーションを行うシミュレーションシステムにおける画面操作内容の表示方法において、前記複数のクライアント対応のスプリクトを実行する第1のステップと、該第1のステップにより実行したクライアント対応の複数の画面操作内容を表示する機械言語を格納する第2ステップと、該第2ステップにより格納した機械言語に含まれる検索文字列を設定する第3のステップと、該第3のステップにより設定された機械言語の文字列をキーとして任意のスプリクトにおける画面操作内容を表示する機械言語を検索し、前記第2ステップで格納した画面操作内容を表示する第4のステップとを含む技術が存在する(例えば、特許文献3参照)。
また、ウェブサイトのテストツールとしては、例えばSeleniumがある。Seleniumは、ブラウザに対するアドオンのツールとして機能する。オペレータが、検査ターゲットのウェブサイトに対してブラウザを用いて操作すると、その操作履歴が保存される。この操作履歴に基づいて、HTMLテストスクリプトが作成される。このようにして、ブラウザ操作によりテストスクリプトのベースを作成する。このHTMLテストスクリプトを実行すれば、オペレータと同様の操作をリプレイできる。しかしながら、ウェブサイトにどのような入力値を与えるか、ウェブサイトの応答の判断に用いるウェブサイト上のテキストの位置及びその内容などを具体的に指定する必要がある。このため、予め、テストケースを手動で準備する等、ウェブサイトのチェックを実行するには、手間のかかる作業も存在している。
また、入力欄の多いウェブサイトなどでは、テストケースが膨大になるなどの困難性が存在している(例えば、非特許文献1参照)。
特許第4681673号公報 特許第4795446号公報 特開2002-236598号公報
(2018年3月19日アクセス)https://e-algorithm.xyz/selenium/
本発明は、上記のような、ウェブサイトのテストをより簡便に行えるよう支援を行うことを目的としている。
実施形態によれば、ウェブサイトから、複数の入力項目を特定するステップと、前記ウェブサイトから、前記複数の入力項目の各々の規約を推定するステップと、推定された前記規約の各々に対応した入力値の集合を、対応テーブルから取得するステップと、取得した前記入力値の集合の各々から1つずつ要素を取り出して、前記複数の入力項目の各々に入力する要素の組を生成するステップと、前記要素の所定の組を前記複数の入力項目に入力したときの前記ウェブサイトの予測される応答を推定するステップと、をコンピュータに実行させるウェブ検査プログラムが提供される。また、同様の機能を有するウェブ検査装置が提供される。
開示の実施形態によれば、ウェブサイトのテストをより簡便に行えるよう支援を行うことができる。
実施形態のブロック図である。 実施形態のフローチャートである。 予測されたウェブサイトの応答と実際の応答とからウェブの欠陥を発見する例を示すフローチャートである。 ウェブサイトの入力画面の例を示す図である。 ウェブサイトの応答画面の例を示す図である。 ウェブサイトの入力値の集合を示す表である。 ウェブサイトの入力に失敗した場合の応答画面の例を示す図である。 ウェブサイトの入力項目の各々に入力する要素の組を生成した例を示す表である。 実施形態のハードウエア構成を示す図である。
以下、種々の実施形態について、図面を参照しながら説明する。各実施形態は、例示であって、請求項に記載された発明を限定するためのものではない。また、各実施形態にかかるウェブ検査プログラムのフローは、時系列的に示したが、矛盾の無い限り、入れ替えることができる。また、フローチャートの各ステップと、ウェブ検査装置の機能ブロック図の各機能とは、相互に補完しあうものであり、排他的なものではない。したがって、機能ブロック図に描かれた各機能をフローチャートの各フローと解釈してもよいし、フローチャートに描かれた各ステップの動作を機能ブロック図の動作と解釈することも当然に可能である。
<実施形態1>
図1は、実施形態のブロック図である。複数の入力項目を特定する手段102は、オペレータ等からウェブサイトのURLを受け取る。受け取られたURLによって、目的のウェブサイトにアクセスし、HTML情報を受け取る。そして、複数の入力項目を特定する手段102は、HTMLを解析し、入力項目があればその入力項目を特定する。
入力項目の各々の規約を推定する手段104は、各入力項目の規約を推定する。規約とは、例えば、氏名のふりがなを入力する欄であれば、その入力欄に入力され得る文字がカナなのかひらがななのか、或いは、半角なのか全角なのか、などの入力条件を意味する。HTMLの周辺の記述の特徴を認識する手段105は、例えば、inputタグの親要素をトラバースして、例えば「ふりがな」などの表示文字を抽出したり、inputタグの周辺に存在する入力の案内のテキスト、例えば「全角ひらがなで入力してください」などの表示文字を解析する機能を有する。このような解析を行うことで、入力項目の規約を効率よく推定することができる。
入力項目の規約をオペレータから受け取る手段106は、オペレータから、入力項目の規約に含まれ得る入力条件を受け取ることができる。入力項目の各々の規約を推定する手段104により推定された入力条件に加えて、オペレータの指示する入力条件を加味することにより、より正確な入力項目の規約を取得することができる。なお、実施形態は、オペレータからの指示が必須のものではない。
例えば、パスワードに関して、半角英数字に加えて、%&#などの特殊文字を1つ以上加え、かつ半角英文字は大文字と小文字を含み、かつ全体で8文字以上というような、パスワードの条件を必須とするウェブサイトがある。このような条件がパスワードの入力欄と離れたところに記載されている場合には、HTMLの周辺の記述の特徴を認識する手段105が、これらの条件を取得するのに失敗する場合がある。このような場合には、HTMLの周辺の記述の特徴を認識する手段105を介して、オペレータからの指示を受け入れることができるようにすることが望ましい。
なお、この規約には、入力項目が必須の入力項目か、任意の入力項目かを含むことが望ましい。なお、任意の入力項目か必須の入力項目かを認識する例としては、入力欄の近くに「*」などの文字が記載されている場合が多い。そして、ウェブサイトの中で、「*」に関しての説明、例えば「*は必須入力項目です。」などの標記がされている場合が多い、このようなウェブサイトの記載を手掛かりに、各入力項目が必須の入力項目であるか否かを認識することができる。また、例えば、通常必須の入力項目であるID、パスワードの入力項目などは、デフォルトとして、必須の入力項目であることをあらかじめ定めておいてもよい。この場合においても、デフォルトとして与えられた必須の入力項目が任意であることが認識された場合には、任意の入力項目に変更することができることは言うまでもない。
規約の各々に対応した入力値の集合を対応テーブルから取得する手段108は、取得された規約を基にして、具体的なテストケースを作るための入力値の対応テーブル110を検索する。入力値の対応テーブル110には、様々なテストケースを想定して、具体的な入力値が格納されている。格納された入力値は、規約をキーにして検索することができる。検索された入力値は、規約に合致した正しい入力値と誤りの存在する入力値との双方が含まれていることが望ましい。例えば、規約のうちの一部を満たさない入力値は、誤った入力値である確率が非常に高い。このような誤った入力値も含めて、入力値の組を、入力値の対応テーブル110の中に予め格納しておく。正しい入力値と誤りの存在する入力値との双方が含まれている入力値の組を用いることで、ウェブサイトを網羅的にチェックすることができる。この詳細は後述する。
なお、入力値の対応テーブル110は、取得された規約と、規約に合致した正しい入力値及び誤りの存在する入力値との双方とが対になって記憶されたデータベースなどであってもよい。
なお、未知のウェブサイトである場合には、入力値の対応テーブル110に入力値の候補が存在しない場合も想定される。そのような場合には、オペレータ自身からの提案、あるいはウェブサイトの仕様書、ウェブサイトのスクリプトを基にして、オペレータから、正しい入力値と、誤りの入力値を取得してもよい。取得された入力値は、正誤の区別と、その規約の条件をキーにして、入力値の対応テーブル110に格納しておくようにすることが望ましい。このようにすれば、入力値の対応テーブル110の網羅性が向上することになる。入力値の集合の具体例については、図6を用いて後述する。
また、パスワードのように、パスワードに含まれる文字の構成について様々な規約が定められている場合がある。例えば、以下のようなパスワードの設定規約が挙げられる。
(1)パスワードは、8文字以上であって、数字及び英文字がそれぞれ1文字以上含まれていなければならない。
(2)パスワードは、4文字以上であって、数字のみで構成されていなければならない。
(3)パスワードは、8文字以上であって、数字及び英文字がそれぞれ1文字以上含まれ、英文字は小文字と大文字を含んでいなければならない。
(4)パスワードは、8文字以上であって、数字及び英文字がそれぞれ1文字以上含まれ、英文字は小文字と大文字を含んでおり、かつ特殊文字「&%$#![ ]」のいずれかが1文字以上含まれていなければならない。
上記のような場合には、入力値の対応テーブル110を検索する代わりに、試験用のパスワードの組を生成するアルゴリズムを用いてもよい。
この試験用のパスワードの組を生成するアルゴリズムの入力には、「パスワードの文字数の規約」(例えば、文字数の最小値をオペレータが指示できるようにする。)、「1文字以上含まれていなければならない構成文字」(例えば、1文字以上含まれなければならない文字種(数字、英字、英字大文字、英字小文字、%などの特殊文字を、オペレータが指示できるようにする。)
また、これらのパスワードの規約に合致しない誤りのパスワードも出力するよう、試験用のパスワードの組を生成するアルゴリズムを設定すればよい。
入力する要素の組を生成する手段112は、複数の入力項目の各々に対して得られた入力値の集合から、一つずつ集合の要素を取り出して、複数の入力項目に入力する具体的な入力値の組を作成する。この入力値の組は、複数個作成されることが望ましい。この入力値の組には、正しい入力値だけを含む組及び、正しい入力値に加えて、誤った入力値を含む組を作ることが望ましい。なお、入力する項目が多い場合又は集合に含まれる要素が多い場合には、複数の入力項目に入力する具体的な入力値の組の数が膨大になることがある。ウェブサイトのテストを合理的な時間で終えるためには、入力値の組の数を調整することが必要となる場合がある。効率的に入力値の組を作る手法としては、組合せテストの工数を削減するペアワイズ法などの周知のテスト工数削減手法を利用することが望ましい。
ウェブサイトの予測される応答を推定する手段116は、入力値の組に応じて、ウェブサイトが入力の成功の応答を返すか、入力の失敗の応答を返すかを予め推測する手段である。例えば、全ての入力値が適切であるとされる入力値の組をウェブサイトに適用した場合には、ウェブサイトは、入力成功の応答を返すと予測される。これに対して、1つでも適切でない入力値を含む入力値の組をウェブサイトに適用した場合には、ウェブサイトは、入力失敗の応答を返すと予測される。このようにして、予め、ウェブサイトの応答を予測しておく。なお、予測される応答を推定する際には、それぞれの項目が必須の入力項目であるか否かも考慮する。
このような入力値の組を取得することができれば、これらの入力値を順次生成することで、ウェブサイトのテスト用の入力要素の集合と、予測される応答を取得することができる。このように、ウェブサイトのテスト用の入力要素の集合と、予測される応答が簡便に取得することができるため、その後のウェブサイトのテストを網羅的にかつ迅速に実行することができる。
ウェブサイトの実際の応答を取得する手段114は、実際に、入力値の組をウェブサイトに適用した場合に、実際のウェブサイトの応答(入力成功又は入力失敗)の応答を取得する手段である。
ウェブサイトの欠陥の有無及び/又は欠陥の内容を出力する手段118は、予測されたウェブサイトの応答と、ウェブサイトの実際の応答とを比較する。比較において、一致した場合には、予測通りであり、パスしたことになる。これに対して、比較において、不一致が発生した場合には、ウェブサイトに欠陥が存在するか、予測が誤っていたかのいずれかである。予測が誤っていることは、ウェブサイトの欠陥が見つからず、適用された入力値の組とウェブサイトの仕様を十分チェックして、予測が誤っていたことが発見されることとなる。この場合には、チェック結果に基づいて、入力項目の各々の規約を推定する手段104及び入力値の対応テーブル110を適切に改善することが望ましい。
ウェブサイトの欠陥の発見手法の具体例については、図3及び図8を用いて後述する。また、入力値の組をウェブサイトに適用する手法については、ブラウザを操作する操作者をシミュレートするスクリプトをウェブサイトに適用することによって実現できる。この技術については、Seleniumなど、周知の既存の手法が存在するので、詳細な説明は省略する。
以上のようにして、ウェブサイトの欠陥に関する検査結果が得られる。本実施形態によって、ほぼ自動的に、網羅性のある入力値の組を複数作成することができる。この入力値の組が生成されることによって、ウェブサイトの検査の作業を支援することができる。
さらに、これらの入力値の組を自動的にウェブサイトに適用することにより、ウェブサイトの欠陥をより容易に発見することができる。
<実施形態2>
図2は、実施形態のフローチャートである。本実施形態は、コンピュータに実行されるプログラム又は該プログラムを格納した記憶媒体により実現される。また、本実施形態は、方法の発明としても実施されることは言うまでもない。
以下に、図2に示す本実施形態の各ステップを説明する。
[ステップS202]複数の入力項目が特定される。オペレータ等からウェブサイトのURLを受け取る。本ステップは、受け取られたURLによって、目的のウェブサイトにアクセスし、HTML情報を受け取る。そして、本ステップは、HTML情報を解析し、入力項目があればその入力項目を特定する。
[ステップS204]各入力項目の規約が推定される。規約とは、例えば、氏名のふりがなを入力する欄であれば、その入力欄に入力され得る文字がカナなのかひらがななのか、或いは、半角なのか全角なのか、などの入力条件を意味する。
[ステップS206]ステップS204は、ステップS206を含む。このステップにおいて、HTMLの周辺の記述の特徴が認識される。例えば、inputタグの親要素をトラバースして、例えば「ふりがな」などの表示文字を抽出したり、inputタグの周辺に存在する入力の案内のテキスト、例えば「全角ひらがなで入力してください」などの表示文字を解析する機能を有する。このような解析を行うことで、入力項目の規約を効率よく推定することができる。
[ステップS208]このステップによって、入力項目の規約がオペレータから受け取られる。すなわち、オペレータから、入力項目の規約に含まれ得る入力条件を受け取ることができる。ステップS204により推定された入力条件に加えて、オペレータの指示する入力条件を加味することにより、次のステップS210において、より正確な入力項目の規約を取得することができる。
[ステップS210]規約の各々に対応した入力値の集合が、入力値の対応テーブル110から取得される。取得された規約を基にして、具体的なテストケースを作るための入力値の対応テーブル110を検索する。入力値の対応テーブル110には、様々なテストケースを想定して、具体的な入力値が格納されている。格納された入力値は、規約をキーにして検索することができる。検索された入力値は、規約に合致した正しい入力値と誤りの存在する入力値との双方が含まれていることが望ましい。例えば、規約のうちの一部を満たさない入力値は、誤った入力値である確率が非常に高い。このような誤った入力値も含めて、入力値の組を、入力値の対応テーブル110の中に予め格納しておく。正しい入力値と誤りの存在する入力値との双方が含まれている入力値の組を用いることで、ウェブサイトを網羅的にチェックすることができる。この動作の詳細は後述する。
なお、入力値の対応テーブル110は、取得された規約と、規約に合致した正しい入力値及び誤りの存在する入力値との双方とが対になって記憶されたデータベースなどであってもよい。
[ステップS212]入力する要素の組が生成される。本ステップは、複数の入力項目の各々に対して得られた入力値の集合から、一つずつ集合の要素を取り出して、複数の入力項目に入力する具体的な入力値の組を作成する。この入力値の組は、複数個作成されることが望ましい。この入力値の組には、正しい入力値だけを含む組及び、正しい入力値に加えて、誤った入力値を含む組を作ることが望ましい。
[ステップS214]ウェブサイトの予測される応答が推定される。本ステップは、入力値の組に応じて、ウェブサイトが入力の成功の応答を返すか、入力の失敗の応答を返すかを予め推測する。例えば、全ての入力値が適正とされる入力値の組をウェブサイトに適用した場合には、ウェブサイトは、入力成功の応答を返すと予測される。これに対して、1つでも適正でない入力値を含む入力値の組をウェブサイトに適用した場合には、ウェブサイトは、入力失敗の応答を返すと予測される。このようにして、予め、ウェブサイトの応答を予測しておく。
[ステップS216]ウェブサイトの実際の応答が取得される。実際に、入力値の組がウェブサイトに適用された場合に、実際のウェブサイトの応答(入力成功又は入力失敗の応答)が取得される。
[ステップS218]ウェブサイトの欠陥の有無及び/又は欠陥の内容が出力される。本ステップは、予測されたウェブサイトの応答と、ウェブサイトの実際の応答とを比較する。比較において、一致した場合には、予測通りであり、パスしたことになる。これに対して、比較において、不一致が発生した場合には、ウェブサイトに欠陥が存在するか、予測が誤っていたかのいずれかである。予測が誤っている場合には、ウェブサイトの欠陥が見つからず、適用された入力値の組とウェブサイトの仕様を十分チェックすることで、予測が誤っていたことが発見されることとなる。この場合には、入力項目の各々の規約を推定するステップS204のアルゴリズム及び入力値の対応テーブル110を適切に改善することが望ましい。ウェブサイトの欠陥の発見手法の具体例については、図3及び図8を用いて後述する。
以上のようにして、本実施形態のプログラムがコンピュータにより実行される。なお、本実施形態2は、既に説明した実施形態1の動作と同様である。詳細な動作は、実施形態1を参照することにより、より深く理解することができる。
本プログラムによって、ウェブサイトの欠陥に関する検査結果が得られる。本実施形態のプログラムによって、ほぼ自動的に、網羅性のある入力項目の組を複数作成することができる。この入力値の組が生成されることによって、ウェブサイトの検査の作業を支援することができる。
さらに、これらの入力値の組を自動的にウェブサイトに適用することにより、ウェブサイトの欠陥をより容易に発見することができる。
<実施形態3>
図3は、予測されたウェブサイトの応答と実際の応答とからウェブの欠陥を発見する例を示すフローチャートである。
以下に、図3に示す本実施形態の各ステップを説明する。なお、下記の動作は、図8においても詳述される。図3に示すステップS306ないしステップS320は、図2におけるステップS218の動作を詳細に示すものである。なお、図3のフローは、予測される応答が正しい場合を前提としたフローであることに留意されたい。
[ステップS302]本ステップは、図2におけるステップS214と同じである。
[ステップS304]本ステップは、図2におけるステップS216と同じである。
[ステップS306]本ステップにおいて、予測される応答は実際の応答と同じかが判断される。判断が肯定的(「はい」)である場合には、ステップS310に進む。判断が否定的(「いいえ」)である場合には、ステップS308に進む。
[ステップS308]本ステップで、使用した要素の組に関しては、ウェブサイトに欠陥ありと判断される。なぜなら、予測される応答と実際の応答とが相反するからである。
[ステップS310]本ステップで、使用した要素の組に関しては、ウェブサイトに欠陥なしと判断される。なぜなら、予測される応答と実際の応答とが同じであるからである。
[ステップS312]入力する要素の組が終わるまで、「開始」に戻って、処理を繰り返す。
[ステップS314]本ステップで、実際の応答は「失敗」したのに「成功」するとの予測をしたかが判断される。判断が肯定的(「はい」)である場合には、ステップS318に進む。判断が否定的(「いいえ」)である場合には、ステップS316に進む。
[ステップS316]このステップに到達した場合には、入力された要素の組のうち、誤りの要素が、誤りでないと判断されたことが判明することとなる。したがって、誤りの要素に対応するウェブサイトの項目の処理ロジックに欠陥があることが特定される。この特定は、オペレータに報知されることとなる。
[ステップS318]このステップに到達した場合には、本ステップは、実際の応答が「成功」した他の要素の組との比較判断を行い、どの要素に対応するウェブの項目の処理ロジックが誤りかを特定する。具体例については、図8を用いて説明する。
[ステップS320]入力する要素の組が終わるまで、「開始」に戻って、処理を繰り返す。
以上のようにして、ウェブサイトの欠陥の場所及びその態様が明らかとなる。このため、この結果が提供されたオペレータは、ウェブサイトの欠陥をより容易に発見することができ、その対策をより容易に講じることができる。
<実施形態4>
図4は、ウェブサイト400の入力画面の例を示す図である。図4では、ウェブサイト400において、「お客様登録フォーム」が表示されている。このウェブサイト400は、ウェブサイト400を管理する主体が提供するサービスの会員になるための諸情報の入力を、お客様に促すウェブサイトの例である。
このようなウェブサイト400を構築した場合には、複数の入力項目にテストデータを入力して、ウェブサイト400が正常な動作をするか否かをチェックすることが必要となる。
ウェブサイト400には、最上段に、「名前」402、「*」404、名前入力欄406及び入力のための説明文「全角半角」408が表示されている。なお、「*」404は、説明文495に記載されているように、名前入力欄406が必須入力欄であることを示している。
その他、ウェブサイト400は、ふりがな入力欄410、メールアドレス入力欄420、パスワード入力欄430、パスワード(確認用)入力欄440、性別のラジオボタン「男性」452、「女性」453、郵便番号入力欄460、都道府県選択欄470、市区町村番地等入力欄480及び利用規約同意チェックボックス490を有する。
図5は、ウェブサイトの応答画面の例を示す図である。図5の応答画面は、図4に示した各入力項目に対応する欄に、適切な値が適用されて、会員登録が完了した画面500であり、「会員登録完了」510、「登録完了しました。」520及び「ログインページは、こちらです。」530が表示されている。
本実施形態に係るプログラム及び装置は、この、会員登録が完了した画面500のHTMLソースから、例えば、「登録完了」520の文字の存在を認識することにより、図4のお客様登録画面の全項目の入力が成功したことを認識することができる。
図6は、ウェブサイトの入力値の集合を示す表600である。HTML位置610は、ウェブサイトのHTMLソースの場所を示している。なお、図6においては、位置の一部を簡略的に示している。実際の位置は、文字数が長くなるので省略した。例えば、HTML位置611は、「...type(1)>td>input」というように簡略化して示しているが、実際には、「html > body > div:nth-of-type(2) > div > form > table > tbody > tr:nth-of-type(1) > td > input」である。他のHTML位置についても同様に簡略化して示している点に留意されたい。
HTML中の名前620は、HTMLソースの中で、入力項目がどのような名前で処理されているかを抽出した項目である。
項目規約630は、HTMLの入力項目640の周辺に存在するテキスト(周辺テキスト650)によって自動的に認識された項目の規約である。例えば、入力項目(氏名)においては、「全角 or 半角」と「必須」が認識されている。この認識は、周辺テキスト650が「名前*全角半角」を調べることによって可能となる。また、図示していないが、HTML中の<INPUT>タグのタイプ「type=”text”」を参照することにより、文字列を入力対象としていることがわかる(不図示)。周辺テキスト「全角」「半角」から、項目規約として「全角or半角」が条件であることが判明する。加えて「*」「*は必須入力項目です。」が周辺のテキストに存在するため、「必須」の項目であることがわかる。したがって、例えばこの項目を空欄とすることは、許容されないことがわかる。
入力値の集合660は、例えば、項目規約630をキーにして、上述した入力値の対応テーブルを検索することで取得することができる(662、664、666、668)。したがって、入力値の対応テーブル110には、あらかじめ、項目の規約に適合する具体的な入力値の例と、項目の規約に適合しない入力値の例とを格納しておくことが望ましい。項目の規約に適合しない入力値の例は、項目に適合する規約と紐づけて格納しておいて、項目の規約に適合する入力値と適合しない入力値を合わせて抽出してもよい。或いは、項目の規約の一部の条件を除いて、入力値の対応テーブルを検索した際に新たに抽出された入力値を、項目の規約に適合しない入力値に用いてもよい。
なお、上述のように、入力値の集合が見つからない場合には、オペレータによる指示を促してもよい。オペレータにより、具体的な入力値を入力値の集合660にエントリするようにしてもよい。その際、項目規約630にもオペレータからの入力を促すようにしてもよい。オペレータにより入力された具体的な入力値と、入力された項目規約630とを対にして、入力値の対応テーブルに格納することで、入力値の対応テーブルの内容を充実させることができる。
なお、入力値の集合660において、[ ]で囲まれた入力値は、項目の規約に適合しない入力値を示している。
以上のようにして、入力項目の各々の規約に対応した入力値の集合(規約に適合する入力値と、規約に適合しない入力値の双方)を取得することができる。
なお、例えば、パスワードなどの具体的な入力値の生成については、既に述べたように入力値の対応テーブル110を検索するのではなく、オペレータによって与えられた規約(条件)に応じて、パスワードの入力値(規約に適合するものと適合しないもの)をプログラムにより生成するようにしてもよい。このプログラムは、パスワードの文字数、文字種別、大文字小文字、特殊文字などの構成要素のうち、どの構成要素を必須とするか、又はその条件をオペレータから取得して、その条件に合致したパスワードの値と合致しないパスワードの値とを出力するように構成すればよい。
図7は、ウェブサイトの入力に失敗した場合の応答画面700の例を示す図である。ウェブサイトの入力に失敗した場合には、例えば、応答画面700の中に「入力に不備があります」710のような文字が表示されるのが通常である。このように、応答画面700に「入力に不備があります」710のような表示が存在するかを、HTMLソースから検索することで、実際に、入力が成功したか、失敗したかがわかる。
また、不備の箇所720をハイライトさせたり、赤フォントで表示させたりする場合が多い。このような、画面の変化を応答画面700から抽出することにより、どの入力項目において、誤りが生じたのかがわかる。たとえば、予測した応答は、成功するはずであったが、実際の応答が失敗の応答であった場合には、このような誤りが生じている個所の表示を探索することによって、ウェブサイトの入力項目の処理における、不備の箇所を特定することもできる。
図8は、ウェブサイトの入力項目の各々に入力する要素の組を生成した例を示す表800である。図8における入力要素の組1ないし9は、一例であって、全ての組を網羅しているわけではない。要素の組No.1は、入力項目のうちの氏名の項目が山田太郎である入力要素の組を示している。これらの入力要素は、図6の入力値の集合660から、各入力項目に対応して1つずつ入力値を選択して、入力する要素の一組が作成されている。
要素の組No.1においては、全ての入力値が適合する入力値であるため、予測応答850は、「成功すると予測」している。そして、実際の応答860も「成功した」結果を示している。この場合には、予測応答850と実際の応答860とが一致しているため、この入力要素の組に対しては、ウェブサイトは適正な応答を返していることがわかる。
要素の組No.3においては、予測応答813は、成功すると予測している。しかしながら、実際の応答815は、失敗の応答を返している。この場合には、例えば、成功すると予測した要素の組No.1と要素の組No.3とを比較することにより、欠陥箇所を推定することが可能である。要素の組No.1と要素の組No.3では、都道府県の入力項目だけが相違している。要素の組No.1の都道府県は「北海道」であり、要素の組No.3の都道府県は、「青森県」である。いずれも、都道府県であるから適正な入力値である。しかしながら、要素の組No.3に対するウェブサイトの実際の応答815は、「失敗した」となっているから、この都道府県の入力項目に関するウェブサイトの処理に欠陥がある可能性が高いことがわかる。
要素の組No.5においては、予測応答823は、失敗すると予測している。しかしながら、実際の応答825は、成功の応答を返している。この場合には、失敗すると予測した根拠となる入力項目すなわちウェブサイトの郵便番号の処理ロジックに欠陥がある可能性が高いことがわかる。図8に示されるように、要素の組No.5の郵便番号820は、「abcdeg」である。これは、郵便番号としては、不正な値である。それにもかかわらず。実際の応答825は、「成功した」と応答しているから、ウェブサイトの郵便番号の処理ロジックに欠陥がある可能性が高いことがわかる。
以上のように、複数の入力する要素の組を容易に生成でき、かつ、順次これらをウェブサイトに適用することによって、ウェブサイトの欠陥の箇所をより容易に特定することが可能となる。
<ハードウエア構成>
図9は、一実施形態のハードウエア構成900を示す図である。
ハードウエア構成900は、CPU902、メモリ904、通信制御装置906、入力インタフェース908、表示制御部910、外部メモリ制御部912及び出力インタフェース914を有する。
そして、通信制御装置906には、ネットワーク930(WIFI、有線LAN、広域ネットワーク(インターネット)、近距離無線通信等)が接続される。入力インタフェース908には、タッチ感知センサ等940などが接続される。表示制御部910には、ディスプレイ950が接続される。外部メモリ制御部912は、記憶媒体960を読み書きすることができる。出力インタフェースには、スピーカ等970などが接続される。
記憶媒体960は、RAM、ROM、CD-ROM、DVD-ROM、ハードディスク、メモリーカード等であってもよい。
以上説明した実施形態のプログラムは、ハードウエア構成900を備えるコンピュータにより実行され得る。また,実施形態のプログラムは,コンピュータに実行させる方法として,インプリメントされてもよい。本実施形態のプログラムの一部又は全部は、オペレーティングシステムにより実行されてもよい。また、プログラムの一部がハードウエアにより実現されてもよい。プログラムは記憶媒体960又はメモリ904に記憶されてもよい。
なお,上述の実施形態において,プログラムのステップは、矛盾のない限り,同時に,又は順序を入れ替えて実行されてもよい。
以上の実施形態は,ハードウエアの装置としてインプリメントされ得る。
以上の実施形態は,請求項に記載された発明を限定するものではなく,例示として取り扱われることは言うまでもない。
102 複数の入力項目を特定する手段
104 入力項目の各々の規約を推定する手段
105 HTMLの周辺の記述の特徴を認識する手段
106 入力項目の規約をオペレータから受け取る手段
108 規約の各々に対応した入力値の集合を対応テーブルから取得する手段
110 入力値の対応テーブル
112 入力する要素の組を生成する手段
114 ウェブサイトの実際の応答を取得する手段
116 ウェブサイトの予測される応答を推定する手段
118 ウェブサイトの欠陥の有無及び/又は欠陥の内容を出力する手段

Claims (6)

  1. ウェブサイトから、複数の入力項目を特定するステップと、
    前記ウェブサイトから、前記複数の入力項目の各々の規約を推定するステップと、
    推定された前記規約の各々に対応した入力値の集合を、対応テーブルから取得するステップと、
    取得した前記入力値の集合の各々から1つずつ要素を取り出して、前記複数の入力項目の各々に入力する要素の組を生成するステップと、
    前記要素の所定の組を前記複数の入力項目に入力したときの前記ウェブサイトの予測される応答を推定するステップと、
    前記要素の前記所定の組を前記複数の入力項目に実際に入力して前記ウェブサイトの実際の応答を取得するステップと、
    前記予測される応答と前記実際の応答とが相違する場合における、前記入力された要素の所定の組に基づいて、前記ウェブサイトの欠陥の有無及び/又は前記欠陥の内容を出力するステップと、
    をコンピュータに実行させるウェブ検査プログラムであって、
    前記出力するステップは、
    前記ウェブサイトの予測される応答が成功であるにもかかわらず実際の応答が失敗を示した第1の要素の組と、前記ウェブサイトの予測される応答が成功であり実際の応答も成功を示した第2の要素の組とから、前記ウェブサイトにおける推定された欠陥箇所を特定する、
    ウェブ検査プログラム。
  2. 前記複数の入力項目の各々の規約は、前記ウェブサイトにおいて定められた条件を持ち、前記規約の各々に対応した入力値の集合は、前記定められた条件を満たす要素と、前記定められた条件を満たさない要素とを含む、
    請求項に記載のウェブ検査プログラム。
  3. 前記規約を、オペレータから受け取るステップ、
    を更にコンピュータに実行させる、
    請求項1又は2に記載のウェブ検査プログラム。
  4. 前記規約を推定するステップは、前記ウェブサイトのHTMLソースにおいて、入力項目の周辺の記述の特徴を認識するステップを含む、
    請求項1ないしのうちいずれか1項に記載のウェブ検査プログラム。
  5. 前記出力するステップは、
    前記第1の要素の組と、前記第2の要素の組とを比較して、前記複数の入力項目のうち、異なる要素が入力されている入力項目に関する前記ウェブサイトの処理に欠陥があると推定する、
    請求項1ないし4のうちいずれか1項に記載のウェブ検査プログラム。
  6. ウェブサイトから、複数の入力項目を特定する手段と、
    前記ウェブサイトから、前記複数の入力項目の各々の規約を推定する手段と、
    推定された前記規約の各々に対応した入力値の集合を、対応テーブルから取得する手段と、
    取得した前記入力値の集合の各々から1つずつ要素を取り出して、前記複数の入力項目の各々に入力する要素の組を生成する手段と、
    前記要素の所定の組を前記複数の入力項目に入力したときの前記ウェブサイトの予測される応答を推定する手段と、
    前記要素の前記所定の組を前記複数の入力項目に実際に入力して前記ウェブサイトの実際の応答を取得する手段と、
    前記予測される応答と前記実際の応答とが相違する場合における、前記入力された要素の所定の組に基づいて、前記ウェブサイトの欠陥の有無及び/又は前記欠陥の内容を出力する手段と、
    を有するウェブ検査装置であって、
    前記出力する手段は、
    前記ウェブサイトの予測される応答が成功であるにもかかわらず実際の応答が失敗を示した第1の要素の組と、前記ウェブサイトの予測される応答が成功であり実際の応答も成功を示した第2の要素の組とから、前記ウェブサイトにおける推定された欠陥箇所を特定する、
    ウェブ検査装置。
JP2018080592A 2018-04-19 2018-04-19 ウェブ検査プログラム及びウェブ検査装置 Active JP7053017B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018080592A JP7053017B2 (ja) 2018-04-19 2018-04-19 ウェブ検査プログラム及びウェブ検査装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018080592A JP7053017B2 (ja) 2018-04-19 2018-04-19 ウェブ検査プログラム及びウェブ検査装置

Publications (2)

Publication Number Publication Date
JP2019191689A JP2019191689A (ja) 2019-10-31
JP7053017B2 true JP7053017B2 (ja) 2022-04-12

Family

ID=68390262

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018080592A Active JP7053017B2 (ja) 2018-04-19 2018-04-19 ウェブ検査プログラム及びウェブ検査装置

Country Status (1)

Country Link
JP (1) JP7053017B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021100156A1 (ja) * 2019-11-20 2021-05-27 日本電信電話株式会社 テストデータ生成装置、テストデータ生成方法、及びプログラム
JP6861880B1 (ja) * 2020-09-29 2021-04-21 PayPay株式会社 生成装置、生成方法および生成プログラム
WO2023224013A1 (ja) * 2022-05-17 2023-11-23 オン・デマンド・ワン株式会社 テストパターン生成装置及びテストパターン生成プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012078877A (ja) 2010-09-30 2012-04-19 Dainippon Printing Co Ltd 脆弱性検査装置、脆弱性検査方法、及び脆弱性検査プログラム
JP2016048470A (ja) 2014-08-27 2016-04-07 日本電気株式会社 アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム
US20160328316A1 (en) 2015-05-08 2016-11-10 Mastercard International Incorporated Systems and Methods for Automating Test Scripts for Applications That Interface to Payment Networks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012078877A (ja) 2010-09-30 2012-04-19 Dainippon Printing Co Ltd 脆弱性検査装置、脆弱性検査方法、及び脆弱性検査プログラム
JP2016048470A (ja) 2014-08-27 2016-04-07 日本電気株式会社 アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム
US20160328316A1 (en) 2015-05-08 2016-11-10 Mastercard International Incorporated Systems and Methods for Automating Test Scripts for Applications That Interface to Payment Networks

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
小松 健作,Webシステムを変えるHTML5 [第2回]高機能な入力画面 入力データの正しさをチェック ユーザーの入力支援も実現,日経SYSTEMS 第223号 ,日本,日経BP社 Nikkei Business Publications,Inc.,2011年11月,pp.90-95

Also Published As

Publication number Publication date
JP2019191689A (ja) 2019-10-31

Similar Documents

Publication Publication Date Title
JP7053017B2 (ja) ウェブ検査プログラム及びウェブ検査装置
CN111176996A (zh) 测试用例生成方法、装置、计算机设备及存储介质
Villanes et al. What are software engineers asking about android testing on stack overflow?
Lewowski et al. How far are we from reproducible research on code smell detection? A systematic literature review
CN112416778A (zh) 测试用例推荐方法、装置和电子设备
KR101507637B1 (ko) 오역의 검출을 지원하는 장치 및 방법
CN116611074A (zh) 安全信息审查方法、设备、存储介质及装置
CN111274149A (zh) 测试数据的处理方法及装置
CN112069069A (zh) 缺陷自动定位分析方法、设备及可读存储介质
CN112540924A (zh) 接口自动化测试方法、装置、设备及存储介质
CN111133396B (zh) 生产设备监视装置、生产设备监视方法以及记录介质
CN113434395A (zh) 测试用例的自动化生成方法、装置、设备及介质
US10782942B1 (en) Rapid onboarding of data from diverse data sources into standardized objects with parser and unit test generation
CN112615873A (zh) 物联网设备安全检测方法、设备、存储介质及装置
CN110781673B (zh) 文档验收方法、装置、计算机设备及存储介质
CN111324375A (zh) 代码管理方法、装置、计算机设备和存储介质
CN110347573B (zh) 应用程序分析方法、装置、电子设备及计算机可读介质
Brunty Validation of forensic tools and methods: A primer for the digital forensics examiner
JP2022016303A (ja) 機械学習を用いる自動化されたapiアクセス
CN111158973B (zh) 一种web应用动态演化监测方法
US9437020B2 (en) System and method to check the correct rendering of a font
CN114238733A (zh) 关键信息提取方法及装置、计算机存储介质、电子设备
CN114220113A (zh) 一种论文质量检测方法、装置和设备
US10515219B2 (en) Determining terms for security test
Escobar-Velásquez et al. Itdroid: A tool for automated detection of i18n issues on android apps

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220114

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220322

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220324

R150 Certificate of patent or registration of utility model

Ref document number: 7053017

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350