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

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

▶ 国立大学法人京都工芸繊維大学の特許一覧 ▶ バルテス・ホールディングス株式会社の特許一覧

特許7738835プログラム、情報処理方法、及び情報処理装置
<>
  • 特許-プログラム、情報処理方法、及び情報処理装置 図1
  • 特許-プログラム、情報処理方法、及び情報処理装置 図2
  • 特許-プログラム、情報処理方法、及び情報処理装置 図3
  • 特許-プログラム、情報処理方法、及び情報処理装置 図4
  • 特許-プログラム、情報処理方法、及び情報処理装置 図5
  • 特許-プログラム、情報処理方法、及び情報処理装置 図6
  • 特許-プログラム、情報処理方法、及び情報処理装置 図7
  • 特許-プログラム、情報処理方法、及び情報処理装置 図8
  • 特許-プログラム、情報処理方法、及び情報処理装置 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-09-05
(45)【発行日】2025-09-16
(54)【発明の名称】プログラム、情報処理方法、及び情報処理装置
(51)【国際特許分類】
   G06F 11/36 20250101AFI20250908BHJP
【FI】
G06F11/3668 188
G06F11/3668 196
【請求項の数】 8
(21)【出願番号】P 2023174691
(22)【出願日】2023-10-06
(65)【公開番号】P2025064732
(43)【公開日】2025-04-17
【審査請求日】2024-07-31
【新規性喪失の例外の表示】特許法第30条第2項適用 令和 5年 3月30日に、PR TIMESのウェブサイトにて公開 https://prtimes.jp/main/html/rd/p/000000225.000030691.html https://prtimes.jp/main/html/rd/p/000000226.000030691.html 令和 5年 3月28日に、T-DASHのウェブサイトにて公開 https://service.valtes.co.jp/t-dash/function/tutorial/behaviordefinitions_vol_005 令和 5年 3月30日に、日本経済新聞のウェブサイトにて公開 https://www.nikkei.com/nkd/disclosure/tdnr/20230330539201/ 令和 5年 3月31日に、株式会社フィスコのウェブサイトにて公開 https://web.fisco.jp/platform/market-news/0009350020230331037 令和 5年 4月 3日に、T-DASHのウェブサイトにて公開 https://service.valtes.co.jp/t-dash/news/%e3%82%a2%e3%83%83%e3%83%97%e3%83%87%e3%83%bc%e3%83%88/t-dash-ver3-0-000%e3%82%92%e3%83%aa%e3%83%aa%e3%83%bc%e3%82%b9%e3%81%97%e3%81%be%e3%81%97%e3%81%9f%e3%80%82 令和 5年 4月 3日に、T-DASHのウェブサイトにて公開 https://service.valtes.co.jp/t-dash/request 令和 5年 7月 3日に、Qbookのウェブサイトにて公開 https://www.qbook.jp/column/1661.html
(73)【特許権者】
【識別番号】504255685
【氏名又は名称】国立大学法人京都工芸繊維大学
(73)【特許権者】
【識別番号】523378826
【氏名又は名称】バルテス・ホールディングス株式会社
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】水野 修
(72)【発明者】
【氏名】南 翔大
(72)【発明者】
【氏名】石原 一宏
(72)【発明者】
【氏名】村上 崇
(72)【発明者】
【氏名】齋藤 俊彰
【審査官】真木 健彦
(56)【参考文献】
【文献】特開2019-101538(JP,A)
【文献】特開2006-202184(JP,A)
【文献】特開2019-067169(JP,A)
【文献】特開2016-018359(JP,A)
【文献】国際公開第2014/199824(WO,A1)
【文献】特開2021-174096(JP,A)
【文献】特開2022-036210(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/3668
G06F 11/07 - 11/36
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
テスト対象となるアプリケーションの画面情報を取得し、
前記アプリケーションのテスト情報を取得し、
取得した前記画面情報に含まれる操作対象オブジェクトに対応する要素画像を取得し、
取得した前記要素画像に基づき、前記操作対象オブジェクトを示す操作画像を特定し、
特定した前記操作画像に基づき、前記アプリケーションの画面上における前記操作画像の位置を導出し、
導出した前記操作画像の位置と、前記テスト情報とに基づき、前記アプリケーションのテストを行うための実行スクリプトを出力し、
前記アプリケーションの画面上における1つ以上の比較対象領域を抽出し、
抽出した前記比較対象領域それぞれと、前記要素画像との一致度を導出し、
導出した一致度が予め定められた閾値以上の比較対象領域を、前記操作対象オブジェクトを示す前記操作画像として特定し、
取得した前記要素画像を用いて、サイズが異なる複数の要素画像を含む要素画像群を生成し、
取得した前記アプリケーションの前記画面情報を用いて、サイズが異なる複数の画面を含むアプリケーション画面群を生成し、
前記要素画像群に含まれる要素画像それぞれと、前記アプリケーション画面群に含まれる画面それぞれとを対比することにより、抽出した比較対象領域における一致度を導出し、
前記アプリケーション画面群に含まれるサイズが異なる複数の画面は、解像度が段階的に異なるようにガウシアンフィルタを用いて生成され、
前記アプリケーション画面群によって、ガウシアンピラミッドが構成され、
前記アプリケーション画面群に含まれる複数の画面の内、一致度が予め定められた閾値以上の比較対象領域を含むマッチング画面を特定し、
前記マッチング画面に含まれる比較対象領域に基づき、前記マッチング画面の解像度よりも高い解像度の画面における前記操作画像の位置を導出する
処理を実行させるプログラム。
【請求項2】
前記マッチング画面の解像度よりも高い解像度の画面は、前記ガウシアンフィルタを用いる際の元データであるアプリケーション画面であり、
前記アプリケーション画面の前記操作画像と、前記要素画像とを位相限定相関法を用いて対比することにより、導出した一致度の適否を判定する
請求項1に記載のプログラム。
【請求項3】
前記アプリケーションの画面上における前記操作画像の位置は、前記アプリケーションが実行される操作ウィンドウを基準としたクライアント座標にて導出する
請求項1に記載のプログラム。
【請求項4】
前記一致度が予め定められた閾値以上となる比較対象領域が複数導出されることにより、複数個の操作画像が特定された場合、前記特定された複数個の操作画像のうち、いずれかの操作画像を選択する操作を受付け、
前記選択された操作画像の位置を用いて、前記アプリケーションのテストを行うための実行スクリプトを出力する
請求項1に記載のプログラム。
【請求項5】
導出した前記操作画像の位置を用いて、前記操作画像の前記操作対象オブジェクトを一意に特定する要素パスを、前記画面情報から抽出し、
抽出した前記要素パスを用いて、前記アプリケーションのテストを行うための前記実行スクリプトを出力する
請求項1に記載のプログラム。
【請求項6】
出力した前記実行スクリプトを実行し、
前記実行スクリプトの実行結果を出力する
請求項1から請求項5のいずれか1項に記載のプログラム。
【請求項7】
テスト対象となるアプリケーションの画面情報を取得し、
前記アプリケーションのテスト情報を取得し、
取得した前記画面情報に含まれる操作対象オブジェクトに対応する要素画像を取得し、
取得した前記要素画像に基づき、前記操作対象オブジェクトを示す操作画像を特定し、
特定した前記操作画像に基づき、前記アプリケーションの画面上における前記操作画像の位置を導出し、
導出した前記操作画像の位置と、前記テスト情報とに基づき、前記アプリケーションのテストを行うための実行スクリプトを出力し、
前記アプリケーションの画面上における1つ以上の比較対象領域を抽出し、
抽出した前記比較対象領域それぞれと、前記要素画像との一致度を導出し、
導出した一致度が予め定められた閾値以上の比較対象領域を、前記操作対象オブジェクトを示す前記操作画像として特定し、
取得した前記要素画像を用いて、サイズが異なる複数の要素画像を含む要素画像群を生成し、
取得した前記アプリケーションの前記画面情報を用いて、サイズが異なる複数の画面を含むアプリケーション画面群を生成し、
前記要素画像群に含まれる要素画像それぞれと、前記アプリケーション画面群に含まれる画面それぞれとを対比することにより、抽出した比較対象領域における一致度を導出し、
前記アプリケーション画面群に含まれるサイズが異なる複数の画面は、解像度が段階的に異なるようにガウシアンフィルタを用いて生成され、
前記アプリケーション画面群によって、ガウシアンピラミッドが構成され、
前記アプリケーション画面群に含まれる複数の画面の内、一致度が予め定められた閾値以上の比較対象領域を含むマッチング画面を特定し、
前記マッチング画面に含まれる比較対象領域に基づき、前記マッチング画面の解像度よりも高い解像度の画面における前記操作画像の位置を導出する
処理をコンピュータに実行させる情報処理方法。
【請求項8】
テスト対象となるアプリケーションの画面情報を取得し、
前記アプリケーションのテスト情報を取得し、
取得した前記画面情報に含まれる操作対象オブジェクトに対応する要素画像を取得する取得部と、
取得した前記要素画像に基づき、前記操作対象オブジェクトを示す操作画像を特定する特定部と、
特定した前記操作画像に基づき、前記アプリケーションの画面上における前記操作画像の位置を導出する導出部と、
導出した前記操作画像の位置と、前記テスト情報とに基づき、前記アプリケーションのテストを行うための実行スクリプトを出力する出力部と
を備え、
前記アプリケーションの画面上における1つ以上の比較対象領域を抽出し、
抽出した前記比較対象領域それぞれと、前記要素画像との一致度を導出し、
導出した一致度が予め定められた閾値以上の比較対象領域を、前記操作対象オブジェクトを示す前記操作画像として特定し、
取得した前記要素画像を用いて、サイズが異なる複数の要素画像を含む要素画像群を生成し、
取得した前記アプリケーションの前記画面情報を用いて、サイズが異なる複数の画面を含むアプリケーション画面群を生成し、
前記要素画像群に含まれる要素画像それぞれと、前記アプリケーション画面群に含まれる画面それぞれとを対比することにより、抽出した比較対象領域における一致度を導出し、
前記アプリケーション画面群に含まれるサイズが異なる複数の画面は、解像度が段階的に異なるようにガウシアンフィルタを用いて生成され、
前記アプリケーション画面群によって、ガウシアンピラミッドが構成され、
前記アプリケーション画面群に含まれる複数の画面の内、一致度が予め定められた閾値以上の比較対象領域を含むマッチング画面を特定し、
前記マッチング画面に含まれる比較対象領域に基づき、前記マッチング画面の解像度よりも高い解像度の画面における前記操作画像の位置を導出する
情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報処理方法、及び情報処理装置に関する。
【背景技術】
【0002】
コンピュータプログラムのテスト仕様を生成するための装置及びプログラムが知られている(例えば、特許文献1)。特許文献1に記載の装置によれば、因子・水準の選択時に過去のテスト仕様設計において選択された因子・水準に基づき、ある因子とともに選択された因子の選択確率や、ある因子内である水準が選択された確率が表示される。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2013-125420号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載の装置及びプログラムにおいては、テスト対象となるアプリケーションの画面情報と、画面情報に含まれる操作対象オブジェクトに対応する要素画像とに基づき、アプリケーションのテストを行うための実行スクリプトを効率的に出力する点が考慮されていないという問題点がある。
【0005】
本開示は、斯かる事情に鑑みてなされたものであり、テスト対象となるアプリケーションの画面情報と、画面情報に含まれる操作対象オブジェクトに対応する要素画像とに基づき、アプリケーションのテストを行うための実行スクリプトを効率的に出力することができるプログラム等を提供することを目的とする。
【課題を解決するための手段】
【0006】
一つの案では、プログラムは、コンピュータに、テスト対象となるアプリケーションの画面情報を取得し、前記アプリケーションのテスト情報を取得し、取得した前記画面情報に含まれる操作対象オブジェクトに対応する要素画像を取得し、取得した前記要素画像に基づき、前記操作対象オブジェクトを示す操作画像を特定し、特定した前記操作画像に基づき、前記アプリケーションの画面上における前記操作画像の位置を導出し、導出した前記操作画像の位置と、前記テスト情報とに基づき、前記アプリケーションのテストを行うための実行スクリプトを出力する処理を実行させる。
【0007】
一つの案では、情報処理方法は、テスト対象となるアプリケーションの画面情報を取得し、前記アプリケーションのテスト情報を取得し、取得した前記画面情報に含まれる操作対象オブジェクトに対応する要素画像を取得し、取得した前記要素画像に基づき、前記操作対象オブジェクトを示す操作画像を特定し、特定した前記操作画像に基づき、前記アプリケーションの画面上における前記操作画像の位置を導出し、導出した前記操作画像の位置と、前記テスト情報とに基づき、前記アプリケーションのテストを行うための実行スクリプトを出力する処理をコンピュータに実行させる。
【0008】
一つの案では、情報処理装置は、テスト対象となるアプリケーションの画面情報を取得し、前記アプリケーションのテスト情報を取得し、取得した前記画面情報に含まれる操作対象オブジェクトに対応する要素画像を取得する取得部と、取得した前記要素画像に基づき、前記操作対象オブジェクトを示す操作画像を特定する特定部と、特定した前記操作画像に基づき、前記アプリケーションの画面上における前記操作画像の位置を導出する導出部と、導出した前記操作画像の位置と、前記テスト情報とに基づき、前記アプリケーションのテストを行うための実行スクリプトを出力する出力部とを備える。
【発明の効果】
【0009】
本開示によれば、テスト対象となるアプリケーションの画面情報と、画面情報に含まれる操作対象オブジェクトに対応する要素画像とに基づき、アプリケーションのテストを行うための実行スクリプトを効率的に出力するプログラム等を提供することが可能となる。
【図面の簡単な説明】
【0010】
図1】実施形態1に係るテスト自動化システムを例示するシステム概要図である。
図2】テスト自動化システムに含まれる情報処理装置の構成例を示すブロック図である。
図3】操作画像を含むアプリケーション画面と、要素画像との対応の一例を示す説明図である。
図4】情報処理装置の制御部による処理手順を例示するフローチャートである。
図5】ガウシアンピラミッドに関する処理(テンプレートマッチング)の一例を示す説明図である。
図6】ガウシアンピラミッドに関する処理(元画像での抽出)の一例を示す説明図である。
図7】位相限定相関法の適用に関する処理の一例を示す説明図である。
図8】実施形態2(選択画面)に係る情報処理装置の制御部による処理手順を例示するフローチャートである。
図9】選択画面の一例を示す説明図である。
【発明を実施するための形態】
【0011】
(実施形態1)
以下、本発明をその実施の形態を示す図面に基づいて詳述する。図1は、実施形態1に係るテスト自動化システムSを例示するシステム概要図である。図2は、テスト自動化システムSに含まれる情報処理装置1の構成例を示すブロック図である。テスト自動化システムSは、情報処理装置1を主たる装置(サーバ)として構成され、当該情報処理装置1は、例えばインターネット又はLAN等を介してアプリケーションサーバAS等と通信可能に接続される。当該アプリケーションサーバASは、テスト対象のアプリケーションを提供するWEBサーバ等である。情報処理装置1は、当該テスト対象のアプリケーションに対するテストを自動実行するための実行スクリプトの生成、実行、及び当該実行スクリプトに関する種々のデータを保存管理するテスト自動化サーバとして機能する。
【0012】
情報処理装置1は、テスト対象のアプリケーションの画面情報、及び当該テストに関する情報が定義されるテスト情報を取得し、これら画面情報及びテスト情報を用いて、アプリケーションのテストを行うための実行スクリプトを生成する。本実施形態において、情報処理装置1(テスト自動化サーバ)と、アプリケーションサーバAS(テスト対象のアプリケーションを提供するWEBサーバ)とは、別個の装置として説明したが、これに限定されず、これらサーバ機能が単一の装置に集約されたサーバ構成であってもよいことは、言うまでもない。
【0013】
情報処理装置1は、制御部11、記憶部12、通信部13、及び入出力I/F14を備える。制御部11は、一又は複数のCPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)等の演算処理装置を有し、記憶部12に記憶されたプログラムP(プログラム製品)を読み出して実行することにより、情報処理装置1に係る種々の情報処理、制御処理等を行う。
【0014】
記憶部12は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)、フラッシュメモリ等の揮発性記憶領域及び、EEPROM又はハードディスク等の不揮発性記憶領域を含む。記憶部12には、プログラムP(プログラム製品)及び処理時に参照するデータが予め記憶してある。記憶部12に記憶されたプログラムP(プログラム製品)は、情報処理装置1が読み取り可能な記録媒体121から読み出されたプログラムP(プログラム製品)を記憶したものであってもよい。また、図示しない通信網に接続されている図示しない外部コンピュータからプログラムP(プログラム製品)をダウンロードし、記憶部12に記憶させたものであってもよい。
【0015】
通信部13は、有線又は無線により施設内のLAN又はインターネット等を介し、アプリケーションサーバAS又は、アプリケーションのソースファイル等の開発情報を管理する開発管理サーバ(図示せず)等と通信するための通信インターフェイスである。
【0016】
入出力I/F14は、例えばUSB等、情報処理装置1の制御部11に対しデータの入出力のインターフェイスであり、当該入出力I/F14には、例えば液晶ディスプレイ等の表示部141、キーボード、マウス等の入力部142が接続される。
【0017】
図3は、操作画像を含むアプリケーション画面と、要素画像との対応の一例を示す説明図である。情報処理装置1の制御部11は、アプリケーションの画面情報、及び操作対象オブジェクトに対応する要素画像を、画像認識処理を行うにあたっての入力因子として取得する。
【0018】
アプリケーションの画面情報は、例えば、テスト対象となるWEBアプリケーションのWEBサイトを示すURLである。又は、アプリケーションの画面情報は、当該WEBアプリケーションが実行される操作ウィンドウのアプリケーション画面(スクリーンショット画像)であってもよい。当該アプリケーション画面(スクリーンショット画像)は、例えば、イメージファイルとして情報処理装置1の記憶部12に記憶されているものであってもよい。又は、アプリケーションの画面情報は、WEBアプリケーションが実行される際にブラウザ上に展開されるHTML等の構造化言語にて示されるコードデータであってもよい。情報処理装置1の制御部11は、アプリケーションの画面情報として、URL又はHTML等を取得した場合、これらURL等にアクセスすることにより表示される操作ウィンドウを画面キャプチャし、アプリケーション画面(スクリーンショット画像)を生成するものであってもよい。
【0019】
当該アプリケーション画面(スクリーンショット画像)には、テスト自動化を行うにあたり、操作テストの対象となる操作対象オブジェクトが、1つ以上、配置されている。操作対象オブジェクトは、例えば、アイコン、機能ボタン、又はリンク画像(リンク設定等がされている画像)であり、アプリケーション画面は、当該操作対象オブジェクトを示す操作画像を含む。すなわち、操作対象オブジェクトを示す操作画像に対し、クリック又は文字入力等の操作をマクロ処理等にて行うことにより、テスト自動化を図ることができる。
【0020】
操作画像は、当該アプリケーション画面における任意の位置に配置されている。アプリケーション画面における任意の位置に配置されている操作画像は、ユーザによるマウス等のクリックにより、押下又は選択等の操作が行われる操作対象オブジェクトとして、例えば定義又は設定されており、スクリプト言語(例えばJavaScript等)にて記述されたコードが関連又は対応付けられている。このようにアプリケーション画面における任意の位置に配置されている操作画像を、マウス等にてクリック(押下)することにより、当該操作画像に対応付けられたコード(スクリプト)が実行され、例えば、当該操作画像の拡大画像の表示処理、又は他ページへのリダイレクト処理等が行われる。
【0021】
情報処理装置1の制御部11は、当該アプリケーション画面(スクリーンショット画像)を取得することにより、当該アプリケーション画面における平面座標(クライアント座標)を定義し、当該平面座標にて、アプリケーション画面上に配置されるアイコン、機能ボタン、画像表示領域等を特定することができる。従って、情報処理装置1の制御部11は、アプリケーション画面上において、操作対象オブジェクトを示す操作画像の位置(クライアント座標における領域)及びサイズを算出することができる。詳細は後述するが、情報処理装置1の制御部11は、取得したアプリケーション画面(スクリーンショット画像)を元データ(レベル0)とし、当該元データに対し、解像度が段階的に異なるガウシアンフィルタを用いて縮小処理を行い、ガウシアンピラミッド(アプリケーション画面群)を生成する。
【0022】
操作対象オブジェクトに対応する要素画像は、テスト自動化を行う際に操作テストの対象となるアイコン、機能ボタン、又はリンク画像(リンク設定等がされている画像)等に対応した画像(本実施形態では、クリックボタンの画像)である。当該要素画像は、テスト対象となるアプリケーション画面において、操作テストの対象となる操作対象オブジェクトの領域を切り出した画像であり、例えば、イメージファイルとして情報処理装置1の記憶部12に記憶されているものであってもよい。すなわち、要素画像は、アプリケーション画面において検出対象となる要素(操作対象オブジェクト)と実質的に同じ画像であり、当該要素画像が記憶部12に記憶されるにあたり、検出対象となる要素(操作対象オブジェクト)の要素名と関連付けられて記憶されるものであってもよい。本実施形態においては、要素画像は、HTML(buttonタグ)にて定義されブラウザ上に表示される画像であるが、例えば、png等を用いたリンク画像であってもよいことは、言うまでもない。詳細は後述するが、情報処理装置1の制御部11は、取得した要素画像に対し、拡大又は縮小することにより、サイズ違いとなる複数の要素画像を生成する。これらサイズ違いとなる複数の要素画像によって、要素画像群が構成される。
【0023】
情報処理装置1の制御部11は、アプリケーションが実行される操作ウィンドウのスクリーンショット画像であるアプリケーション画面(ソース画像)と、操作対象オブジェクトに対応する要素画像(テンプレート画像)とを対比処理又は比較演算処理を行う。これにより、情報処理装置1の制御部11は、アプリケーション画面(ソース画像)において、要素画像(テンプレート画像)と実質的に同じ画像である操作画像(操作対象オブジェクトを示す操作画像の領域)を抽出又は特定する。情報処理装置1の制御部11は、操作画像(操作対象オブジェクトを示す操作画像)を抽出等するにあたり、アプリケーション画面における位置(クライアント座標等)及びサイズを導出するものであってもよい。
【0024】
情報処理装置1の制御部11は、アプリケーション画面(ソース画像)における区画化される各領域(比較対象領域)と、要素画像(テンプレート画像)との一致度(類似度)に基づき、一致度(類似度)が閾値以上の比較対象領域を、操作画像として特定するものであってもよい。この際、情報処理装置1の制御部11は、アプリケーション画面群と、要素画像群とにおいて、これら画像群それぞれに含まれる画像それぞれとを総当たりにて対比又は比較するものであってもよい。情報処理装置1の制御部11は、アプリケーション画面上にて、特定した操作画像(操作対象オブジェクトを示す操作画像)をハイライト表示するものであってもよい。情報処理装置1の制御部11は、このように導出した操作画像(操作対象オブジェクトを示す操作画像)の位置(クライアント座標等)等を用いて、テスト対象のアプリケーションに対するテストを自動実行するための実行スクリプトの生成及び出力する。
【0025】
図4は、情報処理装置1の制御部11による処理手順を例示するフローチャートである。情報処理装置1の制御部11は、テスト対象となるアプリケーションの画面情報を取得する(S101)。情報処理装置1の制御部11は、例えば、テスト対象のアプリケーションサーバAS、又はアプリケーションの開発情報を管理する開発管理サーバから、テスト対象となるアプリケーションの画面情報、及び当該アプリケーションのテスト情報を取得する。アプリケーションの画面情報は、例えば、テスト対象となるWEBアプリケーションのWEBサイトを示すURL、アプリケーションが実行される操作ウィンドウのアプリケーション画面(スクリーンショット画像)、又はWEBアプリケーションが実行される際にブラウザ上に展開されるHTML等の構造化言語にて示されるコードデータを含むものであってもよい。
【0026】
情報処理装置1の制御部11は、操作対象オブジェクトに対応する要素画像を取得する(S102)。情報処理装置1の制御部11は、アプリケーションの開発情報を管理する開発管理サーバから、又は入出力I/F14等を介してキーボード等から入力された要素画像(イメージファイル)を取得し、記憶部12に記憶する。当該要素画像(イメージファイル)は、操作テストの対象となる操作対象オブジェクトの領域を切り出し、例えばpng又はjpeg等のイメージファイルとして生成されたものであってもよい。
【0027】
情報処理装置1の制御部11は、取得した要素画像に基づき、操作対象オブジェクトを示す操作画像の位置及びサイズを導出する(S103)。情報処理装置1の制御部11は、アプリケーションが実行される操作ウィンドウのスクリーンショット画像であるアプリケーション画面(ソース画像)と、操作対象オブジェクト(UI要素)に対応する要素画像(テンプレート画像)とを対比することにより、操作対象オブジェクト(UI要素)を示す操作画像(UI要素の画像)の位置(アプリケーション画面上における領域)を特定する。情報処理装置1の制御部11は、当該対比処理を行うにあたり、単一のアプリケーション画面(ソース画像)と要素画像(テンプレート画像)とを対比する場合に限定されず、これら画像それぞれを含む画像群(アプリケーション画面群、要素画像群)同士を対比するものであってもよい。
【0028】
アプリケーション画面群(ソース画像群)は、解像度(ボケさせ具合)が段階的に異なる複数のガウシアンフィルタを用いて、解像度及びサイズが段階的に異なる複数のアプリケーション画面(スクリーンショット画像)を含む。要素画像群(テンプレート画像群)は、取得した要素画像に対し、拡大又は縮小することにより、サイズ違いとなる複数の要素画像を含む。
【0029】
図5は、ガウシアンピラミッドに関する処理(テンプレートマッチング)の一例を示す説明図である。情報処理装置1の制御部11は、元画像(アプリケーションが実行される操作ウィンドウの画面キャプチャであるスクリーンショット画像)に対し、解像度(ボケさせ具合)が段階的に異なるようにガウシアンフィルタを適用する。これにより、情報処理装置1の制御部11は、解像度が段階的に異なる複数のスクリーンショット画像を含むガウシアンピラミッドとなる、アプリケーション画面群(ソース画像群)を生成する。
【0030】
解像度に応じて、アプリケーション画面群に含まれるアプリケーション画面のレベルが定義され、元画像(アプリケーションが実行される操作ウィンドウの画面キャプチャであるスクリーンショット画像)は、レベル0と定義される。段階的に異なる解像度は、例えば、1/(2^n)「nはべき乗を示し1以上の整数(レベル)」にて示され、レベルが1つ増加することにより、解像度は1/2に減少する。本実施形態における図示においては、レベル0(元の画像)からレベル4(1/16の解像度の画像)までを例示しており、ガウシアンピラミッド(アプリケーション画面群)は、更にレベル5以上の画像を含むものであってもよい。このようにガウシアンピラミッドを用いて、WEBサイト(テスト対象となるアプリケーションのサイトページ)のスクリーンショット画像から生成したソース画像群(アプリケーション画面群)を構成することができる。情報処理装置1の制御部11は、このように生成したアプリケーション画面群(ソース画像群)を記憶部12に記憶する。
【0031】
情報処理装置1の制御部11は、取得した要素画像(UI要素の画像)から生成した、すなわち要素画像を拡大又は縮小することによりサイズ違いとなる複数の要素画像(テンプレート画像)を含む要素画像群(テンプレート画像群)を生成する。情報処理装置1の制御部11は、このように生成した要素画像群(テンプレート画像群)を記憶部12に記憶する。
【0032】
情報処理装置1の制御部11は、アプリケーション画面群(ソース画像群)に含まれるアプリケーション画面(ソース画像)それぞれと、要素画像群(テンプレート画像群)に含まれる要素画像(テンプレート画像)それぞれとを対比(テンプレートマッチング)する。情報処理装置1の制御部11は、例えば、OpenCV[cv2.matchTemplate関数]等の画像処理ライブラリを用いて、テンプレートマッチングを実行するものであってもよい。テンプレートマッチングを実行することにより、大きな画像であるソース画像の中から小さな画像であるテンプレート画像と一致するソース画像上の矩形領域を探すことができる。
【0033】
情報処理装置1の制御部11は、当該対比処理を行うにあたり、アプリケーション画面群と、要素画像群とにおいて、これら画像群それぞれに含まれる画像それぞれとを総当たりにて対比(全ての組み合わせについてテンプレートマッチングを実行)するものであってもよい。情報処理装置1の制御部11は、当該テンプレートマッチングを実行するにあたり、アプリケーション画面(スクリーンショット画像)において区画化される各領域(比較対象領域)と、要素画像との一致度(類似度)に基づき、一致度(類似度)が閾値以上の比較対象領域を操作画像として特定するものであってもよい。情報処理装置1の制御部11は、当該テンプレートマッチングを行うことにより、いずれかのレベル(レベル:l)のアプリケーション画面(スクリーンショット画像)において、要素画像と一致する領域(操作画像)を抽出する。
【0034】
図6は、ガウシアンピラミッドに関する処理(元画像での抽出)の一例を示す説明図である。情報処理装置1の制御部11は、テンプレートマッチングの結果として、ガウシアンピラミッドにおいて、いずれかのレベル(レベル:l)のアプリケーション画面(マッチング画面)にて抽出した操作画像(UI要素を示す領域)の位置及びサイズから、当該マッチング画面(レベル:l)よりも、1つレベルが低いレベル(l-1)のアプリケーション画面での操作画像(UI要素を示す領域)の位置及びサイズを算出(導出)する。このように、情報処理装置1の制御部11は、解像度が異なる2つのスクリーンショット画像(レベル:m、m-1)における比較対象領域(操作画像)の対応処理を再帰的に繰り返す。これにより、ガウシアンフィルタを用いる際の元データ(レベル0)であるアプリケーション画面(アプリケーションが実行される操作ウィンドウの画面キャプチャ)における操作画像(UI要素を示す領域)の位置及びサイズを算出することができる。
【0035】
図7は、位相限定相関法の適用に関する処理の一例を示す説明図である。情報処理装置1の制御部11は、元データ(レベル0)であるアプリケーション画面にて特定した操作画像(UI要素を示す領域)に対する確認処理として、当該操作画像(UI要素を示す領域)が示す矩形領域に対し、当該矩形領域と同じサイズに拡大又は縮小した要素画像との比較を、位相限定相関法を用いて行うものであってもよい。情報処理装置1の制御部11は、位相限定相関法を適用することにより、抽出した操作画像(UI要素を示す領域)の位置及びサイズが正しい判定結果であるかを効率的に確認することができる。
【0036】
このように位相限定相関法を用いることにより、2枚の画像をそれぞれ離散フーリエ変換して得られる位相成分を用いて、1枚目の画像に対する2枚目の画像の平行移動量を求めることができ、当該平行移動量を求める際に類似度の指標となる値も得ることができる。上述した一連の処理を行うことにより、操作画像(UI要素の画像)が拡大又は縮小を伴って、アプリケーション画面(WEBページ)に埋め込まれていても、(UI要素の画像)の位置及びサイズを効率的に判定(特定)することができる。
【0037】
情報処理装置1の制御部11は、位相限定相関法による判定結果が肯定的である場合、抽出した操作画像(UI要素を示す領域)の位置等を用いて、実行スクリプトの生成等、後処理を実行する。情報処理装置1の制御部11は、位相限定相関法による判定結果が否定的である場合、再度、要素画像群とアプリケーション画面群との比較処理(テンプレートマッチング)を行うことにより、一致度が閾値以上となる比較対象領域を抽出する処理を継続するものであってもよい。
【0038】
情報処理装置1の制御部11は、アプリケーションのテスト情報を取得する(S104)。情報処理装置1の制御部11は、アプリケーションの開発情報を管理する開発管理サーバから、又は入出力I/F14等を介してキーボード等から入力されたテスト情報を取得し、記憶部12に記憶する。当該テスト情報は、操作画像(操作対象オブジェクト)のクリック、又は操作画像が入力フィールドを示す場合はテキスト等の入力等、テスト自動化を行うための情報を含む。
【0039】
情報処理装置1の制御部11は、操作画像の位置と、テスト情報とに基づき、アプリケーションのテストを行うための実行スクリプトを生成する(S105)。情報処理装置1の制御部11は、アプリケーション画面上における操作画像の位置(クライアント座標等)と、テスト情報(操作画像に対する操作内容)とを用いて、当該操作画像に対しクリック又は文字入力等の操作をマクロ処理等にて行う実行スクリプトを生成する。情報処理装置1の制御部11は、生成した実行スクリプトを出力し、記憶部12に記憶する。
【0040】
情報処理装置1の制御部11は、要素画像との一致度に応じて導出した操作画像の位置を用いて、操作画像の操作対象オブジェクトを一意に特定する要素パス(xpath)を、HTML等にて定義される画面情報から抽出するものであってもよい。情報処理装置1の制御部11は、操作画像の位置に基づき特定した要素パス(xpath)を用いて、実行スクリプトを生成するものであってもよい。
【0041】
実行スクリプトの生成処理は、例えば、特開2023-75780号公報に記載されている処理を用いて行われるものであってもよい。すなわち、情報処理装置1の制御部11は、特開2023-75780号公報に開示されている処理事項の全てを援用し、実行スクリプトの生成に関する各種処理を実行するものであってもよい。
【0042】
情報処理装置1の制御部11は、生成した実行スクリプトを実行する(S106)。情報処理装置1の制御部11は、実行スクリプトを実行することにより、テスト対象となるアプリケーションを実行するアプリケーションサーバASにアクセスし、当該アプリケーションのテストを実行スクリプト内の処理に基づき行う。
【0043】
情報処理装置1の制御部11は、実行スクリプトの実行結果を取得する(S107)。情報処理装置1の制御部11は、実行スクリプトの実行結果を出力する(S108)。情報処理装置1の制御部11は、実行スクリプトの実行によって得られた処理結果又はエラー出力等の実行結果を取得し、当該実行結果を表示部141に出力及び表示させるものであってもよい。
【0044】
本開示の実施形態によれば、情報処理装置1(制御部11)は、要素画像(検出対象の要素の画像)に基づき、当該要素画像と実質的に同一となる操作画像(操作対象オブジェクトを示す画像)をアプリケーション画面(スクリーンショット画像)において領域特定する。情報処理装置1は、領域特定した操作画像の位置を導出し、当該導出した操作画像の位置と、テスト情報(操作画像(操作対象オブジェクト)に対するクリック等)とに基づき、アプリケーションのテストを行うための実行スクリプトを生成及び出力する。従って、アプリケーションのテストを行うにあたり操作対象オブジェクト(テスト対象の要素)を効率的に検出又は抽出することができ、比較的に簡易にテストを行うための実行スクリプトを生成することができる。すなわち、例えば、テスト対象のアプリケーションがブラウザ上にて実行されるWEBアプリケーションの場合であっても、操作対象オブジェクト(テスト対象の要素)を一意に特定する要素パス(Xpath)を指定することなく、テスト用の実行スクリプトを生成することができる。又は、テスト対象のアプリケーションが、例えばJava Applet又はActiveX(.NET Framework)等にて構成されたリッチクライアント対応のアプリケーションであり、操作対象オブジェクト(テスト対象の要素)が要素パス(Xpath)に非対応の場合であっても、当該操作対象オブジェクトを示す操作画像と、要素画像との同一性(一致度、類似度)に基づき、操作対象オブジェクト(テスト対象の要素)を指定することができる。
【0045】
本開示の実施形態によれば、情報処理装置1(制御部11)は、アプリケーション画面(スクリーンショット画像)の全体に対し、要素画像(検出対象の要素の画像)との比較処理を行う。情報処理装置1は、これら2つの画像(アプリケーション画面、要素画像)の比較処理を行うにあたり、例えば、OpenCV[cv2.matchTemplate関数]等の画像処理ライブラリを用いて、アプリケーション画面において区画化される各領域それぞれに対する要素画像の一致度(類似度)を導出するものであってもよい。情報処理装置1は、導出した一致度(類似度)が予め定められた閾値以上の比較対象領域を、操作対象オブジェクトを示す操作画像として特定する。比較処理に用いられる閾値等、各種演算に必要な設定値又はパラメータは、情報処理装置1の記憶部12等に記憶されており、制御部11は、記憶部12を参照することにより、閾値等の各種パラメータを取得することができる。このようにアプリケーション画面(スクリーンショット画像)において区画化される各領域(比較対象領域)と、要素画像との一致度(類似度)に基づき、一致度(類似度)が閾値以上の比較対象領域を操作画像として特定することにより、当該操作画像の特定精度を担保することができる。
【0046】
本開示の実施形態によれば、情報処理装置1(制御部11)は、取得した要素画像を用いて、当該要素画像を拡大又は縮小することにより、サイズが異なる複数の要素画像を生成する。このように生成された、サイズが異なる複数の要素画像によって、要素画像群が構成される。すなわち、要素画像群は、サイズが異なる複数の要素画像を含む。更に、情報処理装置1(制御部11)は、取得したアプリケーションの画面情報(スクリーンショット画像)を用いて、当該スクリーンショット画像を段階的に縮小したサイズが異なる複数の画面(スクリーンショット画像)を生成する。このように生成された、サイズが異なる複数のスクリーンショット画像によって、アプリケーション画面群(ソース画像群)が構成される。すなわち、アプリケーション画面群(ソース画像群)は、サイズが異なる複数のサイズが異なる複数のスクリーンショット画像(ソース画像)を含む。情報処理装置1は、要素画像群に含まれる要素画像それぞれと、アプリケーション画面群に含まれる画面それぞれとを対比することにより、抽出した比較対象領域における一致度を導出するため、比較対象となる2つの画像におけるサイズの差異を吸収して一致度を判定することができ、当該一致度の算出精度を向上させることができる。
【0047】
本開示の実施形態によれば、情報処理装置1(制御部11)は、解像度(ボケさせ具合)が段階的に異なる複数のガウシアンフィルタを用いて、元の画像(解像度が1/1)であるスクリーンショット画像(アプリケーションが実行される操作ウィンドウの画面キャプチャ)に対し、解像度及びサイズが段階的に異なる複数のスクリーンショット画像を生成する。段階的に異なる解像度は、例えば、1/(2^n)「nはべき乗を示し1以上の整数(レベル)」にて示されるものであってもよい。このように縮小処理を繰り返して作られたスクリーンショット画像を重ねていくことにより、ガウシアンピラミッドが構成される。この場合、ガウシアンピラミッドにおけるレベル(n)が増加するにつれ、解像度は1/2ずつ低減する。要素画像の比較対象であるアプリケーション画面(スクリーンショット画像)を、ガウシアンフィルタを用いて解像度の異なる画像(スクリーンショット画像)とすることにより、画像内の細かいノイズやテクスチャを平滑化し、全体的になめらかな画像を生成することができる。これにより、要素画像とのマッチング精度を向上させることができ、解像度が異なるアプリケーション画面(スクリーンショット画像)それぞれにおいて、要素画像と一致する比較対象領域(操作対象オブジェクトを示す操作画像)を効率的に抽出(特定)することができる。
【0048】
本開示の実施形態によれば、情報処理装置1(制御部11)は、要素画像群とアプリケーション画面群とを例えば総当たりにて比較(テンプレートマッチング)することにより、いずれかのレベル(レベル:l)のアプリケーション画面(スクリーンショット画像)において、要素画像と一致する比較対象領域(操作画像)を抽出する。この場合、情報処理装置1は、要素画像と一致する比較対象領域(操作画像)を抽出したスクリーンショット画像(レベル:l)を、マッチング画面として特定するものであってもよい。情報処理装置1は、当該比較対象領域(操作画像)を抽出したマッチング画面「スクリーンショット画像(レベル:l)」よりも、解像度が高いスクリーンショット画像(レベル:l-1)における比較対象領域(操作画像)を導出する。解像度が異なる2つのスクリーンショット画像(レベル:l、l-1)において、解像度が低いスクリーンショット画像(レベル:l)における比較対象領域(操作画像)の位置及びサイズに基づき、解像度が高いスクリーンショット画像(レベル:l-1)における比較対象領域(操作画像)の位置及びサイズを幾何学的に算出するものであってもよい。情報処理装置1は、解像度が異なる2つのスクリーンショット画像(レベル:m、m-1)における比較対象領域(操作画像)の対応処理を再帰的に繰り返すことにより、ガウシアンフィルタを用いる際の元データであるアプリケーション画面(アプリケーションが実行される操作ウィンドウの画面キャプチャ)における比較対象領域(操作画像)の位置及びサイズを算出することができる。
【0049】
情報処理装置1は、このように元データであるアプリケーション画面(レベル0のスクリーンショット画像)にて抽出した比較対象領域(操作画像)と、要素画像とを、例えば位相限定相関法を用いて対比することにより、導出した一致度の適否を判定(一致度の判定結果を確認)するものであってもよい。情報処理装置1は、位相限定相関法を用いて対比する際、アプリケーション画面(レベル0のスクリーンショット画像)にて抽出した比較対象領域(操作画像)のサイズと実質的に同じサイズとなるように要素画像を拡大又は縮小し、同サイズにした要素画像にて位相限定相関法を適用するものであってもよい。情報処理装置1は、位相限定相関法による比較結果が否定的である場合、再度、要素画像群とアプリケーション画面群との比較処理を行うことにより、一致度が閾値以上となる比較対象領域を抽出する処理を実行するものであってもよい。このように位相限定相関法を適用することにより、実質的に2段階にて、操作画像に基づくアプリケーションの画面上における操作画像の位置を導出するものとなり、当該導出精度を担保することができる。
【0050】
本開示の実施形態によれば、情報処理装置1は、要素画像との一致度に応じて導出した操作画像の位置を用いて、操作画像の操作対象オブジェクトを一意に特定する要素パス(xpath)を、画面情報から抽出する。画面情報が例えばHTML等にて定義される場合、当該HTML等にて定義された画面情報に対するスクレイピング処理の処理結果と、操作画像の位置(クライアント座標)とに基づき、要素パス(xpath)を抽出(特定)するものであってもよい。このように操作画像の位置に基づき特定した要素パスを用いることにより、当該操作画像によって示される操作対象オブジェクトに対する操作を効率的に定義することができる。
【0051】
(実施形態2)
図8は、実施形態2(選択画面)に係る情報処理装置1の制御部11による処理手順を例示するフローチャートである。情報処理装置1の制御部11は、テスト対象となるアプリケーションの画面情報を取得する(S201)。情報処理装置1の制御部11は、操作対象オブジェクトに対応する要素画像を取得する(S202)。情報処理装置1の制御部11は、取得した要素画像に基づき、操作対象オブジェクトを示す操作画像の位置及びサイズを導出する(S203)。情報処理装置1の制御部11は、実施形態1の処理S101からS103と同様に、S201からS203の処理を行う。
【0052】
本実施形態において、情報処理装置1の制御部11は、取得した要素画像に基づき、操作対象オブジェクトを示す操作画像の位置及びサイズを導出するにあたり、一致度が閾値以上となる比較対象領域(要素画像と実質的に同じ画像である操作画像)が複数存在する場合、これら複数の比較対象領域それぞれを、操作画像の候補として出力する。情報処理装置1の制御部11は、アプリケーション画面(スクリーンショット画像)において、候補となる操作画像が複数、抽出された場合、これら操作画像(アプリケーション画面における領域)それぞれの位置及びサイズを、記憶部12に記憶する。
【0053】
情報処理装置1の制御部11は、抽出した操作画像の個数が複数であるか否かを判定する(S204)。情報処理装置1の制御部11は、記憶部12を参照することにより、抽出した操作画像の個数が複数であるか否かを判定する。
【0054】
導出した操作画像の個数が複数である場合(S204:YES)、情報処理装置1の制御部11は、選択画面を出力する(S205)。情報処理装置1の制御部11は、選択画面にていずれかの操作画像を選択する操作を受付ける(S206)。情報処理装置1の制御部11は、出力した選択画面において、候補となる抽出した複数の操作画像(アプリケーション画面における領域)のうちから、ユーザの操作等によるいずれかの操作画像の選択を受付ける。情報処理装置1の制御部11は、選択された操作画像を、テスト対象である操作対象オブジェクトを示す操作画像として特定する。
【0055】
図9は、選択画面の一例を示す説明図である。選択画面は、テスト対象となるアプリケーション画面において、検出対象である要素画像と、実質的に同じ画像である領域(抽出された比較対象領域)を、ハイライト表示している。テスト対象となるアプリケーション画面においては、複数の操作対象オブジェクトそれぞれを示すアイコン、機能ボタン、又はリンク画像が配置されるものとなるが、同一又は類似する画像が、これら複数の操作対象オブジェクトに対し、設定されていることが想定される。本実施形態における図示においては、例えば、検出対象である要素画像と、同じ画像となる操作画像(比較対象領域)が、3つ表示されている。このようにアプリケーション画面において、検出対象である要素画像と、同じ画像となる操作画像(比較対象領域)が複数、配置されている場合であっても、情報処理装置1の制御部11は、選択画面を出力し、いずれかの操作画像を選択する操作を受付けるため、テスト対象である操作対象オブジェクトを示す操作画像を効率的に特定することができる。
【0056】
導出した操作画像の個数が複数でない場合(S204:NO)、すなわち、導出した操作画像の個数が単数(1つ)である場合、情報処理装置1の制御部11は、アプリケーションのテスト情報を取得する(S207)。導出した操作画像の個数が複数である場合、上述のとおり、抽出した複数の操作画像において、いずれかの操作画像の選択を受付けることにより、操作対象オブジェクトを示す操作画像が特定されている。情報処理装置1の制御部11は、このように特定された操作画像(操作対象オブジェクトを示す操作画像)に対し、当該操作画像のクリック、又は操作画像が入力フィールドを示す場合はテキスト等の入力等、テスト自動化を行うための情報(テスト情報)を実施形態1の処理S104と同様に取得する。
【0057】
情報処理装置1の制御部11は、操作画像の位置と、テスト情報とに基づき、アプリケーションのテストを行うための実行スクリプトを生成する(S208)。情報処理装置1の制御部11は、生成した実行スクリプトを実行する(S209)。情報処理装置1の制御部11は、実行スクリプトの実行結果を取得する(S210)。情報処理装置1の制御部11は、実行スクリプトの実行結果を出力する(S211)。情報処理装置1の制御部11は、実施形態1の処理S105からS108と同様に、S208からS211の処理を行う。
【0058】
本開示の実施形態によれば、情報処理装置1(制御部11)は、一致度が予め定められた閾値以上となる比較対象領域が複数導出されることにより、複数個の操作画像が特定された場合、これら複数個の操作画像に関する情報を出力する。情報処理装置1は、複数個の操作画像に関する情報を出力するにあたり、これら複数個の操作画像のいずれかを選択する選択画面を生成し、表示装置又は情報端末に出力するものであってもよい。情報処理装置1は、当該選択画面において、複数個の操作画像のうち、いずれかの操作画像を選択するユーザの操作を受付け、選択された操作画像を、テスト対象である操作対象オブジェクトを示す操作画像として特定する。このようにアプリケーション画面(スクリーンショット画像)において、要素画像(検出対象の要素の画像)と同様の画像(比較対象領域)が複数存在する(複数個、配置される)場合であっても、いずれかの操作画像を選択可能する選択画面を出力することにより、操作対象オブジェクトを示す操作画像を効率的に特定することができる。
【0059】
今回開示された実施形態は全ての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【0060】
特許請求の範囲に記載されている複数の請求項に関して、引用形式に関わらず、相互に組み合わせることが可能である。特許請求の範囲では、複数の請求項に従属する多項従属請求項を記載してもよい。多項従属請求項に従属する多項従属請求項を記載してもよい。多項従属請求項に従属する多項従属請求項が記載されていない場合であっても、これは、多項従属請求項に従属する多項従属請求項の記載を制限するものではない。
【符号の説明】
【0061】
S テスト自動化システム
AS アプリケーションサーバ
1 情報処理装置(テスト自動化サーバ)
11 制御部
12 記憶部
121 記録媒体
P プログラム(プログラム製品)
13 通信部
14 入出力I/F
141 表示部
図1
図2
図3
図4
図5
図6
図7
図8
図9