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

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

▶ エヌ・ティ・ティレゾナント・テクノロジー株式会社の特許一覧

特許7499429アプリ遠隔操作システム、アプリ実行制御装置およびアプリ実行制御方法
<>
  • 特許-アプリ遠隔操作システム、アプリ実行制御装置およびアプリ実行制御方法 図1
  • 特許-アプリ遠隔操作システム、アプリ実行制御装置およびアプリ実行制御方法 図2
  • 特許-アプリ遠隔操作システム、アプリ実行制御装置およびアプリ実行制御方法 図3
  • 特許-アプリ遠隔操作システム、アプリ実行制御装置およびアプリ実行制御方法 図4
  • 特許-アプリ遠隔操作システム、アプリ実行制御装置およびアプリ実行制御方法 図5
  • 特許-アプリ遠隔操作システム、アプリ実行制御装置およびアプリ実行制御方法 図6
  • 特許-アプリ遠隔操作システム、アプリ実行制御装置およびアプリ実行制御方法 図7
  • 特許-アプリ遠隔操作システム、アプリ実行制御装置およびアプリ実行制御方法 図8
  • 特許-アプリ遠隔操作システム、アプリ実行制御装置およびアプリ実行制御方法 図9
  • 特許-アプリ遠隔操作システム、アプリ実行制御装置およびアプリ実行制御方法 図10
  • 特許-アプリ遠隔操作システム、アプリ実行制御装置およびアプリ実行制御方法 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-06-05
(45)【発行日】2024-06-13
(54)【発明の名称】アプリ遠隔操作システム、アプリ実行制御装置およびアプリ実行制御方法
(51)【国際特許分類】
   G06F 11/36 20060101AFI20240606BHJP
【FI】
G06F11/36 164
【請求項の数】 8
(21)【出願番号】P 2024062070
(22)【出願日】2024-04-08
【審査請求日】2024-04-09
【早期審査対象出願】
(73)【特許権者】
【識別番号】514022143
【氏名又は名称】エヌ・ティ・ティレゾナント・テクノロジー株式会社
(74)【代理人】
【識別番号】100105784
【弁理士】
【氏名又は名称】橘 和之
(72)【発明者】
【氏名】久納 孝治
(72)【発明者】
【氏名】角田 和也
【審査官】久々宇 篤志
(56)【参考文献】
【文献】米国特許出願公開第2020/0310555(US,A1)
【文献】特開2021-174096(JP,A)
【文献】特開2023-075780(JP,A)
【文献】特開2023-184515(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F11/36
(57)【特許請求の範囲】
【請求項1】
操作対象端末のUIを含む外観を表した背景画像の上に、上記UIに関するHTML要素であるUI操作要素を透明化して重ね合わせることによって生成した端末画像をユーザ端末に提供する端末画像提供部と、
上記UI操作要素に対して行われるユーザ操作のイベント情報を上記ユーザ端末から取得し、当該取得したイベント情報に基づいて、上記操作対象端末にインストールされているネイティブアプリを動作させるアプリ動作制御部とを備え、
上記端末画像提供部は、上記アプリ動作制御部により上記ネイティブアプリの動作が実行された場合、その実行結果を上記外観に反映させた背景画像の上に上記UI操作要素を透明化して重ね合わせることによって生成した端末画像を上記ユーザ端末に提供し、
上記端末画像提供部は、
上記背景画像を生成する背景画像生成部と、
上記UI操作要素を生成するUI操作要素生成部と、
上記背景画像の上に上記UI操作要素を透明化して重畳させるUI操作要素重畳部とを備え、
上記UI操作要素生成部は、上記ネイティブアプリのUIツリー情報を上記HTML要素のDOMツリー情報に変換し、上記DOMツリー情報に基づいて上記UI操作要素を生成する
ことを特徴とするアプリ遠隔操作システム。
【請求項2】
操作対象端末のUIを含む外観を表した背景画像の上に、上記UIに関するHTML要素であるUI操作要素を透明化して重ね合わせることによって生成した端末画像をユーザ端末に提供する端末画像提供部と、
上記UI操作要素に対して行われるユーザ操作のイベント情報を上記ユーザ端末から取得し、当該取得したイベント情報に基づいて、上記操作対象端末にインストールされているネイティブアプリを動作させるアプリ動作制御部とを備え、
上記端末画像提供部は、上記アプリ動作制御部により上記ネイティブアプリの動作が実行された場合、その実行結果を上記外観に反映させた背景画像の上に上記UI操作要素を透明化して重ね合わせることによって生成した端末画像を上記ユーザ端末に提供し、
上記端末画像提供部は、
上記背景画像を生成する背景画像生成部と、
上記UI操作要素を生成するUI操作要素生成部と、
上記背景画像の上に上記UI操作要素を透明化して重畳させるUI操作要素重畳部とを備え、
上記UI操作要素生成部は、上記ネイティブアプリのUIツリー情報を、上記操作対象端末のOSに依存しない中間ツリー情報に変換した後、上記中間ツリー情報を上記HTML要素のDOMツリー情報に変換し、上記DOMツリー情報に基づいて上記UI操作要素を生成する
ことを特徴とするアプリ遠隔操作システム。
【請求項3】
上記UI操作要素生成部は、上記背景画像生成部により生成される上記背景画像を文字認識することによって生成したテキスト情報を上記中間ツリー情報に合成することによって上記中間ツリー情報を最適化し、当該最適化した中間ツリー情報を上記HTML要素のDOMツリー情報に変換することを特徴とする請求項に記載のアプリ遠隔操作システム。
【請求項4】
上記アプリ動作制御部は、上記ユーザ端末のウェブブラウザにより検出された上記ユーザ操作のイベント情報を上記ユーザ端末から取得し、当該取得したイベント情報に基づいて、上記操作対象端末に対する仮想的な操作指示情報を生成し、当該生成した操作指示情報を上記操作対象端末に供給して上記ネイティブアプリを動作させることを特徴とする請求項1~3の何れか1項に記載のアプリ遠隔操作システム。
【請求項5】
操作対象端末のUIを含む外観を表した背景画像の上に、上記UIに関するHTML要素であるUI操作要素を透明化して重ね合わせることによって生成した端末画像をユーザ端末に提供する端末画像提供部と、
上記UI操作要素に対して行われるユーザ操作のイベント情報を上記ユーザ端末から取得し、当該取得したイベント情報に基づいて、上記操作対象端末にインストールされているネイティブアプリを動作させるアプリ動作制御部とを備え、
上記端末画像提供部は、上記アプリ動作制御部により上記ネイティブアプリの動作が実行された場合、その実行結果を上記外観に反映させた背景画像の上に上記UI操作要素を透明化して重ね合わせることによって生成した端末画像を上記ユーザ端末に提供し、
上記端末画像提供部は、
上記背景画像を生成する背景画像生成部と、
上記UI操作要素を生成するUI操作要素生成部と、
上記背景画像の上に上記UI操作要素を透明化して重畳させるUI操作要素重畳部とを備え、
上記UI操作要素生成部は、上記ネイティブアプリのUIツリー情報を上記HTML要素のDOMツリー情報に変換し、上記DOMツリー情報に基づいて上記UI操作要素を生成する
ことを特徴とするアプリ実行制御装置。
【請求項6】
操作対象端末のUIを含む外観を表した背景画像の上に、上記UIに関するHTML要素であるUI操作要素を透明化して重ね合わせることによって生成した端末画像をユーザ端末に提供する端末画像提供部と、
上記UI操作要素に対して行われるユーザ操作のイベント情報を上記ユーザ端末から取得し、当該取得したイベント情報に基づいて、上記操作対象端末にインストールされているネイティブアプリを動作させるアプリ動作制御部とを備え、
上記端末画像提供部は、上記アプリ動作制御部により上記ネイティブアプリの動作が実行された場合、その実行結果を上記外観に反映させた背景画像の上に上記UI操作要素を透明化して重ね合わせることによって生成した端末画像を上記ユーザ端末に提供し、
上記端末画像提供部は、
上記背景画像を生成する背景画像生成部と、
上記UI操作要素を生成するUI操作要素生成部と、
上記背景画像の上に上記UI操作要素を透明化して重畳させるUI操作要素重畳部とを備え、
上記UI操作要素生成部は、上記ネイティブアプリのUIツリー情報を、上記操作対象端末のOSに依存しない中間ツリー情報に変換した後、上記中間ツリー情報を上記HTML要素のDOMツリー情報に変換し、上記DOMツリー情報に基づいて上記UI操作要素を生成する
ことを特徴とするアプリ実行制御装置。
【請求項7】
アプリ実行制御装置の端末画像提供部が、操作対象端末のUIを含む外観を表した背景画像の上に、上記UIに関するHTML要素であるUI操作要素を透明化して重ね合わせることによって生成した端末画像をユーザ端末に提供する第1のステップと、
上記アプリ実行制御装置のアプリ動作制御部が、上記UI操作要素に対して行われるユーザ操作のイベント情報を上記ユーザ端末から取得し、当該取得したイベント情報に基づいて、上記操作対象端末にインストールされているネイティブアプリを動作させる第2のステップと、
上記端末画像提供部が、上記ネイティブアプリの実行結果を上記外観に反映させた背景画像の上に上記UI操作要素を透明化して重ね合わせることによって生成した端末画像を上記ユーザ端末に提供する第3のステップとを有し、
上記第1のステップおよび上記第3のステップにおいて、上記端末画像提供部は、
上記背景画像を生成する背景画像生成ステップと、
上記ネイティブアプリのUIツリー情報を上記HTML要素のDOMツリー情報に変換し、上記DOMツリー情報に基づいて上記UI操作要素を生成するUI操作要素生成ステップと、
上記背景画像の上に上記UI操作要素を透明化して重畳させるUI操作要素重畳ステップとを実行する
ことを特徴とするアプリ実行制御方法。
【請求項8】
アプリ実行制御装置の端末画像提供部が、操作対象端末のUIを含む外観を表した背景画像の上に、上記UIに関するHTML要素であるUI操作要素を透明化して重ね合わせることによって生成した端末画像をユーザ端末に提供する第1のステップと、
上記アプリ実行制御装置のアプリ動作制御部が、上記UI操作要素に対して行われるユーザ操作のイベント情報を上記ユーザ端末から取得し、当該取得したイベント情報に基づいて、上記操作対象端末にインストールされているネイティブアプリを動作させる第2のステップと、
上記端末画像提供部が、上記ネイティブアプリの実行結果を上記外観に反映させた背景画像の上に上記UI操作要素を透明化して重ね合わせることによって生成した端末画像を上記ユーザ端末に提供する第3のステップとを有し、
上記第1のステップおよび上記第3のステップにおいて、上記端末画像提供部は、
上記背景画像を生成する背景画像生成ステップと、
上記ネイティブアプリのUIツリー情報を、上記操作対象端末のOSに依存しない中間ツリー情報に変換した後、上記中間ツリー情報を上記HTML要素のDOMツリー情報に変換し、上記DOMツリー情報に基づいて上記UI操作要素を生成するUI操作要素生成ステップと、
上記背景画像の上に上記UI操作要素を透明化して重畳させるUI操作要素重畳ステップとを実行する
ことを特徴とするアプリ実行制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アプリ遠隔操作システム、アプリ実行制御装置およびアプリ実行制御方法に関し、特に、操作対象端末にインストールされているネイティブアプリの実機検証をリモートで実行可能にしたクラウドシステムに用いて好適なものである。
【背景技術】
【0002】
従来、スマートフォンやタブレット等の端末の実機検証をリモートで実行可能にしたクラウドサービスが提供されている(例えば、非特許文献1参照)。当該クラウドサービスは、ユーザが使用するパーソナルコンピュータ等からクラウド上の端末にインストールされたアプリケーションをリモート操作して、実機と同様に画面確認や動作テストを実行可能としたサービスである。
【0003】
現在、アプリケーションプログラムをテストするためのツールが種々提供されている。大きく分けて、パーソナルコンピュータ(PC)やスマートフォンにインストールされたネイティブアプリ(以下、アプリという)のテストツールと、ウェブサイトのテストツールとがある。アプリ用のテストツールでは、入力要素として表示されたボタン等に対するユーザの操作をもとに、アプリケーションUIの階層構造情報を利用して、テストコードを作成し、テストを実行する。これに対し、ウェブサイト用のテストツールでは、ウェブページのHTML要素のDOM(Document Object Model)の階層構造情報を利用して、テストコードを作成し、テストを実行する。
【0004】
ここで、上述のクラウドサービスにおいて、ディスプレイやハードキーなどを含むスマートフォン全体の外観がHTMLのcanvas要素の画像で表示されおり、いずれの階層構造情報を持ち合わせていない。そのため、市中のテストツールはダイレクトにクラウドサービスが提供する画像に対してテストを実行することができないのが現状である。
【0005】
ウェブサイト用のテストツールとアプリ用のテストツールでは、用いる階層構造情報が異なるため、サポートされる対象は限定されるのが一般的である。すなわち、テストツールは、ウェブサイトのみをサポート、アプリのみをサポート、両方をサポートする3つに分類される。またサポートするOSも限定されるのが一般的であり、ユーザはテストの内容に応じて適切なツールを選択して使用する必要があるだけでなく、複数のツールの操作方法を習得しなければならないのが実情である。加えて、スマートフォンの新機種や新OSバージョンが日々リリースされるため、対応するテストツールを保持していない場合等で、テストを実行することができない、もしくは実行可能な環境を構築するために多くの時間を要してしまうという問題があった。
【0006】
なお、ネイティブ画像の上にウェブ画像を透明化して表示し、ウェブ画像の部分に対して操作を可能にする技術が知られている(例えば、特許文献1,2参照)。特許文献1に記載の情報処理装置では、ネイティブ画像とウェブ画像の少なくとも一部の領域を透明化または半透明化して重ね合わせることにより、各画像の構成要素であるアイコン、UI部品、文字情報、図形、サムネイル画像など、背景以外の要素画像が隠蔽されることなく同時に表示されるようにし、ウェブ画像に対し当該ウェブ画像の少なくとも一部を更新するユーザ操作がなされたとき、その旨をネイティブ画像に通知する。
【0007】
特許文献2に記載の表示装置では、ネイティブアプリを表示するための領域がウェブアプリの表示領域において透明になるように、ウェブアプリを表示し、当該透明にした領域にネイティブアプリの表示を重ねる。そして、ネイティブアプリの表示領域内においてユーザ入力を受けた場合はウェブアプリの表示領域を変化させず、ネイティブアプリの実行後、ウェブアプリの表示領域においてはウェブアプリに従って表示する
【先行技術文献】
【特許文献】
【0008】
【文献】特開2015-95256号公報
【文献】特開2018-41240号公報
【非特許文献】
【0009】
【文献】「リモートで実機検証可能なクラウドサービス」(2024.3.27 インターネット検索<URL:https://appkitbox.com/)
【発明の概要】
【発明が解決しようとする課題】
【0010】
本発明は、以上のような問題を解決するために成されたものであり、ウェブサイト用のテストツールを用いてネイティブアプリのテストを行うことができるようにすることを目的とする。
【課題を解決するための手段】
【0011】
上記した課題を解決するために、本発明では、操作対象端末のUIを含む外観を表した背景画像の上に、当該UIに関するHTML要素であるUI操作要素を透明化して重ね合わせることによって生成した端末画像をユーザ端末に提供する。そして、UI操作要素に対して行われるユーザ操作のイベント情報をユーザ端末から取得したときに、当該取得したイベント情報に基づいて、操作対象端末にインストールされているネイティブアプリを動作させ、その実行結果を外観に反映させた背景画像の上にUI操作要素を透明化して重ね合わせることによって生成した端末画像をユーザ端末に提供するようにしている。
【発明の効果】
【0012】
上記のように構成した本発明によれば、背景画像の上に重畳されたUI操作要素に対して行われるユーザ操作によって、操作対象端末にインストールされているネイティブアプリの動作テストを実行することができる。これにより、ウェブサイト用のテストツールを用いてネイティブアプリのテストを行うことが可能である。
【図面の簡単な説明】
【0013】
図1】本実施形態によるアプリ遠隔操作システムの全体構成例を示す図である。
図2】本実施形態によるサーバ装置(アプリ実行制御装置)の機能構成例を示すブロック図である。
図3】本実施形態の背景画像生成部により生成される背景画像の一例を示す図である。
図4】本実施形態のUI操作要素生成部により生成される端末画像の一例を示す図である。
図5】UIツリー情報の一例を示す図である。
図6】DOMツリー情報の一例を示す図である。
図7】本実施形態によるサーバ装置の全体動作例を示すフローチャートである。
図8】本実施形態による端末画像提供部の動作例を示すフローチャートである。
図9】中間ツリー情報の一例を示す図である。
図10】本実施形態によるアプリ遠隔操作システムの他の機能構成例を示す図である。
図11】本実施形態によるアプリ遠隔操作システムの他の機能構成例を示す図である。
【発明を実施するための形態】
【0014】
以下、本発明の一実施形態を図面に基づいて説明する。図1は、本実施形態によるアプリ遠隔操作システムの全体構成例を示す図である。図1に示すように、本実施形態のアプリ遠隔操作システムは、サーバ装置1(アプリ実行制御装置に相当)、1以上の操作対象端末2-1,2-2,・・・(まとめて操作対象端末2と記すことがある)およびユーザ端末3を備えている。
【0015】
サーバ装置1と操作対象端末2との間は、例えばUSBなどの有線ケーブルまたはBluetooth(登録商標)などの無線通信手段により接続されている。サーバ装置1とユーザ端末3との間は、インターネットおよび/または携帯電話網などの通信ネットワーク5により接続されている。
【0016】
操作対象端末2は、例えばスマートフォンまたはタブレットにより構成される。本実施形態では、複数の操作対象端末2-1,2-2,・・・がサーバ装置1に接続されている。複数の操作対象端末2-1,2-2,・・・は、それぞれ機種が異なるものであり、搭載されるOSは、Android(登録商標)やiOS(登録商標)、BlackBerry OS(BlackBerryは登録商標)、Windows Phone(登録商標)など多種多様である。
【0017】
ユーザ端末3は、操作対象端末2の動作テストを実行するユーザが使用する端末であり、例えばパーソナルコンピュータ、スマートフォンまたはタブレットにより構成される。ユーザ端末3にはウェブブラウザ3aが搭載されている。ユーザは、ウェブブラウザ3aによってサーバ装置1にアクセスし、サーバ装置1から提供されるテスト実行用画面を通じて、複数の操作対象端末2-1,2-2,・・・の中から何れかを選択して動作テストを行うことが可能である。このとき、ユーザは、任意のネイティブアプリ2aを操作対象端末2にインストールし、そのネイティブアプリ2aの動作テストを実行することが可能である。
【0018】
例えば、操作対象端末2においてネイティブアプリ2aを実際に動作させ、そのとき操作対象端末2のディスプレイに表示される画面と同じ画像をサーバ装置1からウェブブラウザ3aに提供して表示させる。そして、ウェブブラウザ3aに表示された画像を通じて、操作対象端末2のネイティブアプリ2aが画面上に提供するUIをユーザ端末3からリモート操作し、それによって動作するネイティブアプリ2aの実行結果を示す画像もサーバ装置1からウェブブラウザ3aに提供して表示させる。
【0019】
このようにして、操作対象端末2においてネイティブアプリ2aが正常に動作するかどうかをユーザ端末3においてリモートで検証することが可能である。また、ウェブサイト用のテストツール経由でUIの操作を行うことにより、その手動操作を記録することによって生成されるテストコードに従ってネイティブアプリ2aの動作テストを実行することが可能である。
【0020】
図2は、本実施形態によるサーバ装置1(アプリ実行制御装置)の機能構成例を示すブロック図である。図2に示すように、本実施形態のサーバ装置1は、機能構成として、アプリ動作制御部11および端末画像提供部12を備えている。これらの機能ブロック11~12は、ハードウェアとソフトウェアとの協働によって以下に述べる処理を実行するものである。例えば、上記機能ブロック11~12の処理は、CPU、RAM、ROMなどを備えて構成されたマイクロコンピュータの制御により、RAMやROM、ハードディスクまたは半導体メモリ等の記憶媒体に記憶されたプログラムが動作することによって実行される。
【0021】
アプリ動作制御部11は、ユーザ端末3から送信されるネイティブアプリ2aの操作に関するイベント情報に基づいて、ネイティブアプリ2aの動作を制御する。例えば、アプリ動作制御部11は、ネイティブアプリ2aを起動する操作のイベント情報をユーザ端末3から取得すると、当該取得したイベント情報に基づいて、ネイティブアプリ2aを起動する処理を実行する。
【0022】
また、アプリ動作制御部11は、端末画像提供部12によりウェブブラウザ3aに提供される端末画像に含まれるUI操作要素(詳細は後述する)に対して行われるユーザ操作のイベント情報をユーザ端末3から取得すると、当該取得したイベント情報に基づいて、UI操作に応じた動作をネイティブアプリ2aに実行させる。すなわち、アプリ動作制御部11は、ユーザ端末3のウェブブラウザ3aにより検出されたユーザ操作のイベント情報をユーザ端末3から取得すると、当該取得したイベント情報に基づいて、操作対象端末2に対する仮想的な操作指示情報を生成し、当該生成した操作指示情報を操作対象端末2に供給してネイティブアプリ2aを動作させる。
【0023】
端末画像提供部12は、操作対象端末2のUIを含む外観を表した背景画像の上に、UIに関するHTML要素であるUI操作要素を透明化して重ね合わせることによって生成した端末画像をユーザ端末3のウェブブラウザ3aに提供する。操作対象端末2に含まれるUIとは、操作対象端末2にインストールされているネイティブアプリ2aにより提供されるUIである。操作対象端末2の外観を表す背景画像は、例えば、操作対象端末2を正面視する位置からカメラにより撮影した画像であり、操作対象端末2のハードキーが含まれる場合もある。なお、操作対象端末2の外観を表す背景画像として、操作対象端末2が具備するインタフェースを通じて直接内部より取得した画像または操作対象端末2のディスプレイに表示される画面のスクリーンショット画像を用いてもよい。
【0024】
端末画像提供部12は、アプリ動作制御部11によりネイティブアプリ2aの動作が実行された場合、その実行結果を外観に反映させた背景画像の上にUI操作要素を透明化して重ね合わせることによって生成した端末画像をユーザ端末3に提供する。操作対象端末2の外観を表す背景画像としてカメラの撮影画像を用いる場合、アプリ動作制御部11によりネイティブアプリ2aの動作が実行されると、そのことが端末画像提供部12に通知され、端末画像提供部12はカメラを制御して操作対象端末2の外観を撮影する。そして、その撮影により取得した背景画像の上に透明化したUI操作要素を重ね合わせることによって生成した端末画像をユーザ端末3に提供する。なお、操作対象端末2の外観を表す背景画像として操作対象端末2の内部取得画像またはスクリーンショット画像を用いる場合、アプリ動作制御部11によりネイティブアプリ2aの動作が実行されると、そのことが端末画像提供部12に通知され、端末画像提供部12は操作対象端末2を制御して画像を取得する。そして、その取得した背景画像の上に透明化したUI操作要素を重ね合わせることによって生成した端末画像をユーザ端末3に提供する。
【0025】
図2に示すように、端末画像提供部12は、より具体的な機能構成として、背景画像を生成する背景画像生成部12aと、UI操作要素を生成するUI操作要素生成部12bと、背景画像の上にUI操作要素を透明化して重畳させるUI操作要素重畳部12cとを備えている。
【0026】
背景画像生成部12aは、上述したように、例えば操作対象端末2を正面視する位置に設置されたカメラにより操作対象端末2を撮影することによって背景画像を生成する。そして、生成した背景画像をユーザ端末3のウェブブラウザ3aに送信して表示させる。図3は、背景画像生成部12aにより生成される背景画像の一例を示す図である。ここでは、電卓のネイティブアプリ2aが起動されて操作画面が表示された状態の背景画像31の例を示している。
【0027】
UI操作要素生成部12bは、操作対象端末2から取得されるネイティブアプリ2aのUIツリー情報をHTML要素のDOMツリー情報に変換し、DOMツリー情報に基づいて、UIに関するHTML要素であるUI操作要素を生成する。UIツリー情報とは、ネイティブアプリ2aが有する複数のUIをツリー構造としてモデル化したUIライブラリであり、操作対象端末2のOSに応じて独自のデータ形式で作成されている。例えばAndroidの場合、UIツリー情報はXML形式で作成されている。図5は、UIツリー情報の一例を示す図である。一方、DOMツリー情報は、ネイティブアプリ2aが有する複数のUIをHTML要素によりモデル化したUIライブラリである。図6は、DOMツリー情報の一例を示す図である。
【0028】
UI操作要素重畳部12cは、UI操作要素生成部12bによりDOMツリー情報のHTML要素で生成されたUI操作要素を透明化し、背景画像生成部12aによってウェブブラウザ3aに表示済みの背景画像の上に重ねてUI操作要素を表示させる。図4は、背景画像の上に透明化されたUI操作要素を重畳することによって生成された端末画像の一例を示す図である。ここでは、電卓のネイティブアプリ2aが起動されて操作画面が表示された状態の背景画像31の上に、HTMLのdiv要素41、input要素42およびbutton要素43が重畳された例を示している。図4では、説明のためにUI操作要素を太枠で示しているが、実際は透明化されていてユーザには見えない。つまり、見た目は図3と同じである。
【0029】
ユーザ端末3のユーザは、例えばウェブサイト用のテストツール経由で個々のinput要素42またはbutton要素43を操作することが可能である。ウェブサイト用のテストツールは、UI操作要素に対する手動操作を記録して、その記録に基づいてテストスクリプトを調整してテストを実行し、その実行結果のレポートを生成することが可能なツールである。
【0030】
例えば、ユーザが何れかのbutton要素43を操作すると、ウェブブラウザ3aがその操作を検知し、例えばJSON-RPC等で生成したユーザ操作のイベント情報をサーバ装置1に送信する。サーバ装置1のアプリ動作制御部11は、ユーザ端末3からJSON-RPC等のイベント情報を取得すると、これをサーバ装置1が備えるエージェントの方式に合わせたエージェントイベントに変換する。続いて、サーバ装置1内のエージェントと操作対象端末2内のデーモンとの協働によって、エージェントイベントをもとに、操作対象端末2に対する仮想的な操作指示情報を生成し、当該生成した操作指示情報を操作対象端末2に供給してネイティブアプリ2aを動作させる。
【0031】
アプリ動作制御部11によるネイティブアプリ2aの動作実行後に、背景画像生成部12aは、その実行結果を外観に反映させた背景画像を生成し、ユーザ端末3のウェブブラウザ3aに送信して表示させる。また、UI操作要素生成部12bは、上述と同様の手順でUI操作要素を生成する。そして、UI操作要素重畳部12cは、UI操作要素生成部12bにより生成されたUI操作要素を透明化し、背景画像生成部12aによってウェブブラウザ3aに表示済みの背景画像の上に重ねてUI操作要素を表示させる。
【0032】
図7および図8は、以上のように構成した本実施形態によるサーバ装置1の動作例を示すフローチャートである。図7はサーバ装置1の全体動作例を示し、図8は端末画像提供部12の動作例を示している。
【0033】
図7において、アプリ動作制御部11は、ネイティブアプリ2aを起動する操作のイベント情報をユーザ端末3のウェブブラウザ3aから取得したか否かを判定する(ステップS1)。ここで、アプリ起動操作のイベント情報を取得すると、アプリ動作制御部11は、当該取得したイベント情報に基づいて、ネイティブアプリ2aを起動する処理を実行する(ステップS2)。
【0034】
端末画像提供部12は、ネイティブアプリ2aの起動により表示される初期画面(UIを含む)を含む外観を表した背景画像の上に、当該UIに関するHTML要素であるUI操作要素を透明化して重ね合わせることによって生成した端末画像をウェブブラウザ3aに提供する(ステップS3)。この処理の詳細は図8のフローチャートに示されている。
【0035】
その後、アプリ動作制御部11は、UI操作要素に対して行われるユーザ操作のイベント情報をユーザ端末3から取得したか否かを判定する(ステップS4)。ここで、UI操作のイベント情報を取得していない場合、処理はステップS7に進む。一方、UI操作のイベント情報を取得した場合、アプリ動作制御部11は、当該取得したイベント情報に基づいて、ネイティブアプリ2aにUI操作に応じた動作をさせるための処理を実行する(ステップS5)。
【0036】
アプリ動作制御部11によりネイティブアプリ2aの動作が実行されると、端末画像提供部12は、その実行結果を外観に反映させた背景画像の上にUI操作要素を透明化して重ね合わせることによって生成した端末画像をユーザ端末3のウェブブラウザ3aに提供する(ステップS6)。ここで行う処理はステップS3の処理と同様であり、その詳細が図8のフローチャートに示されている。その後、処理はステップS7に進む。
【0037】
ステップS7において、アプリ動作制御部11は、ネイティブアプリ2aを終了する操作のイベント情報をユーザ端末3のウェブブラウザ3aから取得したか否かを判定する。ここで、アプリ終了操作のイベント情報を取得していない場合、処理はステップS4に戻る。一方、アプリ終了操作のイベント情報を取得した場合、アプリ動作制御部11は、当該取得したイベント情報に基づいて、ネイティブアプリ2aをシャットダウンする処理を実行し(ステップS8)、図7に示すフローチャートの処理を終了する。
【0038】
図8において、背景画像生成部12aは、例えばカメラを制御して操作対象端末2の外観を撮影することによって背景画像を生成し、生成した背景画像をウェブブラウザ3aに送信して表示させる(ステップS11)。次に、UI操作要素生成部12bは、操作対象端末2からネイティブアプリ2aのUIツリー情報を取得し(ステップS12)、取得したUIツリー情報をHTML要素のDOMツリー情報に変換し、変換したDOMツリー情報に基づいて、UI操作要素を生成する(ステップS13)。次に、UI操作要素重畳部12cは、UI操作要素生成部12bにより生成されたUI操作要素を透明化し、当該UI操作要素を背景画像の上に重ねて表示させる(ステップS14)。
【0039】
以上詳しく説明したように、本実施形態のサーバ装置1では、操作対象端末2のUIを含む外観を表した背景画像の上に、当該UIに関するHTML要素であるUI操作要素を透明化して重ね合わせることによって生成した端末画像をテスト実行者のユーザ端末3に提供する。そして、UI操作要素に対して行われるユーザ操作のイベント情報をユーザ端末3から取得したときに、当該取得したイベント情報に基づいて、操作対象端末2にインストールされているネイティブアプリ2aを動作させ、その実行結果を外観に反映させた背景画像の上にUI操作要素を透明化して重ね合わせることによって生成した端末画像をユーザ端末3に提供するようにしている。
【0040】
このように構成した本実施形態によれば、背景画像の上に重畳されたUI操作要素に対して、ウェブサイト用のテストツール経由でユーザ操作を行うことによって、操作対象端末2にインストールされているネイティブアプリ2aの動作テストを実行することができる。これにより、ウェブサイト用のテストツールを用いてネイティブアプリ2aのテストを行うことが可能である。
【0041】
なお、上記実施形態では、操作対象端末2のOSに依存して構造が異なるUIツリー情報をHTML要素のDOMツリー情報にダイレクトに変換する例について説明したが、これに限定されない。例えば、UI操作要素生成部12bは、操作対象端末2のOSに依存するネイティブアプリ2aのUIツリー情報を、操作対象端末2のOSに依存しない中間ツリー情報に変換した後、中間ツリー情報をHTML要素のDOMツリー情報に変換するようにしてもよい。図9は、中間ツリー情報の一例を示す図である。ここでは、JSON形式で中間ツリー情報を構成した場合の例を示している。
【0042】
中間ツリー情報に変換する場合、UI操作要素生成部12bは、背景画像生成部12aにより生成される背景画像(操作対象端末2の外観を示す撮影画像)を文字認識することによって生成したテキスト情報を中間ツリー情報に合成することによって中間ツリー情報を最適化し、当該最適化した中間ツリー情報をDOMツリー情報に変換するようにしてもよい。
【0043】
テスト対象とするネイティブアプリ2aによっては、UIに表示される文字や数字がテキスト情報ではなく画像で表現されている場合がある。この場合、UIツリー情報から変換される中間ツリー情報の中に、画像によって表示される文字や数字に相当する情報が欠落することがある。上述の最適化処理は、UIツリー情報から変換される中間ツリー情報において欠落している文字や数字を、操作対象端末2の撮影画像に対して文字認識処理を行うことによって認識したテキスト情報で補完する処理を意味する。
【0044】
このような最適化処理は、UIツリー情報に対して実行することも可能ではあるが、UIツリー情報は操作対象端末2のOSに依存して種々異なる構造を有しているため、最適化処理を行うためのアルゴリズムをOSごとに作り込む必要がある。これに対し、OSに依存しない中間ツリー情報に変換した後、中間ツリー情報に対して最適化処理を行うようにすれば、最適化処理を行うためのアルゴリズムは1つ用意すればよいというメリットを有する。
【0045】
なお、本実施形態のアプリ遠隔操作システムは、操作対象端末2をリモート操作してネイティブアプリ2aの動作テストを行うユースケースに適用して好適なものであるが、テスト以外のユースケースに適用することも可能である。
【0046】
また、上記実施形態では、サーバ装置1が端末画像提供部12およびアプリ動作制御部11の全ての機能を備える構成例について説明したが、これらのうち一部または全部の機能をユーザ端末3が備える構成としてもよい。例えば、図10に示すように、UI操作要素重畳部12cの機能をユーザ端末3のウェブブラウザ3aが備える構成としてもよい。
【0047】
あるいは、図11に示すように、端末画像提供部12およびアプリ動作制御部11の全ての機能をユーザ端末3のウェブブラウザ3aが備える構成としてもよい。この場合、サーバ装置1は省略され、ユーザ端末3と操作対象端末2とが通信ネットワーク5を介して接続される。例えば、USB対応機器を直接操作するAPI(Application Programming Interface)をウェブブラウザ3aが備えることにより、ウェブブラウザ3aから直接的に操作対象端末2をリモート操作することが可能であり、端末画像提供部12およびアプリ動作制御部11の全ての機能をウェブブラウザ3aに実装することも可能である。
【0048】
その他、上記実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【0049】
1 サーバ装置(アプリ実行制御装置)
2 操作対象端末
2a ネイティブアプリ
3 ユーザ端末(アプリ実行制御装置)
3a ウェブブラウザ
11 アプリ動作制御部
12 端末画像提供部
12a 背景画像生成部
12b UI操作要素生成部
12c UI操作要素重畳部
【要約】
【課題】ウェブサイト用のテストツールを用いてネイティブアプリのテストを行うことができるようにする。
【解決手段】操作対象端末2のUIを含む外観を表した背景画像の上に、当該UIに関するHTML要素であるUI操作要素を透明化して重ね合わせることによって生成した端末画像をユーザ端末3に提供する端末画像提供部12と、UI操作要素に対して行われるユーザ操作のイベント情報をユーザ端末3から取得したときに、操作対象端末2のネイティブアプリ2aを動作させるアプリ動作制御部11とを備えることにより、背景画像の上に重畳されたUI操作要素に対してウェブサイト用のテストツール経由でユーザ操作を行うことによって、操作対象端末2にインストールされているネイティブアプリ2aの動作テストを実行することができるようにする。
【選択図】図2
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11