IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ バルテス・ホールディングス株式会社の特許一覧

特許7450187プログラム、情報処理方法、及び情報処理装置
<>
  • 特許-プログラム、情報処理方法、及び情報処理装置 図1
  • 特許-プログラム、情報処理方法、及び情報処理装置 図2
  • 特許-プログラム、情報処理方法、及び情報処理装置 図3
  • 特許-プログラム、情報処理方法、及び情報処理装置 図4
  • 特許-プログラム、情報処理方法、及び情報処理装置 図5
  • 特許-プログラム、情報処理方法、及び情報処理装置 図6
  • 特許-プログラム、情報処理方法、及び情報処理装置 図7
  • 特許-プログラム、情報処理方法、及び情報処理装置 図8
  • 特許-プログラム、情報処理方法、及び情報処理装置 図9
  • 特許-プログラム、情報処理方法、及び情報処理装置 図10
  • 特許-プログラム、情報処理方法、及び情報処理装置 図11
  • 特許-プログラム、情報処理方法、及び情報処理装置 図12
  • 特許-プログラム、情報処理方法、及び情報処理装置 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-07
(45)【発行日】2024-03-15
(54)【発明の名称】プログラム、情報処理方法、及び情報処理装置
(51)【国際特許分類】
   G06F 11/36 20060101AFI20240308BHJP
【FI】
G06F11/36 184
【請求項の数】 11
(21)【出願番号】P 2021188891
(22)【出願日】2021-11-19
(65)【公開番号】P2023075780
(43)【公開日】2023-05-31
【審査請求日】2022-09-01
(73)【特許権者】
【識別番号】523378826
【氏名又は名称】バルテス・ホールディングス株式会社
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】村上 崇
【審査官】渡辺 順哉
(56)【参考文献】
【文献】特開2019-101538(JP,A)
【文献】特開2021-174096(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07-11/36
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
テスト対象となるアプリケーションの画面情報を取得し、
前記アプリケーションのテスト情報を取得し、
取得した前記画面情報に基づき、該画面情報に含まれる操作対象オブジェクト及び要素名それぞれの表示位置に応じた対応関係情報を導出することにより、前記対応関係情報を取得し、
取得した前記対応関係情報と、前記テスト情報に含まれる要素名とに基づき、前記アプリケーションのテストを行うための実行スクリプトを出力し、
前記対応関係情報に含まれる操作対象オブジェクトを一意に特定する要素パスを、前記画面情報から抽出し、
取得した前記対応関係情報と、前記テスト情報に含まれる要素名と、抽出した前記要素パスとに基づき、前記実行スクリプトを出力し、
前記画面情報から抽出したいずれかの要素パスが、前記テスト情報に含まれる複数の要素名に対し重複しているか否かを判定し、
重複している場合、前記複数の要素名に対し重複する要素パスに関する情報を出力する
処理を実行させるプログラム。
【請求項2】
取得した前記画面情報に対し、スクレイピング処理を行うことにより、該画面情報に含まれる操作対象オブジェクト及び要素名それぞれの表示位置に応じた前記対応関係情報を導出する
請求項1に記載のプログラム。
【請求項3】
画面情報を入力した場合に該画面情報に含まれる操作対象オブジェクト及び要素名それぞれの表示位置に応じた対応関係情報を出力する学習モデルに、取得した前記画面情報を入力することにより前記対応関係情報を導出する
請求項1に記載のプログラム。
【請求項4】
抽出し前記要素パスと、該要素パスに対応する前記テスト情報に含まれる要素名との対応を示すパス対応情報を出力し、
出力した前記パス対応情報の変更を受け付ける
請求項1から請求項3のいずれか1項に記載のプログラム。
【請求項5】
前記テスト情報は、要素名及び該要素名に対する操作が含まれており、
取得した前記対応関係情報と、前記テスト情報に含まれる要素名及び該要素名に対する操作とに基づき、前記実行スクリプトを出力する
請求項1から請求項のいずれか1項に記載のプログラム。
【請求項6】
前記テスト情報に含まれる要素名に対する複数の操作候補を出力し、
出力した前記複数の操作候補のうち、いずれかの操作候補を選択する処理を受付け、
選択された操作候補を、前記テスト情報に含まれる要素名に対する操作として設定する
請求項1から請求項のいずれか1項に記載のプログラム。
【請求項7】
前記テスト情報に含まれる要素名及び該要素名に対する操作の組み合わせから成る要素操作セットには、処理順番が設定されており、
前記実行スクリプトにおける要素名それぞれに対する操作は、処理順番に応じて実行される
請求項1から請求項のいずれか1項に記載のプログラム。
【請求項8】
前記実行スクリプトは自然言語を用いて生成される
請求項1から請求項のいずれか1項に記載のプログラム。
【請求項9】
出力した前記実行スクリプトを実行し、
前記実行スクリプトの実行結果を出力する
請求項1から請求項のいずれか1項に記載のプログラム。
【請求項10】
テスト対象となるアプリケーションの画面情報を取得し、
前記アプリケーションのテスト情報を取得し、
取得した前記画面情報に基づき、該画面情報に含まれる操作対象オブジェクト及び要素名それぞれの表示位置に応じた対応関係情報を導出することにより、前記対応関係情報を取得し、
取得した前記対応関係情報と、前記テスト情報に含まれる要素名とに基づき、前記アプリケーションのテストを行うための実行スクリプトを出力し、
前記対応関係情報に含まれる操作対象オブジェクトを一意に特定する要素パスを、前記画面情報から抽出し、
取得した前記対応関係情報と、前記テスト情報に含まれる要素名と、抽出した前記要素パスとに基づき、前記実行スクリプトを出力し、
前記画面情報から抽出したいずれかの要素パスが、前記テスト情報に含まれる複数の要素名に対し重複しているか否かを判定し、
重複している場合、前記複数の要素名に対し重複する要素パスに関する情報を出力する
処理をコンピュータに実行させる情報処理方法。
【請求項11】
テスト対象となるアプリケーションの画面情報を取得する画面情報取得部と、
前記アプリケーションのテスト情報を取得するテスト情報取得部と、
取得した前記画面情報に基づき、該画面情報に含まれる操作対象オブジェクト及び要素名それぞれの表示位置に応じた対応関係情報を導出することにより、前記対応関係情報を取得する対応関係情報取得部と、
取得した前記対応関係情報と、前記テスト情報に含まれる要素名とに基づき、前記アプリケーションのテストを行うための実行スクリプトを出力する出力部と
を備え
前記対応関係情報に含まれる操作対象オブジェクトを一意に特定する要素パスを、前記画面情報から抽出し、
取得した前記対応関係情報と、前記テスト情報に含まれる要素名と、抽出した前記要素パスとに基づき、前記実行スクリプトを出力し、
前記画面情報から抽出したいずれかの要素パスが、前記テスト情報に含まれる複数の要素名に対し重複しているか否かを判定し、
重複している場合、前記複数の要素名に対し重複する要素パスに関する情報を出力する
情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報処理方法、及び情報処理装置に関する。
【背景技術】
【0002】
コンピュータプログラムのテスト仕様を生成するための装置及びプログラムが知られている(例えば、特許文献1)。特許文献1に記載の装置によれば、因子・水準の選択時に過去のテスト仕様設計において選択された因子・水準に基づき、ある因子とともに選択された因子の選択確率や、ある因子内である水準が選択された確率が表示される。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2013-125420号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載の装置及びプログラムにおいては、テスト対象となるアプリケーションの画面情報と、アプリケーションのテスト情報とに基づき、アプリケーションのテストを行うための実行スクリプトを効率的に出力する点が考慮されていないという問題点がある。
【0005】
本開示は、斯かる事情に鑑みてなされたものであり、テスト対象となるアプリケーションの画面情報と、アプリケーションのテスト情報とに基づき、アプリケーションのテストを行うための実行スクリプトを効率的に出力することができるプログラム等を提供することを目的とする。
【課題を解決するための手段】
【0006】
一つの案では、プログラムは、コンピュータに、テスト対象となるアプリケーションの画面情報を取得し、前記アプリケーションのテスト情報を取得し、取得した前記画面情報に基づき、該画面情報に含まれる操作対象オブジェクト及び要素名それぞれの表示位置に応じた対応関係情報を導出することにより、前記対応関係情報を取得し、取得した前記対応関係情報と、前記テスト情報に含まれる要素名とに基づき、前記アプリケーションのテストを行うための実行スクリプトを出力する処理を実行させる。
【0007】
一つの案では、情報処理方法は、テスト対象となるアプリケーションの画面情報を取得し、前記アプリケーションのテスト情報を取得し、取得した前記画面情報に基づき、該画面情報に含まれる操作対象オブジェクト及び要素名それぞれの表示位置に応じた対応関係情報を導出することにより、前記対応関係情報を取得し、取得した前記対応関係情報と、前記テスト情報に含まれる要素名とに基づき、前記アプリケーションのテストを行うための実行スクリプトを出力する処理をコンピュータに実行させる。
【0008】
一つの案では、情報処理装置は、テスト対象となるアプリケーションの画面情報を取得する画面情報取得部と、前記アプリケーションのテスト情報を取得するテスト情報取得部と、取得した前記画面情報に基づき、該画面情報に含まれる操作対象オブジェクト及び要素名それぞれの表示位置に応じた対応関係情報を導出することにより、前記対応関係情報を取得する対応関係情報取得部と、取得した前記対応関係情報と、前記テスト情報に含まれる要素名とに基づき、前記アプリケーションのテストを行うための実行スクリプトを出力する出力部とを備える。
【発明の効果】
【0009】
本開示によれば、テスト対象となるアプリケーションの画面情報と、アプリケーションのテスト情報とに基づき、アプリケーションのテストを行うための実行スクリプトを効率的に出力するプログラム等を提供することが可能となる。
【図面の簡単な説明】
【0010】
図1】実施形態1に係るテスト自動化システムを例示するシステム概要図である。
図2】テスト自動化システムに含まれる情報処理装置の構成例を示すブロック図である。
図3】学習モデル(対応関係モデル)の生成処理に関する説明図である。
図4】対応関係情報(要素名、操作対象オブジェクト)の一例を示す説明図である。
図5】パス対応情報(要素名、要素パス(Xpath))の一例を示す説明図である。
図6】テスト情報の一例を示す説明図である。
図7】実行スクリプトの一例を示す説明図である。
図8】情報処理装置の制御部に含まれる機能部を例示する機能ブロック図である。
図9】情報処理装置の制御部による処理手順を例示するフローチャートである。
図10】実施形態2(要素パスの重複確認)に係る情報処理装置の制御部による処理手順を例示するフローチャートである。
図11】パス対応情報における重複確認結果の表示画面の一例を示す説明図である。
図12】実施形態3(スクレイピング部)に係る情報処理装置の制御部に含まれる機能部を例示する機能ブロック図である。
図13】情報処理装置の制御部による処理手順を例示するフローチャートである。
【発明を実施するための形態】
【0011】
(実施形態1)
以下、本発明をその実施の形態を示す図面に基づいて詳述する。図1は、実施形態1に係るテスト自動化システムSを例示するシステム概要図である。図2は、テスト自動化システムSに含まれる情報処理装置1の構成例を示すブロック図である。テスト自動化システムSは、情報処理装置1を主たる装置(サーバ)として構成され、当該情報処理装置1は、例えばインターネット又はLAN等を介してアプリケーションサーバAS等と通信可能に接続される。当該アプリケーションサーバASは、テスト対象のアプリケーションを提供するWEBサーバ等である。情報処理装置1は、当該テスト対象のアプリケーションに対するテストを自動実行するための実行スクリプトの生成、実行、及び当該実行スクリプトに関する種々のデータを保存管理するテスト自動化サーバとして機能する。
【0012】
情報処理装置1は、テスト対象のアプリケーションの画面情報、及び当該テストに関する情報が定義されるテスト情報を取得し、これら画面情報及びテスト情報を用いて、アプリケーションのテストを行うための実行スクリプトを生成する。当該実行スクリプトを生成するにあたり、情報処理装置1は、学習モデル101を用いて、アプリケーション画面にて表示される入力欄等の操作対象オブジェクトと、当該入力欄等の表示上の名称となる要素名との対応関係情報を出力する。これにより、画面情報における階層構造の影響を受けることなく、テスト対象となる操作対象オブジェクトを一意に示す要素パス(Xpath)を画面情報から自動的に抽出することができ、当該要素パス(Xpath)を用いた実行スクリプトの作成を自動化し、テスト担当者等に対する作業支援を効率的に行うことができる。
【0013】
本実施形態において、情報処理装置1(テスト自動化サーバ)と、アプリケーションサーバAS(テスト対象のアプリケーションを提供するWEBサーバ)とは、別個の装置として説明したが、これに限定されず、これらサーバ機能が単一の装置に集約されたサーバ構成であってもよいことは、言うまでもない。また、情報処理装置1にて、学習モデル101を用いることによる操作対象オブジェクトと要素名との対応関係情報の出力と、当該対応関係情報に基づく実行スクリプトの作成を行うとしたが、これに限定されず、学習モデル101の適用と、実行スクリプトの作成とは、別個のサーバによる分散処理環境にて行われるものであってもよい。
【0014】
情報処理装置1は、制御部11、記憶部12、通信部13、及び入出力I/F14を備える。制御部11は、一又は複数のCPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)等の演算処理装置を有し、記憶部12に記憶されたプログラムP(プログラム製品)を読み出して実行することにより、情報処理装置1に係る種々の情報処理、制御処理等を行う。
【0015】
記憶部12は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、フラッシュメモリ等の揮発性記憶領域及び、EEPROM又はハードディスク等の不揮発性記憶領域を含む。記憶部12には、プログラムP(プログラム製品)及び処理時に参照するデータが予め記憶してある。記憶部12に記憶されたプログラムP(プログラム製品)は、情報処理装置1が読み取り可能な記録媒体121から読み出されたプログラムP(プログラム製品)を記憶したものであってもよい。また、図示しない通信網に接続されている図示しない外部コンピュータからプログラムP(プログラム製品)をダウンロードし、記憶部12に記憶させたものであってもよい。学習モデル101の実態ファイルは、当該プログラムPのモジュールとして記憶部12に記憶されているものであってもよい。記憶部12には、テスト情報、実行スクリプト、及び当該実行スクリプトを生成する際の各種中間データを保存管理するテストDB122が記憶されているものであってもよい。
【0016】
通信部13は、有線又は無線により施設内のLAN又はインターネット等を介し、アプリケーションサーバAS又は、アプリケーションのソースファイル等の開発情報を管理する開発管理サーバ(図示せず)等と通信するための通信インターフェイスである。
【0017】
入出力I/F14は、例えばUSB等、情報処理装置1の制御部11に対しデータの入出力のインターフェイスであり、当該入出力I/F14には、例えば液晶ディスプレイ等の表示部141、キーボード、マウス等の入力部142が接続される。
【0018】
図3は、学習モデル101(対応関係モデル)の生成処理に関する説明図である。情報処理装置1の制御部11は、学習モデル101用の訓練データを用いて、例えばニューラルネットワーク等を学習させ、テスト対象となるアプリケーションの画面情報を入力とし、画面情報に含まれる操作対象オブジェクト及び要素名の対応関係情報を出力とする学習モデル101を生成する。すなわち、当該学習モデル101は、画面情報に基づき、画面情報に含まれる操作対象オブジェクト及び要素名それぞれの表示位置に応じた対応関係情報を出力する対応関係モデルとして機能する。
【0019】
表示位置に応じた対応関係情報とは、画面情報によって生成されるアプリケーションの画面において、操作対象オブジェクトと、当該操作対象オブジェクトの近傍に配置(表示)される要素名との対応を示すものであり、当該要素名は、対応する対象オブジェクトに入力される文字又は値の名称、種類、区分、又は分類等を示す。このように表示位置に応じた対応関係は、例えば、操作対象オブジェクトと要素名とが、左右に横並びに表示される位置関係、上下に並んで表示される位置関係、又は、同じセル内又は隣接するセル内に表示される位置関係を含む。
【0020】
訓練データは問題データ及び回答データを含み、画面情報は問題データに相当し、画面情報に含まれる操作対象オブジェクト及び要素名の対応関係情報は回答データに相当する。HTML等にて定義される画面情報は、例えばインターネットに接続されるWEBサーバ等から大量に取得することができ、当該画面情報を解析することにより、操作対象オブジェクト及び要素名の対応関係情報を抽出することができる。これら処理を行うことにより、大量の問題データ及び回答データが含まれる訓練データを生成することができる。学習モデル101を学習するための訓練データに含まれる問題データ及び回答データのデータセットと、当該学習モデル101を用いた際の入力データ及び出力データのデータセットとは同義であり、いずれかのデータセットにて定義されていれば、他方のデータセットにおいても、当然に適用される。
【0021】
訓練データを用いて学習されたニューラルネットワーク(学習モデル101)は、人工知能ソフトウェアの一部であるプログラムPモジュールとして利用が想定される。学習モデル101は、上述のごとく制御部11(CPU等)及び記憶部12を備える情報処理装置1にて用いられるものであり、このように演算処理能力を有する情報処理装置1にて実行されることにより、ニューラルネットワークシステムが構成される。すなわち、情報処理装置1の制御部11が、記憶部12に記憶された学習モデル101からの指令に従って、入力層に入力された画面情報の特徴量を抽出する演算を行い、出力層から、操作対象オブジェクト及び要素名の対応関係情報を出力する。
【0022】
学習モデル101(対応関係モデル)は、例えばDNN(Deep Neural Network)にて構成され、画面情報の入力を受け付ける入力層と、当該画面情報の特徴量を抽出する中間層と、操作対象オブジェクト及び要素名の対応関係情報を出力とする出力層とを有する。入力層は、画面情報に含まれる文字列及び値等の入力を受け付ける複数のニューロンを有し、入力された値を中間層に受け渡す。中間層は、ReLu関数又はシグモイド関数等の活性化関数を用いて定義され、入力されたそれぞれの値の特徴量を抽出する複数のニューロンを有し、抽出した特徴量を出力層に受け渡す。当該活性化関数の重みづけ係数及びバイアス値等のパラメータは、誤差逆伝播法を用いて最適化される。出力層は、例えば全結合層により構成され、中間層から出力された特徴量に基づいて対応関係情報を出力する。
【0023】
本実施形態では、学習モデル101は、DNNであるとしたがこれに限定されず、DNN以外のニューラルネットワーク、トランスフォーマ、BERT、GPT、RNN(Recurrent Neural Network)、LSTM(Long-short term model)、CNN、SVM(Support Vector Machine)、ベイジアンネットワーク、線形回帰、回帰木、重回帰、ランダムフォレスト、アンサンブルなど、他の学習アルゴリズムで構築された学習モデル101であってよい。
【0024】
図4は、対応関係情報(要素名、操作対象オブジェクト)の一例を示す説明図である。学習モデル101は、入力された画面情報に含まれる操作対象オブジェクトそれぞれに対し、対応する要素名を特定し、これら操作対象オブジェクト及び要素名の組み合わせ(対応関係)を示す対応関係情報を出力する。本実施形態における図示のとおり、当該対応関係情報は、例えばリスト形式(一覧形式)のデータにて出力され、左右に並んで示される操作対象オブジェクトと要素名とが対応している。
【0025】
テスト対象となるアプリケーションの画面情報は、当該アプリケーションの画面を構成するための情報であり、例えば、HTML、CSS、XML、XHTML又はSGML
等の構造化言語にて定義された画面構成データであり、当該HTML等には、例えばJAVAscript等のブラウザ制御コードが含まれるものであってもよい。又は、テスト対象となるアプリケーションの画面情報は、当該アプリケーションのソースファイル、設計書、又は仕様書であってもよい。
【0026】
操作対象オブジェクト(例えばhtmlにおいてはnameタグで定義)は、例えばテキストフィールド、トルグスイッチ、ラジオボタン、プルダウン等の入力欄、送信ボタン、リセットボタン等の操作ボタン、及び、子画面等をポップアップ表示する機能ボタンを含むものであり、これら操作対象オブジェクトは、テスト対象となるアプリケーションの画面に表示される。
【0027】
要素名(例えばhtmlにおいてはirInquiry_labelタグで定義)は、アプリケーションの画面において、操作対象オブジェクトと同様に表示される文字列等であり、個々の操作対象オブジェクトの名称を示すものである。アプリケーションのユーザは、例えばユーザ名等の要素名を認識することにより、当該要素名に対応する入力欄(ユーザ名のテキストフィールド)にユーザ名等の文字の入力操作を行う。例えば、操作対象オブジェクトが、住所を入力するための入力欄(テキストフィールド)である場合、当該入力欄(テキストフィールド)の左側に表示される文字列である「住所」が、当該操作対象オブジェクトに対応する要素名となる。情報処理装置1の制御部11は、学習モデル101から取得した対応関係情報を、例えば本実施形態の図示のようなテーブル形式で、テストDB122に保存及び管理するものであってもよい。
【0028】
図5は、パス対応情報(要素名、要素パス(Xpath))の一例を示す説明図である。アプリケーションのテスト情報には、テスト対象となるアプリケーションの画面情報に対応したテスト対象オブジェクト、及び当該テスト対象オブジェクトに対する操作(アクション)が定義されて(含まれて)いる。
【0029】
テスト情報にて定義されるテスト対象オブジェクトは、アプリケーション画面にて表示される要素名に対応する操作対象オブジェクトに相当する。テスト情報においては、当該テスト対象オブジェクトは、アプリケーション画面にて表示される要素名によって定義されている。すなわち、テスト情報に含まれる要素名と、アプリケーションの画面情報に含まれる要素名とは、同じ名称となるようにテスト情報及び画面情報にて記載(定義)されている。
【0030】
情報処理装置1の制御部11は、学習モデル101が出力した対応関係情報に対する後処理として、テスト情報に含まれる要素名と、対応関係情報に含まれる要素名との同一性に関する対比(マッチング)を行う。同一な要素名については、対応関係情報に含まれる操作対象オブジェクトの要素パスを、画面情報から抽出することにより、テスト情報に含まれる要素名と当該要素名に対応する要素パスとが関連付けられたパス対応情報を出力する。画面情報が例えばHTML等で構成される場合、要素パスは、XPathに相当する。上述した対応関係情報に含まれる操作対象オブジェクト(name)は、要素パス(Xpath)の一部であるともいえ、学習モデル101は、操作対象オブジェクトとして要素パス(Xpath)を含む対応関係情報を出力するものであってもよい。情報処理装置1の制御部11は、生成したパス対応情報を、例えば本実施形態の図示のようなテーブル形式で、テストDB122に保存及び管理するものであってもよい。
【0031】
図6は、テスト情報の一例を示す説明図である。テスト情報を表示(テスト情報表示画面)する一例として、テスト情報に含まれる要素名(テスト対象オブジェクト)に対し、当該要素名に対応する操作対象オブジェクを、アプリケーション画面において一意に特定する要素パス(XPath)が対応付けられて、当該テスト情報が、情報処理装置1の表示部141等にて表示される。
【0032】
当該テスト情報表示画面において、個々の要素名に対する操作が、処理順番の順に列挙して表示される。例えば、操作のフィールドをクリックすることにより、情報処理装置1は、テスト情報に含まれる要素名に対する複数の操作候補を出力し、これら複数の操作候補に対するテスト担当者等による選択操作を受け付ける。これにより、テスト情報に含まれる要素名、すなわち当該要素名に対応する操作対象オブジェクの種類に応じた適切な操作(アクション)を効率的に設定することができ、実行スクリプトにおける操作対象オブジェクと操作(アクション)との不適合(ミスマッチング)を防止することができる。テスト情報は、更に、要素パスにより特定される操作対象オブジェクトに対する操作を行った結果(操作結果)に関する正否判定を含むものであってもよい。情報処理装置1の制御部11は、生成したテスト情報を、例えば本実施形態の図示のようなテーブル形式で、テストDB122に保存及び管理するものであってもよい。
【0033】
図7は、実行スクリプトの一例を示す説明図である。情報処理装置1の制御部11は、生成したテスト情報を例えばイクスポート処理することにより、情報処理装置1が実行可能な実行スクリプトを生成及び出力する。本実施形態における図示のように実行スクリプトは、自然言語にて記載(定義)されているものであってもよい。すなわち、実行スクリプトに含まれるテスト対象となる要素名(操作対象オブジェクを示すXPath)及び操作(アクション)は自然言語にて記載されて、当該実行スクリプトは生成されるものであってもよい。これにより、生成された実行スクリプトに対するテスト担当者の視認性を向上させ、当該テスト担当者による作業効率を向上させることができる。
【0034】
情報処理装置1の制御部11は、自然言語にて記載された実行スクリプトを解釈する解釈部を備え、当該実行スクリプトを実行することにより、テスト対象となるアプリケーションを実行するアプリケーションサーバASにアクセスし、当該アプリケーションのテストを実行スクリプト内の処理に基づき行う。
【0035】
図8は、情報処理装置1の制御部11に含まれる機能部を例示する機能ブロック図である。情報処理装置1の制御部11は、記憶部12に記憶されているプログラムPを実行することにより、学習モデル101、取得部111、入力データ生成部112、スクリプト生成部113、スクリプト実行部114、及び出力部115として機能する。
【0036】
取得部111は、テスト対象となるアプリケーションの画面情報、及び当該アプリケーションのテスト情報を取得する。取得部111は、例えば、テスト対象となるアプリケーションを実行するアプリケーションサーバASのURLに基づき、当該URLにアクセスした際に取得するHTMLデータ等を画面情報として取得するものであってもよい。取得部111は、例えば、テスト対象となるアプリケーションのソースファイル等、開発情報を管理する開発管理サーバにアクセスし、当該開発管理サーバからテスト情報を取得するものであってもよい。又は、取得部111は、情報処理装置1に接続される入力部142等から、入力された画面情報及びテスト情報を取得するものであってもよい。取得部111は、取得した画面情報を入力データ生成部112に出力する。
【0037】
入力データ生成部112は、取得部111から出力された画面情報を変換することにより、学習モデル101に適した入力データを生成する。操作対象オブジェクト及び要素名を含む画面情報が例えばHTMLにて構成されている場合、入力データ生成部112は、当該画面情報から、例えばhiddenタグ等で定義され、アプリケーションの画面上では非表示となる記載箇所を削除する等の前処理を行うものであってもよい。又は、このような前処理を行うことなく、入力データ生成部112は、取得部111からの画面情報を、そのまま学習モデル101に出力するものであってもよい。
【0038】
学習モデル101は、入力データ生成部112から出力された入力データに基づき、入力データに含まれる操作対象オブジェクト及び要素名の対応関係情報を出力する。
【0039】
スクリプト生成部113は、学習モデル101が出力した対応関係情報と、取得部111からのテスト情報及び画面情報に基づき、対応関係情報に含まれる操作対象オブジェクトを一意に特定する要素パスを、画面情報から抽出する。スクリプト生成部113は、当該抽出した要素パスを用いて、実行スクリプトを生成する。スクリプト生成部113は、生成した実行スクリプト、及び当該実行スクリプトを生成するあたり中間データとなるパス対応情報を、出力部115に出力する。また、スクリプト生成部113は、生成した実行スクリプトをスクリプト実行部114に出力する。
【0040】
出力部115は、スクリプト生成部113からの実行スクリプト及びパス対応情報を、例えば、表示部141に出力する。これにより、表示部141には、実行スクリプト及びパス対応情報等を含むテスト情報が表示され、テスト担当者等への作業支援を行うことができる。
【0041】
スクリプト実行部114は、スクリプト生成部113が生成した実行スクリプトを実行する。これにより、スクリプト実行部114は、テスト対象となるアプリケーションを実行するアプリケーションサーバASにアクセスし、当該アプリケーションのテストを実行スクリプト内の処理に基づき行う。スクリプト実行部114は、更に、当該実行スクリプトの実行結果を取得し、当該実行結果を出力部115に出力する。
【0042】
出力部115は、スクリプト実行部114からの実行結果を、例えば、表示部141に出力する。これにより、表示部141には、実行スクリプトの実行結果が表示され、テスト担当者等への作業支援を行うことができる。
【0043】
本実施形態において、学習モデル101、取得部111、入力データ生成部112、スクリプト生成部113、スクリプト実行部114、及び出力部115等の機能部は、情報処理装置1の制御部11によって担われるとしたが、これに限定されない。例えば、学習モデル101、及び各機能部は、異なる装置(サーバ)による分散処理環境にて実行されるものであってもよい。すなわち、本実施形態にて図示した一連の処理は、例えば、学習モデル101を用いる処理を行う装置(サーバ)、実行スクリプトの生成処理を行う装置(サーバ)、及び実行スクリプトの実行処理を行う装置(サーバ)とが、協働して行うものであってもよい。
【0044】
図9は、情報処理装置1の制御部11による処理手順を例示するフローチャートである。情報処理装置1の制御部11は、画面情報及びテスト情報を取得する(S101)。情報処理装置1の制御部11は、例えば、テスト対象のアプリケーションサーバAS、又はアプリケーションの開発情報を管理する開発管理サーバから、テスト対象となるアプリケーションの画面情報、及び当該アプリケーションのテスト情報を取得する。
【0045】
情報処理装置1の制御部11は、画面情報を学習モデル101に入力する(S102)。情報処理装置1の制御部11は、取得した画面情報、又は当該画面情報から変換して生成した入力データを学習モデル101に入力する。学習モデル101は入力された画面情報に基づき、操作対象オブジェクト及び要素名の対応関係を示す対応関係情報を出力する。
【0046】
情報処理装置1の制御部11は、学習モデル101が出力した対応関係情報を取得する(S103)。情報処理装置1の制御部11は、対応関係情報に含まれる操作対象オブジェクトを一意に特定する要素パスを画面情報から抽出する(S104)。情報処理装置1の制御部11は、学習モデル101が出力した対応関係情報に基づき、対応関係情報に含まれる操作対象オブジェクトを一意に特定する要素パスを画面情報から抽出する。
【0047】
情報処理装置1の制御部11は、テスト情報及び抽出した要素パスに基づき、アプリケーションのテストを行うための実行スクリプトを生成する(S105)。情報処理装置1の制御部11は、テスト情報に含まれる要素名と、学習モデル101が出力した対応関係情報に含まれる要素名とを対比することにより、抽出した要素パスと、テスト情報に含まれる要素名との対応付け(関連付け)を行う。情報処理装置1の制御部11は、テスト情報に含まれる要素名と要素パスとの対応関係(パス対応情報)に基づき、実行スクリプトを生成する。情報処理装置1の制御部11は、当該生成した実行スクリプト及び当該実行スクリプトを生成するあたり中間データとなるパス対応情報を表示部141に出力及び表示させるものであってもよい。
【0048】
情報処理装置1の制御部11は、生成した実行スクリプトを実行する(S106)。情報処理装置1の制御部11は、実行スクリプトを実行することにより、テスト対象となるアプリケーションを実行するアプリケーションサーバASにアクセスし、当該アプリケーションのテストを実行スクリプト内の処理に基づき行う。
【0049】
情報処理装置1の制御部11は、実行スクリプトの実行結果を取得する(S107)。情報処理装置1の制御部11は、実行スクリプトの実行結果を出力する(S108)。情報処理装置1の制御部11は、実行スクリプトの実行によって得られた処理結果又はエラー出力等の実行結果を取得し、当該実行結果を表示部141に出力及び表示させるものであってもよい。
【0050】
本開示の実施形態によれば、学習モデル101は、例えばHTML等の画面情報を入力した場合、画面上にて表示される操作対象オブジェクト及び要素名それぞれの表示位置に応じた対応関係情報を出力する。これにより、対応する操作対象オブジェクト及び要素名が異なる階層にて定義された際であっても、当該階層の相違による影響を受けることなく、操作対象オブジェクト及び要素名の対応を効率的に特定することができる。
【0051】
学習モデル101が出力した対応関係情報に含まれる操作対象オブジェクト及び要素名において、例えばHTML等で構成される画面情報から、当該操作対象オブジェクトを一意に示すXPath等の要素パスを抽出(パース)することができる。これにより、当該操作対象オブジェクトを一意に示すXPath等の要素パスと、要素名とを対応させることができる。
【0052】
テスト情報には、テスト対象となる操作対象オブジェクトを示す要素名と、当該要素名に対する操作(アクション)が定義されている。従って、テスト情報に含まれる要素名と、学習モデル101が出力した対応関係情報に含まれる要素名とを対比することにより、テスト情報に含まれる要素名と、当該要素名に対応する要素パス(XPath)とを関連付け、実行スクリプトの生成を自動化することができる。
【0053】
(実施形態2)
図10は、実施形態2(要素パスの重複確認)に係る情報処理装置1の制御部11による処理手順を例示するフローチャートである。情報処理装置1の制御部11は、画面情報及びテスト情報を取得する(S201)。情報処理装置1の制御部11は、画面情報を学習モデル101に入力する(S202)。情報処理装置1の制御部11は、学習モデル101が出力した対応関係情報を取得する(S203)。情報処理装置1の制御部11は、対応関係情報に含まれる操作対象オブジェクトを一意に特定する要素パスを画面情報から抽出する(S204)。情報処理装置1の制御部11は、実施形態1の処理S101からS104と同様に、S201からS204までの処理を行う。
【0054】
情報処理装置1の制御部11は、要素パスにおける重複が発生したか否かを判定する(S205)。情報処理装置1の制御部11は、要素パスにおける重複、すなわち複数の要素名に対し、同一の要素パスが設定(対応付け)されたか否かを判定する。
【0055】
図11は、パス対応情報における重複確認結果の表示画面の一例を示す説明図である。本実施形態における図示のとおり、テスト情報に含まれる要素名と、当該要素名に対応する要素パスとは、学習モデル101から出力された対応関係情報に基づき、例えばリスト形式にて表示される。テスト情報に含まれる要素名は、テスト対象である操作対象オブジェクトを示す名称であり、個々の要素名それぞれに対し、別個の要素パス(XPath)が対応付けられる(関連付けられる)ことが想定される。従って、複数の要素名に対し、同一の要素パスが設定(対応付け)された場合、当該要素パスは、複数の要素名に対し重複して設定されるものとなり、要素名と要素パスとの対応関係として不適切なものとなる。
【0056】
これに対し、情報処理装置1の制御部11は、要素パスにおける重複設定の有無を判定し、異なる複数の要素名に対し、同一の要素パスが設定(対応付け)された場合、重複設定が有る(発生した)と判定する。情報処理装置1の制御部11は、複数の要素名それぞれに対し、別個の要素パスが設定(対応付け)された場合、すなわち要素名及び要素パスとの対応それぞれが一意に設定されている場合、重複設定が無い(発生していない)と判定する。
【0057】
重複が発生した場合(S205:YES)、情報処理装置1の制御部11は、要素パスと要素名との対応を示すパス対応情報を出力する(S206)。本実施形態における図示のとおり、情報処理装置1の制御部11は、例えば、重複設定された要素パスを表示反転させることにより、重複設定された要素パスの表示形態を、重複設定されていない要素パスの表示形態とは異なる表示形態とするように、重複確認結果の表示画面を出力するものであってもよい。
【0058】
情報処理装置1の制御部11は、要素パスの変更を受付ける(S207)。情報処理装置1の制御部11は、重複確認結果の表示画面において、テスト担当者による重複設定された要素パスの変更を受付けるものであってもよい。重複確認結果の表示画面において、重複設定された要素パスは例えば反転表示等されており、テスト担当者が当該反転表示された要素パスをクリックすることにより、変更するにあたり候補となる複数の要素パスをリスト表示する選択画面(キャプチャ機能)が、ポップアップ表示されるものであってもよい。情報処理装置1の制御部11は、要素パスの選択画面にて選択された要素パスを受付け、当該選択された要素パスに変更する。
【0059】
本実施形態において、複数の要素名(操作対象オブジェクト)に対し、同一の要素パス(XPath)が重複して設定された場合、情報処理装置1の制御部11は、当該重複して設定された要素パスの変更(修正)を受付けるとしたが、これに限定されない。情報処理装置1の制御部11は、重複して設定されていない要素パスの変更(修正)についても、受け付けるものであってもよい。すなわち、学習モデル101を用いることにより、テスト情報に含まれる個々の要素名と、画面情報から抽出される要素パスとの対応(マッチング)する処理を自動化しつつも、必要に応じてテスト担当者等による当該対応の変更操作を受け付けることにより、テスト自動化システムSの可用性を向上させることができる。
【0060】
情報処理装置1の制御部11は、画面情報において非表示に設定されている要素パス(例えば、hidden型のオブジェクト)が、要素名(操作対象オブジェクト)に対する要素パスとして抽出された場合、当該非表示の要素パスについても、重複設定された要素パスと同様に反転表示するものであってもよい。情報処理装置1の制御部11は、当該非表示に設定されている要素パスに対しても、重複設定された要素パスと同様に、要素名と要素パスとの対応の変更操作を受け付ける。このようなhidden型のオブジェクトは、アプリケーションの操作者(ユーザ)からの参照及び操作はできないオブジェクト(操作対象外オブジェクト)であり、上述の処理を行うことにより、当該操作対象外オブジェクトをテスト対象から確実に除外することができる。
【0061】
重複が発生していない場合(S205:NO)、又はS207の実行後、情報処理装置1の制御部11は、テスト情報及び抽出した要素パスに基づき、アプリケーションのテストを行うための実行スクリプトを生成する(S208)。情報処理装置1の制御部11は、生成した実行スクリプトを実行する(S209)。情報処理装置1の制御部11は、実行スクリプトの実行結果を取得する(S210)。情報処理装置1の制御部11は、実行スクリプトの実行結果を出力する(S211)。情報処理装置1の制御部11は、実施形態1の処理S105からS108と同様に、S208からS211までの処理を行う。
【0062】
本開示の実施形態によれば、情報処理装置1は、いずれかの要素パスが、テスト情報に含まれる複数の要素名に対し重複しているか否かを判定し、重複している場合、複数の要素名に対し重複する要素パスに関する情報を出力する。これにより、同一の要素パスが複数の要素名に対し重複して設定されていることを、アプリケーションのテスト担当者等に効率的に報知することができる。
【0063】
本開示の実施形態によれば、情報処理装置1は、抽出し要素パスに対応するテスト情報に含まれる要素名との対応を示すパス対応情報を出力し、当該出力したパス対応情報の変更を受け付ける。これにより、例えば、同一の要素パスが複数の要素名に対し重複して設定された場合、当該重複している旨を情報処理装置1に接続される表示部141に表示すると共に、当該重複した設定された要素名に対する要素パスを変更するテスト担当者等の操作を受付け、要素パスと要素名との対応関係を容易に適正化することができる。
【0064】
(実施形態3)
図12は、実施形態3(スクレイピング部)に係る情報処理装置1の制御部11に含まれる機能部を例示する機能ブロック図である。実施形態3の情報処理装置1の制御部11は、実施形態1と同様に記憶部12に記憶されているプログラムPを実行することにより、取得部111、入力データ生成部112、スクリプト生成部113、スクリプト実行部114、及び出力部115として機能し、更にスクレイピング部116として機能する。
【0065】
スクレイピング部116は、実施形態1の学習モデル(対応関係モデル)と同様に、入力された画面情報に基づき、当該画面情報に含まれる操作対象オブジェクト及び要素名の対応関係情報を出力(導出)する。画面情報が例えば、HTMLによって定義されている場合、スクレイピング部116は、入力されたHTMLデータ(画面情報)をスクレイピングすることにより、当該HTMLに含まれる操作対象オブジェクト(name)と、要素名(irInquiry_label)との対応関係情報を出力する。スクレイピング部116は、例えば、HTMLデータに含まれるdivタグによってブロックレベル要素として定義されたグループに含まれる操作対象オブジェクト及び要素名を抽出し、当該抽出した操作対象オブジェクトと要素名とが対応関係を有するとして、対応関係情報を出力するものであってもよい。すなわち、スクレイピング部116は、同じグループ(ブロックレベル要素)に含まれる操作対象オブジェクトと要素名とを関連付け、対応関係情報を生成するものであってもよい。このように、例えば画面情報がHTML等による階層構造(入れ子構造)で定義される場合、同一の階層構造に属する操作対象オブジェクト及び要素名の対応関係を特定する処理を行うルールーベースを用いることにより、対応関係情報を効率的に生成することができる。
【0066】
本実施形態において、取得部111、入力データ生成部112、スクリプト生成部113、スクリプト実行部114、及び出力部115は、実施形態1と同様に機能する。その上で、スクレイピング部116は、入力データ生成部112からの画面情報に基づき生成した対応関係情報を、スクリプト生成部113に出力する。
【0067】
図13は、情報処理装置1の制御部11による処理手順を例示するフローチャートである。情報処理装置1の制御部11は、実施形態1のS101と同様に、S301の処理を行う。
【0068】
情報処理装置1の制御部11は、画面情報をスクレイピングする(S302)。情報処理装置1の制御部11は、スクレイピング処理を行い、対応する操作対象オブジェクト及び要素名を特定することにより、対応関係情報を取得する(S303)。情報処理装置1の制御部11は、スクレイピング処理を行うことにより、例えば画面情報において定義されている階層構造等に基づき、同一の階層構造に属する操作対象オブジェクト及び要素名の対応関係を特定する。情報処理装置1の制御部11は、これら特定した個々の操作対象オブジェクト及び要素名の対応関係を用いて対応関係情報を生成(導出)することにより、当該対応関係情報を取得する。
【0069】
情報処理装置1の制御部11は、実施形態1のS104からS108と同様に、S304からS308の処理を行う。
【0070】
本実施形態において、対応関係情報を導出するにあたり、情報処理装置1の制御部11は、スクレイピング処理を行うとしたが、これに限定されない。情報処理装置1の制御部11は、当該スクレイピング処理(スクレイピング部116)と、実施形態1の学習モデル101(対応関係モデル)とを併用して、対応関係情報を導出するものであってもよい。この場合、情報処理装置1の制御部11は、スクレイピング部116が出力した対応関係情報と、学習モデル101が出力した対応関係情報との論理和又は論理積の結果を、スクリプト生成部113に出力する対応関係情報として導出するものであってもよい。同一の入力値である画面情報に対し、スクレイピング部116及び学習モデル101から成る異なる2つの処理部(対応関係情報取得部)を用いて対応関係情報を導出することにより、当該対応関係情報の精度を向上させることができる。
【0071】
本開示の実施形態によれば、情報処理装置1は、入力された画面情報をスクレイピングすることにより、操作対象オブジェクト及び要素名の対応関係情報を効率的に生成及び出力することができる。
【0072】
今回開示された実施形態は全ての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上述した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【0073】
S テスト自動化システム
AS アプリケーションサーバ
1 情報処理装置(テスト自動化サーバ)
11 制御部
111 取得部
112 入力データ生成部
113 スクリプト生成部
114 スクリプト実行部
115 出力部
116 スクレイピング部
12 記憶部
121 記録媒体
P プログラム(プログラム製品)
122 テストDB
13 通信部
14 入出力I/F
141 表示部
142 入力部
101 学習モデル(対応関係モデル)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13