特許第6689246号(P6689246)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ ヤフー株式会社の特許一覧

特許6689246情報処理装置、情報処理方法、およびプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6689246
(24)【登録日】2020年4月9日
(45)【発行日】2020年4月28日
(54)【発明の名称】情報処理装置、情報処理方法、およびプログラム
(51)【国際特許分類】
   G06F 11/36 20060101AFI20200421BHJP
   G06F 3/048 20130101ALI20200421BHJP
【FI】
   G06F11/36 188
   G06F11/36 196
   G06F3/048
【請求項の数】28
【全頁数】24
(21)【出願番号】特願2017-244092(P2017-244092)
(22)【出願日】2017年12月20日
(65)【公開番号】特開2019-109852(P2019-109852A)
(43)【公開日】2019年7月4日
【審査請求日】2018年8月23日
(73)【特許権者】
【識別番号】319013263
【氏名又は名称】ヤフー株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100154852
【弁理士】
【氏名又は名称】酒井 太一
(74)【代理人】
【識別番号】100181124
【弁理士】
【氏名又は名称】沖田 壮男
(74)【代理人】
【識別番号】100194087
【弁理士】
【氏名又は名称】渡辺 伸一
(72)【発明者】
【氏名】西島 寛
(72)【発明者】
【氏名】岩成 陽介
(72)【発明者】
【氏名】山名 健悟
(72)【発明者】
【氏名】矢野 崇
(72)【発明者】
【氏名】広垣 友里絵
【審査官】 坂庭 剛史
(56)【参考文献】
【文献】 特開2012−216982(JP,A)
【文献】 特開2017−167642(JP,A)
【文献】 特開2010−218231(JP,A)
【文献】 特開2008−017418(JP,A)
【文献】 特開平10−149301(JP,A)
【文献】 特開2011−159113(JP,A)
【文献】 特開2010−211483(JP,A)
【文献】 特開2010−102446(JP,A)
【文献】 特開平06−149622(JP,A)
【文献】 特開平05−233378(JP,A)
【文献】 特開2011−215982(JP,A)
【文献】 特開2012−083865(JP,A)
【文献】 白井 良,TREND:テストは人工知能に任せる プログラムなしのテスト自動化,日経SYSTEMS,日本,日経BP社,2017年 8月26日,第293号,p.16,ISSN 1881-1620
【文献】 08 フリーソフトカタログ:001 Androidをパソコン上の仮想マシンで動かせる Andy,最強フリーソフト コンプリート・バイブル2015,日本,株式会社晋遊舎,2015年 3月 1日,p.98−99
【文献】 西 麿翁,本気ではじめるiPhoneアプリ作り Xcode7.x+Swift2.x対応,SBクリエイティブ株式会社,2016年 3月10日,初版,p.23−25,ISBN 978-4-7973-8451-2
【文献】 平田敏之,特集2 UIテスト自動化:第3章 EspressoによるAndroidの機能テスト,WEB+DB PRESS,日本,株式会社技術評論社,2017年 7月 7日,Vol.99,p.52−59,ISBN 978-4-7741-8987-1
【文献】 平田敏之,特集2 UIテスト自動化:第4章 XCTestによるiOSの機能テスト,WEB+DB PRESS,日本,株式会社技術評論社,2017年 7月 7日,Vol.99,p.60−66,ISBN 978-4-7741-8987-1
【文献】 マノージ・ハンス,実践 Appium,日本,株式会社オライリー・ジャパン,2016年11月25日,初版,p.57−60,72−85,ISBN 978-4-87311-784-3
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/36
G06F 3/048
(57)【特許請求の範囲】
【請求項1】
アプリの画面を疑似した疑似画面に対して行われた操作を取得する第1取得部と、
前記第1取得部により取得された前記疑似画面に対して行われた操作に応じて前記アプリが実行する処理に応じて表示される前記疑似画面の画面情報を取得する第2取得部と、
前記操作に応じたイベントの内容を示すイベント画面と、前記画面情報に基づく前記疑似画面とを表示部に表示させるための情報を生成する表示制御部と、
前記第1取得部により取得された一連の操作を前記アプリに実行させるための操作シナリオを生成する生成部と、を備え、
前記表示制御部は、前記第1取得部により操作が取得された場合に、前記操作に応じて前記アプリが実行する処理に応じて表示される前記疑似画面の定義の入力を受け付ける疑似画面受付ウインドウを前記表示部に表示させる、
情報処理装置。
【請求項2】
前記表示制御部は、前記疑似画面受付ウインドウに入力された情報を前記疑似画面の定義とし、前記表示部に前記操作の内容に対応付けて前記疑似画面の定義を表示させる、
請求項に記載の情報処理装置。
【請求項3】
アプリの画面を疑似した疑似画面に対して行われた操作を取得する第1取得部と、
前記第1取得部により取得された前記疑似画面に対して行われた操作に応じて前記アプリが実行する処理に応じて表示される前記疑似画面の画面情報を取得する第2取得部と、
前記操作に応じたイベントの内容を示すイベント画面と、前記画面情報に基づく前記疑似画面とを表示部に表示させるための情報を生成する表示制御部と、
前記第1取得部により取得された一連の操作を前記アプリに実行させるための操作シナリオを生成する生成部と、を備え、
前記表示制御部は、ユーザによって予め入力された前記疑似画面の画面情報の定義に対応付けられた前記疑似画面の画像情報と、前記第2取得部により取得された前記疑似画面の画像情報とが同一である場合、前記疑似画面の画像情報の定義の情報を前記表示部に表示させる、
情報処理装置。
【請求項4】
アプリの画面を疑似した疑似画面に対して行われた操作を取得する第1取得部と、
前記第1取得部により取得された前記疑似画面に対して行われた操作に応じて前記アプリが実行する処理に応じて表示される前記疑似画面の画面情報を取得する第2取得部と、
前記操作に応じたイベントの内容を示すイベント画面と、前記画面情報に基づく前記疑似画面とを表示部に表示させるための情報を生成する表示制御部と、
前記第1取得部により取得された一連の操作を前記アプリに実行させるための操作シナリオを生成する生成部と、を備え、
前記表示制御部は、ユーザによって予め入力された前記操作の定義に対応付けられた操作と、前記第1取得部により取得された操作とが同一である場合、前記操作の定義の情報を前記表示部に表示させる、
情報処理装置。
【請求項5】
アプリの画面を疑似した疑似画面に対して行われた操作を取得する第1取得部と、
前記第1取得部により取得された前記疑似画面に対して行われた操作に応じて前記アプリが実行する処理に応じて表示される前記疑似画面の画面情報を取得する第2取得部と、
前記操作に応じたイベントの内容を示すイベント画面と、前記画面情報に基づく前記疑似画面と、ユーザによって予め入力された前記疑似画面の画面情報の定義を示す情報とを、同時に表示部に表示させるための情報を生成する表示制御部と、
前記第1取得部により取得された一連の操作を前記アプリに実行させるための操作シナリオを生成する生成部と、
を備える情報処理装置。
【請求項6】
前記生成部は、所定の操作単位ごとに前記操作シナリオを生成する、
請求項1から5のうちいずれか1項に記載の情報処理装置。
【請求項7】
前記表示制御部は、所定の操作単位ごとに前記操作の内容を前記表示部に表示させる、
請求項1から6のうちいずれか1項に記載の情報処理装置。
【請求項8】
前記所定の操作単位は、前記疑似画面における選択可能なオブジェクトを選択する操作単位である、
請求項またはに記載の情報処理装置。
【請求項9】
前記表示制御部は、前記イベント画面と前記疑似画面とを同時に視認可能に前記表示部に表示させる、
請求項1からのうちいずれか1項に記載の情報処理装置。
【請求項10】
前記操作に応じたイベントの内容は、前記疑似画面に対して行われた操作の内容、および前記操作に応じて前記アプリが実行する処理に応じて表示される前記疑似画面の内容を含む、
請求項1からのうちいずれか1項に記載の情報処理装置。
【請求項11】
前記表示制御部は、前記第1取得部により操作が取得された場合に、前記操作の定義の入力を受け付ける操作受付ウインドウを前記表示部に表示させる、
請求項1から10のうちいずれか1項に記載の情報処理装置。
【請求項12】
前記表示制御部は、前記操作受付ウインドウに入力された情報を前記操作の対象要素と定義し、前記表示部に前記操作の内容に対応付けて前記対象要素を表示させる、
請求項11に記載の情報処理装置。
【請求項13】
前記表示制御部は、前記第1取得部により操作が取得された場合に、前記操作の内容を確定させるか否かを問い合わせるアイコンを前記表示部に表示させ、
前記生成部は、前記アイコンに対して、前記操作の内容を確定させる操作が行われた場合に、前記操作の内容を含む操作シナリオを生成する、
請求項1から12のうちいずれか1項に記載の情報処理装置。
【請求項14】
前記生成部は、前記第2取得部により取得された画面情報に基づいて画面の変化を示す画面シナリオを、前記変化を生じさせた操作シナリオに対応付けて生成する、
請求項1から13のうちいずれか1項に記載の情報処理装置。
【請求項15】
前記生成部は、前記操作シナリオと前記操作シナリオに対応付けられた前記画面シナリオとで構成されるシナリオを生成する、
請求項14に記載の情報処理装置。
【請求項16】
前記生成部により生成された操作シナリオに基づいて、自動的に前記アプリを実行し、実行後に変化した画面の画面情報と、前記操作シナリオに対応付けられた前記画面シナリオの画面情報とが合致しているか否かを判定する判定部を更に備える、
請求項15に記載の情報処理装置。
【請求項17】
前記判定部は、前記実行後に変化した画面の画面情報と、前記操作シナリオに対応付けられた前記画面シナリオの画面情報とが合致していない場合、合致しないことを示す情報を出力部に出力させる、
請求項16に記載の情報処理装置。
【請求項18】
前記生成部は、前記画面シナリオに確認項目を対応付けてシナリオを生成し、
前記判定部は、更に前記実行後に変化した画面の画面情報が、前記画面シナリオに対応付けられた確認項目の内容を満たす否かを判定し、確認項目の内容を満たさない場合、満たさないことを示す情報を出力部に出力させる、
請求項17に記載の情報処理装置。
【請求項19】
前記表示制御部は、指定された一以上の前記操作に応じたイベントの内容を一連の操作として定義したことを示す情報を前記表示部に表示させる、
請求項1から18のうちいずれか1項に記載の情報処理装置。
【請求項20】
前記生成部は、予め定義された一以上の前記操作に応じたイベントの内容を、前記操作シナリオに含めることの指示を取得した場合、前記定義されたイベントの内容を前記操作シナリオに含める、
請求項1から19のうちいずれか1項に記載の情報処理装置。
【請求項21】
コンピュータが、
アプリの画面を疑似した疑似画面に対して行われた操作を取得し、
前記取得された前記疑似画面に対して行われた操作に応じて前記アプリが実行する処理に応じて表示される前記疑似画面の画面情報を取得し、
前記操作に応じたイベントの内容を示すイベント画面と、前記画面情報に基づく前記疑似画面とを表示部に表示させるための情報を生成し、
前記取得された一連の操作を前記アプリに実行させるための操作シナリオを生成し、
前記操作が取得された場合に、前記操作に応じて前記アプリが実行する処理に応じて表示される前記疑似画面の定義の入力を受け付ける疑似画面受付ウインドウを前記表示部に表示させる、
情報処理方法。
【請求項22】
コンピュータに、
アプリの画面を疑似した疑似画面に対して行われた操作を取得させ、
前記取得された前記疑似画面に対して行われた操作に応じて前記アプリが実行する処理に応じて表示される前記疑似画面の画面情報を取得させ、
前記操作に応じたイベントの内容を示すイベント画面と、前記画面情報に基づく前記疑似画面とを表示部に表示させるための情報を生成させ、
前記取得された一連の操作を前記アプリに実行させるための操作シナリオを生成させ、
前記操作が取得された場合に、前記操作に応じて前記アプリが実行する処理に応じて表示される前記疑似画面の定義の入力を受け付ける疑似画面受付ウインドウを前記表示部に表示させる処理を実行させる、
プログラム。
【請求項23】
コンピュータが、
アプリの画面を疑似した疑似画面に対して行われた操作を取得し、
前記取得された前記疑似画面に対して行われた操作に応じて前記アプリが実行する処理に応じて表示される前記疑似画面の画面情報を取得し、
前記操作に応じたイベントの内容を示すイベント画面と、前記画面情報に基づく前記疑似画面とを表示部に表示させるための情報を生成し、
前記取得された一連の操作を前記アプリに実行させるための操作シナリオを生成し、
ユーザによって予め入力された前記疑似画面の画面情報の定義に対応付けられた前記疑似画面の画像情報と、前記取得された前記疑似画面の画像情報とが同一である場合、前記疑似画面の画像情報の定義の情報を前記表示部に表示させる、
情報処理方法。
【請求項24】
コンピュータに、
アプリの画面を疑似した疑似画面に対して行われた操作を取得させ、
前記取得された前記疑似画面に対して行われた操作に応じて前記アプリが実行する処理に応じて表示される前記疑似画面の画面情報を取得させ、
前記操作に応じたイベントの内容を示すイベント画面と、前記画面情報に基づく前記疑似画面とを表示部に表示させるための情報を生成させ、
前記取得された一連の操作を前記アプリに実行させるための操作シナリオを生成させ、
ユーザによって予め入力された前記疑似画面の画面情報の定義に対応付けられた前記疑似画面の画像情報と、前記取得された前記疑似画面の画像情報とが同一である場合、前記疑似画面の画像情報の定義の情報を前記表示部に表示させる処理を実行させる、
プログラム。
【請求項25】
コンピュータが、
アプリの画面を疑似した疑似画面に対して行われた操作を取得し、
前記取得された前記疑似画面に対して行われた操作に応じて前記アプリが実行する処理に応じて表示される前記疑似画面の画面情報を取得し、
前記操作に応じたイベントの内容を示すイベント画面と、前記画面情報に基づく前記疑似画面とを表示部に表示させるための情報を生成し、
前記取得された一連の操作を前記アプリに実行させるための操作シナリオを生成し、
ユーザによって予め入力された前記操作の定義に対応付けられた操作と、前記取得された操作とが同一である場合、前記操作の定義の情報を前記表示部に表示させる、
情報処理方法。
【請求項26】
コンピュータに、
アプリの画面を疑似した疑似画面に対して行われた操作を取得させ、
前記取得された前記疑似画面に対して行われた操作に応じて前記アプリが実行する処理に応じて表示される前記疑似画面の画面情報を取得させ、
前記操作に応じたイベントの内容を示すイベント画面と、前記画面情報に基づく前記疑似画面とを表示部に表示させるための情報を生成させ、
前記取得された一連の操作を前記アプリに実行させるための操作シナリオを生成させ、
ユーザによって予め入力された前記操作の定義に対応付けられた操作と、前記取得された操作とが同一である場合、前記操作の定義の情報を前記表示部に表示させる処理を実行させる、
プログラム。
【請求項27】
コンピュータが、
アプリの画面を疑似した疑似画面に対して行われた操作を取得し、
前記取得された前記疑似画面に対して行われた操作に応じて前記アプリが実行する処理に応じて表示される前記疑似画面の画面情報を取得し、
前記操作に応じたイベントの内容を示すイベント画面と、前記画面情報に基づく前記疑似画面と、ユーザによって予め入力された前記疑似画面の画面情報の定義を示す情報とを、同時に表示部に表示させるための情報を生成し、
前記取得された一連の操作を前記アプリに実行させるための操作シナリオを生成する、
情報処理方法。
【請求項28】
コンピュータに、
アプリの画面を疑似した疑似画面に対して行われた操作を取得させ、
前記取得された前記疑似画面に対して行われた操作に応じて前記アプリが実行する処理に応じて表示される前記疑似画面の画面情報を取得させ、
前記操作に応じたイベントの内容を示すイベント画面と、前記画面情報に基づく前記疑似画面と、ユーザによって予め入力された前記疑似画面の画面情報の定義を示す情報とを、同時に表示部に表示させるための情報を生成させ、
前記取得された一連の操作を前記アプリに実行させるための操作シナリオを生成させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【0002】
従来、カスタマイズソフトウェアの自動テストを効率的に実行可能なソフトウェア試験装置及びプログラムが開示されている(例えば特許文献1参照)。この装置は、ソフトウェアソースコードとソフトウェアの機能を定義する設定ファイルにおいて指定され得る各設定に対して必要な試験項目を記憶する記憶手段と、試験を行うソフトウェアの設定ファイルを取得するファイル取得手段と、設定ファイルにおいて指定された設定に基づき、記憶手段に記憶された試験項目のうち、実行すべき試験項目を判定する試験項目判定手段とを有する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2017−21475号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記従来の技術のように、手動では非効率であったアプリの実行を自動化する工夫は存在する。また、例えば、クラウドサービスを利用してアプリを保存し、クラウド上に保存したアプリに対して操作を入力する(input)するAPI(Application Programming Interface)を手元の端末装置から呼び出すなどを行って、アプリの動作のテストが行われる場合があった。
【0005】
しかしながら、アプリの動作のテストを自動化するためにアプリに与える操作等を記述した情報やプログラム(シナリオ)を開発するのが大変な負担となる場合がある。
【0006】
本発明は、このような事情を考慮してなされたものであり、アプリの動作のテストの自動化を簡便に行わせることができる情報処理装置、情報処理方法、およびプログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【0007】
本発明の一態様は、アプリの画面を疑似した疑似画面に対して行われた操作を取得する第1取得部と、前記第1取得部により取得された前記疑似画面に対して行われた操作に応じて前記アプリが実行する処理に応じて表示される前記疑似画面の画面情報を取得する第2取得部と、前記操作に応じたイベントの内容を示すイベント画面と、前記画面情報に基づく前記疑似画面とを表示部に表示させるための情報を生成する表示制御部と、前記第1取得部により取得された一連の操作を前記アプリに実行させるための操作シナリオを生成する生成部とを備える情報処理装置である。
【発明の効果】
【0008】
本発明の一態様によれば、アプリの動作のテストの自動化を簡便に行わせることができる。
【図面の簡単な説明】
【0009】
図1】情報処理装置を含む情報処理システム1の構成を示す図である。
図2】端末装置10の機能構成の一例を示す図である。
図3】端末装置10に表示されるインターフェース画面IM1の一例を示す図である。
図4】サーバ装置40の機能構成の一例を示す図である。
図5】対応情報56の内容を概念的に示す図である。
図6】情報処理システム1により行われる処理の一例を示す図である。
図7】シナリオの生成の具体例の一例を示す図である。
図8】検索ボタンが操作された場合のインターフェース画面IM3の一例を示す図である。
図9】検索画面を定義するインターフェース画面IM4の一例を示す図である。
図10】検索画面が表示されたことを示すインターフェース画面IM5の一例を示すである。
図11】シナリオ情報32の内容の一例を示す図である。
図12】シナリオ情報32に含まれるページ関連情報34の内容の一例を示す図である。
図13】端末装置10により実行される処理の流れを示すフローチャートである。
図14】サーバ装置40により実行される処理の流れを示すフローチャートである。
図15】疑似画面にオブジェクト枠が重畳されたインターフェース画面IM6の一例を示す図である。
図16】疑似画面に特定操作が行われたことを示す画像が重畳されたインターフェース画面IM7の一例を示す図である。
図17】確定ボタンが表示されたインターフェース画面IM8の一例を示す図である。
図18】パーツやパターンの再利用について説明するためのインターフェース画面IM9の一例を示す図である。
図19】テスト実行装置80の機能構成の一例を示す図である。
図20】テスト実行装置80により実行される処理の流れを示すフローチャートである。
図21】確認項目が追加されたシナリオ情報32Aの内容の一例について説明するための図である。
図22】第2実施形態の情報処理装置100の機能構成の一例を示す図である。
図23】第3実施形態の情報処理装置100Aの機能構成の一例を示す図である。
【発明を実施するための形態】
【0010】
以下、図面を参照し、本発明の情報処理装置、情報処理方法、およびプログラムの実施形態について説明する。
【0011】
[概要]
情報処理装置は、スマートフォンなどで実行されるアプリケーションプログラム(以下、アプリ)が完成した際に、アプリに対して行われた操作と、その操作に応じたアプリの実行結果とが開発者の意図するものであるかを確認するのに用いられる。情報処理装置は、一以上のプロセッサにより実現される。情報処理装置は、アプリの画面を疑似した疑似画面(アプリを仮想実行する画面)に対して行われた操作を取得し、取得した操作に応じてアプリが実行する処理に応じて表示される疑似画面の画面情報(変化の内容)を取得し、インターフェース画面を表示部に表示させるための情報を生成する。インターフェース画面は、操作に応じたイベントの内容を示すイベント画面と、画面情報に基づく疑似画面とを含む画面である。また、情報処理装置は、疑似画面に対して行われた一連の操作をアプリに実行させるための操作シナリオを生成する。
【0012】
「アプリの画面を疑似した疑似画面」とは、例えば、スマートフォンなどの利用者の端末装置とは異なる環境において疑似的に実行されたアプリにより生成される画面であり、例えば、アプリエミュレータから取得される。「疑似画面に対して行われた操作」は、例えば、「所定の操作単位(単位となる操作のステップ)」ごとに管理され、表示制御がなされる。所定の操作単位とは、ある程度の意味を生じさせる操作単位であり、例えば、疑似画面に含まれるアイコンや、他のページに遷移するリンクの情報などのオブジェクトに対して行われる操作である。
【0013】
情報処理装置により送信される「疑似画面に対して行われた操作」の情報は、アプリの画面に対して行われた操作に変換されて、アプリエミュレータに送信される。アプリエミュレータは、入力された操作に応じて疑似的にアプリを実行し、その結果である疑似画面の画面情報を情報処理装置に送信する。
【0014】
そして、情報処理装置は、疑似画面に対して行われた「操作に応じたイベントの内容を示すイベント画面」と、アプリエミュレータから取得した画面情報に基づく疑似画面とを含むインターフェース画面を表示部に表示させるための情報を生成し、表示部に表示させる。
【0015】
<第1実施形態>
[全体構成]
図1は、情報処理装置を含む情報処理システム1の構成を示す図である。情報処理システム1は、例えば、端末装置10と、サーバ装置40と、アプリエミュレータ60と、記憶装置70とを備える。これらの装置は、ネットワークを介して互いに通信する。ネットワークは、例えば、WAN(Wide Area Network)やLAN(Local Area Network)、インターネット、専用回線、無線基地局、プロバイダなどを含む。本実施形態では、端末装置10が、「情報処理装置」の一例である。
【0016】
端末装置10は、表示部に表示させた疑似画面に対して行われた操作の操作情報をサーバ装置40に送信したり、その操作情報に対するアプリの実行結果(変換後画面情報)を取得したりする。そして、端末装置10は、上記処理に基づいて操作や画面の遷移に関するシナリオを生成する。生成されたシナリオは、記憶装置70に記憶される。サーバ装置40は、アプリエミュレータ60にアプリを実行させるために、端末装置10から取得した操作情報を変換後操作情報に変換し、変換した変換後操作情報をアプリエミュレータ60に送信する。また、サーバ装置40は、端末装置10の表示部に疑似画面を表示させるために、アプリエミュレータ60により実行されたアプリの実行結果である画面情報を、変換後画面に変換し、変換した変換後画面情報を端末装置10に送信する。
【0017】
アプリエミュレータ60は、例えば、サーバ装置40により送信された変換後操作情報に基づいて、仮想環境においてアプリに変換後操作情報に応じた操作に対応する処理を実行させる。アプリエミュレータ60は、アプリに実行させた処理結果をサーバ装置40に送信する。処理結果とは、例えば、アプリの処理により遷移した実行後画面情報である。
【0018】
[端末装置の機能構成]
図2は、端末装置10の機能構成の一例を示す図である。端末装置10は、例えば、パーソナルコンピュータや、タブレット端末等である。以下の説明では、端末装置10は、パーソナルコンピュータであるものとして説明する。
【0019】
端末装置10は、例えば、通信部12と、生成部14と、表示制御部16と、マスター制御部18と、受付部20と、表示部22と、記憶部30とを備える。生成部14、表示制御部16、およびマスター制御部18は、例えば、CPU(Central Processing Unit)等のハードウェアプロセッサが、フラッシュメモリなどの記憶部30に記憶されたプログラムを実行することにより実現される。プログラムは、例えば、ネットワークを介してサーバ装置40等からダウンロードされてもよいし、予め端末装置10にプリインストールされていてもよい。前者の場合、プログラムは、ウェブページに付随するスクリプトであってもよい。また、これらの機能部は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、GPU(Graphics Processing Unit)等のハードウェアによって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。また、上記のプログラムは、予め記憶部30に格納されていてもよいし、DVDやCD−ROMなどの着脱可能な記憶媒体に格納されており、記憶媒体が端末装置10のドライブ装置に装着されることで記憶部30にインストールされてもよい。記憶部30は、例えば、ROM(Read Only Memory)、フラッシュメモリ、SDカード、RAM(Random Access Memory)、レジスタ等によって実現される。記憶部30には、後述するシナリオ情報32が記憶されている。第1実施形態において、受付部20が「第1取得部」の一例であり、通信部12が「第2取得部」の一例である。
【0020】
通信部12は、ネットワークインターフェースカード(Network Interface Card)等の通信インターフェースを含む。通信部12は、受付部20により受け付けられた疑似画面に対して行われた操作に応じてアプリが実行する処理に応じて表示される疑似画面の画面情報を取得する。
【0021】
生成部14は、受付部20により受け付けられた一連の操作をアプリに実行させるための操作シナリオを生成する。
【0022】
表示制御部16は、受付部20に対して行われた操作に応じたイベントを示すイベント画面と、通信部12により取得された画像情報に基づく疑似画面とを含むインターフェース画面を表示部22に表示させる。「操作に応じたイベントの内容」とは、例えば、疑似画面に対して行われた操作の内容、またはその操作に応じてアプリが実行した結果(画面情報)を含む。
【0023】
表示制御部16は、例えば、サーバ装置40により送信された画像の元情報を取得してレンダリングを行う。サーバ装置40により送信された画像の元情報は、例えば、端末装置10の表示部22に表示される態様に合わせて画像およびそのレイアウトが調整済の情報である。画像およびそのレイアウトが調整されていない画像の元情報を取得した場合、表示制御部16は、取得した画像の元情報を調整してからレンダリングを行ってもよい。この場合、表示制御部16は、調整のための変換情報をサーバ装置40から取得し、画像の元画像を調整してもよいし、自装置に記憶された調整のための変換情報を参照して画像の元画像を表示部22に表示させるために調整してもよい。表示制御部16は、サーバ装置40により送信された情報や、ユーザの操作等に基づいてインターフェース画面を表示部22に表示させる。通信部12は、受付部20により受け付けられた操作の情報をサーバ装置40に送信する。
【0024】
マスター制御部18は、例えば、通信部12に自装置で処理された情報を他装置に送信させたり、他装置から送信された情報を取得させたりする。また、マスター制御部18は、受付部20に対して行われた操作の内容を解釈し、操作の内容を示す操作情報を、通信部12を用いてサーバ装置40に送信する。
【0025】
受付部20は、疑似画面に対して行われた操作を受け付ける。受付部20は、マウスや、キーボード、表示部22と一体として形成されるタッチパネル等である。表示部22は、各種情報を表示するディスプレイ装置である。
【0026】
[端末装置10に表示される画面]
図3は、端末装置10に表示されるインターフェース画面IM1の一例を示す図である。インターフェース画面IM1は、例えば、第1画面IM1−1、第2画面IM1−2、および第3画面IM1−3を含む。第1画面IM1−1は、アプリによって実行されている画面を疑似的に示す疑似画面である第4画面IM1−4を含む。第4画面IM1−4を、仮想実行画面と称してもよい。第2画面IM1−2は、疑似画面において実行された操作の内容、および、操作に応じて表示された画面の説明などを含む。第2画面IM1−2を、イベント画面(シナリオ生成画面)と称してもよい。第3画面IM1−3には、ユーザが登録した情報(ユーザによって定義された情報)が表示される。ユーザが登録した情報とは、例えば、疑似画面における操作の内容、または操作によって第1画面IM1−1に表示された画面に対して、ユーザがネーミングした情報である。
【0027】
インターフェース画面IM1において操作が実行されると、アプリが連動して動作する(現実的には、前述のように疑似画面に対して行われた操作の内容がアプリエミュレータ60に送信され、アプリエミュレータ60においてテスト用の端末装置に対してアプリの実行がされるものであるが、以下では簡略的にこのように説明する)。そして、連動による動作により遷移した画面が第4画面IM1−4に反映される。また、第2画面IM1−2に、第4画面IM1−4において行われた操作の内容と、操作に応じて遷移した画面の内容とが表示される。
【0028】
[サーバ装置の機能構成]
図4は、サーバ装置40の機能構成の一例を示す図である。サーバ装置40は、例えば、情報取得部42と、情報制御部44と、情報送信部46と、記憶部50とを備える。情報取得部42、情報制御部44、および情報送信部46は、CPU等のハードウェアプロセッサが、フラッシュメモリなどの記憶部50に記憶されたプログラムを実行することにより実現される。プログラムは、例えば、ネットワークを介して所定のサーバ装置からダウンロードされてもよいし、予めサーバ装置40にプリインストールされていてもよい。また、これらの機能部は、LSI、ASIC、FPGA、GPU等のハードウェアによって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。また、上記のプログラムは、予め記憶部50に格納されていてもよいし、DVDやCD−ROMなどの着脱可能な記憶媒体に格納されており、記憶媒体がサーバ装置40のドライブ装置に装着されることで記憶部50にインストールされてもよい。記憶部50は、例えば、ROM、フラッシュメモリ、SDカード、RAM、レジスタ等によって実現される。
【0029】
記憶部50には、例えば、ウェブページ情報52、シナリオアプリ54、および位置対応情報56が記憶されている。ウェブページ情報52は、端末装置10に提供されるウェブページの情報である。シナリオアプリ54は、端末装置10と協働して、端末装置10の表示部22にイベント画面または疑似画面を表示させたり、シナリオを生成したりする。例えば、端末装置10の要求に基づいて、シナリオアプリ54に含まれるプログラムとウェブページとは互いに対応付けられて端末装置10に提供される。
【0030】
[対応情報]
図5は、対応情報56の内容を概念的に示す図である。対応情報56は、例えば、疑似画面における区画領域の位置情報(座標)と、アプリの画面における区画領域の位置情報との対応関係を示す情報である。区画領域は、画面が所定の規則に従って分割された領域である。また、対応情報56には、端末装置10における操作と、アプリエミュレータ60により実行される操作との対応情報が記憶されている。本実施形態では、対象のアプリはスマートフォンなどの携帯端末装置において実行されるものを想定しているため、例えば、疑似画面において、クリック操作が行われた場合、タップ操作に変換される。また、例えば、疑似画面において、ドラッグ操作が行われた場合、スワイプ操作に変換される。変換された操作情報を「変換後操作情報」と称する場合がある。
【0031】
情報取得部42は、端末装置10またはアプリエミュレータ60により送信された情報を取得する。
【0032】
情報制御部44は、対応情報56を参照して、アプリの疑似画面に対して行われた操作の操作情報を、変換後操作情報に変換し、変換した変換後操作情報をアプリエミュレータ60に送信する。また、情報制御部44は、対応情報56を参照して、アプリエミュレータ60により送信されたアプリが実行された後の画面情報(実行後画面情報)を、端末装置10の表示部22の第4画面IM1−4に表示させる画像の画面情報に変換し、変換した実行後画面情報を端末装置10に送信する。
【0033】
情報送信部46は、自装置が取得した情報、または自装置で処理した情報を他装置に送信する。
【0034】
[シーケンス図]
図6は、情報処理システム1により行われる処理の一例を示す図である。端末装置10は、操作情報および操作された位置を示す位置情報を取得し(S10)、取得した操作情報と位置情報を対応付けた操作シナリオ項目を生成すると共に、操作情報を表示部22の第2画面IM1−2に表示させる(S12)。次に、端末装置10は、S10で取得した操作情報および位置情報をサーバ装置40に送信する(S14)。
【0035】
サーバ装置40は、端末装置10から受信した操作情報および位置情報をアプリエミュレータ60に送信する情報に変換し(S16)、変換した変換後操作情報および変換後位置情報をアプリエミュレータ60に送信する(S18)。
【0036】
アプリエミュレータ60は、サーバ装置40から受信した変換後操作情報および変換後位置情報に基づいて、アプリを実行し(S20)、実行後画面情報をサーバ装置40に送信する(S22)。なお、アプリが実行され、画面が変更されない場合であっても、アプリの画面の情報が実行後画面情報としてサーバ装置40に送信されてもよい。
【0037】
サーバ装置40は、アプリエミュレータ60から受信した実行後画面情報を、端末装置10の表示部22に表示させる画面情報に変換し(S24)、変換した実行後画面情報を端末装置10に送信する(S26)。
【0038】
端末装置10は、サーバ装置40から受信した実行後画面情報と、操作前の画面情報とを比較して、画面情報に変化が生じているか否かを判定する(S28)。例えば、端末装置10は、実行後画面情報の画面の分割領域ごとの特徴量と、操作前の画面情報の画面の分割領域ごとの特徴量とを比較して、画面が変化しているか否か判定する。比較した分割領域ごとの特徴量に差異が存在する場合、画面は変化したと判定される。
【0039】
端末装置10は、S28で画面に変化が生じていると判定した場合、変化が生じていることを示す情報、および実行後画面情報の画面を表示部22に表示させる(S30)。端末装置10は、実行後画面情報が表示部22に表示されたこと(すなわちアプリが第4画面IM1−4の画面を表示したこと)を示す情報を、S10の操作情報に対応付けた画面シナリオ項目を生成し、操作に応じて疑似画面が変更されたことを示す情報を表示部22の第2画面IM1−2に表示させる(S32)。以下、操作シナリオ項目、または画面シナリオ項目のうち一方または双方を含むものを、単に「シナリオ」と称する場合がある。
【0040】
[画面変化とシナリオ生成過程の具体例]
図7は、画面変化とシナリオの生成過程の具体例を示す図である。例えば、インターフェース画面IM2に含まれる第4画面IM2−4において、検索ボタンが操作された場合、操作の対象要素のネーミングを登録するための(対象要素を定義するための)、第5画面IM2−5(操作受付ウインドウ)が表示される。対象要素とは、疑似画面が操作された場合にアプリが連動して操作を受け付ける領域(例えば、疑似画面(アプリの画面)に表示された所定のオブジェクトや、所定のアイコン)である。第5画面IM2−5において操作の対象要素が登録された場合、登録された情報(検索ボタン)が第2画面IM2−2における操作の内容(変換後操作情報の内容)に対応付けられて表示される。
【0041】
図8は、検索ボタンが操作された場合のインターフェース画面IM3の一例を示す図である。例えば、図8に示すように第2画面IM3−2内に「検索ボタンをタップする」という対象要素と操作の内容とが表示される。そして、「検索ボタンをタップする」という操作の内容と、操作された位置情報とが対応付けられて、操作シナリオ項目として生成される。なお、疑似画面に対する操作が行われ、一度定義された操作と同様の操作が行われた場合、既に定義された操作の定義名が第画面IM3−2、第5画面IM2−に表示される。
【0042】
上述したように、検索ボタンが操作されると、アプリの画面に連動して、図9に示すように疑似画面においても検索画面が表示され、第5画面IM4−5(疑似画面受付ウインドウ)に示す検索画面を定義するための画面が表示される。
【0043】
図9は、検索画面を定義するインターフェース画面IM4の一例を示す図である。例えば、ユーザが受付部20を操作してページを定義することができる。例えば、ユーザが、表示されたページを「検索画面」と定義した場合(疑似画面を定義した場合)、画面は図10に示す画面に変更される。
【0044】
図10は、検索画面が表示されたことを示すインターフェース画面IM5の一例を示すである。例えば、図10に示すように第2画面IM5−2内に「検索画面が表示される」という情報が表示される。そして、「検索画面が表示される」と定義されたことを示す情報と、定義された画面情報の特徴量とが対応付けられて、画面シナリオ項目として生成される。
【0045】
なお、疑似画面に対する操作が行われ、一度定義されたページと同様のページが表示部22に表示された場合、既に定義されたページの定義名が第5画面IM5−2や第4画面4−2に表示される。
【0046】
上述したように、端末装置10の表示部22において、疑似画面におけるユーザの操作、および操作に対するアプリの処理結果が表示される。また、端末装置10は、操作の内容および操作に対する処理結果に基づいてシナリオ(シナリオ情報)を生成する。このように、ユーザは操作と操作結果とを確認しながら、容易にシナリオを生成することができる。
【0047】
[シナリオのデータ構造の一例]
図11は、シナリオ情報32の内容の一例を示す図である。シナリオ情報32は、操作シナリオ項目と画面シナリオ項目とを含む情報である。例えば、操作シナリオ項目「検索ボタンをタップする」の内容は、操作の内容「位置「×,×」をタップする操作すること」である。例えば、画面シナリオ項目の内容は、検索ボタンがタップされると、「検索画面」と定義された「画像情報3」が表示されることである。
【0048】
図12は、シナリオ情報32に含まれるページ関連情報34の内容の一例を示す図である。例えば、ページ関連情報34には、定義されたページの名称(例えば、トップページや検索画面などの名称)、ページ内に含まれる定義された対象要素の情報、その対象要素の位置情報、および定義された対象要素が操作された場合に実行される画面の情報とその操作内容が互いに対応付けられた情報である。
【0049】
上述したシナリオ情報32およびページ関連情報34が生成されることにより、ユーザによって定義された画面、画面が実行されるための操作の内容、および操作された位置情報が互いに対応付けられる。
【0050】
[フローチャート(端末装置10)]
図13は、端末装置10により実行される処理の流れを示すフローチャートである。まず、受付部20が、疑似画面に対して実行された操作を受け付けるまで待機する(S40)。操作が受け付けられると、表示制御部16は、操作を定義するための操作受付ウインドウを表示部22に表示させる(S42)。表示制御部16は、操作受付ウインドウに入力された情報を操作に対応付けて表示部22に表示させる(S44)。この場合、生成部14は、操作と、操作に対して定義された情報とを対応付けて記憶部30にシナリオ情報32またはページ関連情報34として記憶させる。次に、通信部12は、S40で受付部20が受け付けた操作の情報を、サーバ装置40に送信する(S46)。
【0051】
次に、通信部12は、サーバ装置40から実行後画面情報を取得するまで待機する(S48)。実行後画面情報が取得されると、表示制御部16が、取得した実行後画面情報の画面と、操作される前の画面とを比較し(S50)、画面に変化が存在するか否かを判定する(S52)。変化が存在しない場合、本フローチャートの1ルーチンの処理が終了する。
【0052】
変化が存在する場合、表示制御部16は、変化した画面は定義済の画面情報であるか否かを判定する(S54)。定義済の画面情報である場合、定義済である情報が表示部22に表示され、本フローチャートの1ルーチンの処理が終了する。定義済の画面情報でない場合、表示制御部16は、画面情報を定義するための疑似画面受付ウインドウを表示部22に表示させる(S56)。次に、表示制御部16は、疑似画面受付ウインドウに入力された情報を操作に対応付けて表示部22に表示させる(S58)。この場合、生成部14は、画面を変更させた操作と、操作に対応する実行後画面情報の画面と、操作に対して定義された情報とを対応付けて記憶部30にシナリオ情報32またはページ関連情報34として記憶させる。これにより本フローチャートの1ルーチンの処理が終了する。
【0053】
上述したように、端末装置10が、イベント画面と、疑似画面とを表示部22に表示させながら、シナリオを生成することにより、アプリの動作のテストの自動化を簡便に行わせることができる。
【0054】
[フローチャート(サーバ装置40)]
図14は、サーバ装置40により実行される処理の流れを示すフローチャートである。まず、情報取得部42は、端末装置10により送信された操作の情報(例えば、クリック操作されたことを示す情報、クリック操作された位置の情報)を取得するまで待機する(S60)。操作の情報を取得した場合、情報制御部44は、対応情報56を参照して、操作の情報を変換後操作情報および変換後位置情報に変換し、変換後操作情報および変換後位置情報をアプリエミュレータ60に送信する(S62)。
【0055】
次に、情報取得部42は、アプリエミュレータ60に送信されたアプリの実行結果(実行後画面情報)を取得するまで待機する(S64)。アプリエミュレータ60に送信された実行後画面情報を取得すると、情報制御部44は、取得した実行後画面情報を端末装置10の表示部22に表示させるための情報に変換し、変換した実行後画面情報を端末装置10に送信する(S66)。これにより本フローチャートの1ルーチンの処理が終了する。
【0056】
このように、サーバ装置40が、端末装置10またはアプリエミュレータ60から取得した情報を、送信先で利用するのに適した情報に処理する。これにより、端末装置10は、上述したようにシナリオを容易に作成することができる。この結果、アプリの動作のテストの自動化を簡便に行わせることができる。
【0057】
[その他]
表示制御部16は、疑似画面におけるマウスポインタの位置に対して、その位置に対応するオブジェクトを示すオブジェクト枠を疑似画面に重畳させて表示させてもよい。オブジェクトとは、例えば、操作することによって、リンク先の画面に遷移することが可能な画面上の対象である。図15は、疑似画面にオブジェクト枠が重畳されたインターフェース画面IM6の一例を示す図である。例えば、端末装置10の記憶部30には、オブジェクトの位置を示す位置情報が記憶されている。この位置情報は、例えば、サーバ装置40により送信された情報であって、サーバ装置40において、実際のアプリの画面のオブジェクトの位置情報が、疑似画面における位置情報に変換された情報である。
【0058】
また、生成部14は、疑似画面における操作に基づいて、特定操作(例えば、スワイプ操作や、フリック操作等)が行われたことを示すシナリオを生成してもよい。例えば、端末装置10に含まれる操作部(例えば、マウスやキーボード)の所定のボタンを操作しながら、マウスポインタを操作した場合、特定操作が行われたことを示すシナリオを生成する。また、表示制御部16は、特定操作が行われたことを示す画像を疑似画面に重畳させてインターフェース画面に表示させてもよい。図16は、疑似画面に特定操作が行われたことを示す画像が重畳されたインターフェース画面IM7の一例を示す図である。
【0059】
また、表示制御部16は、操作の内容を操作シナリオ項目として確定させるための確定ボタンを表示部22に表示させてもよい。図17は、確定ボタンが表示されたインターフェース画面IM8の一例を示す図である。例えば、ユーザが、所定のボタンをタップ操作して、その操作を「検索ボタン」と定義した場合、表示制御部16は、その操作をシナリオとして確定させるか否かを問い合わせる内容(確定させるアイコン、確定させないアイコン)を第5画面IM8−5に表示させてもよい。例えば、上記の操作をシナリオと確定させることがユーザによって選択された場合、「検索ボタンをタップする」という表示が、イベント画面に表示され、その操作がシナリオとして確定される。そして、生成部14は、その操作を操作シナリオ項目として登録する。例えば、上記の操作をシナリオと確定させないことがユーザによって選択された場合、「検索ボタンをタップする」という内容が、イベント画面に表示されず、その操作はシナリオに含まれない。
【0060】
また、表示制御部16は、ユーザの操作に応じてイベント画面に含まれる操作のステップの順序を入れ替えてもよいし、操作または操作に応じて表示された画面のステップを削除してもよい。また、表示制御部16は、イベント画面に表示された操作のステップの間に、所定の操作のステップを組み入れてもよい。所定の操作のステップを組み入れる場合、ユーザは、予め定義された操作を指定して操作の内容を特定してもよいし、疑似画面に対する操作を行って操作の内容を特定してもよい。上述したように、操作または画面のステップの順が入れ替えられたり、組み入れられたりされた場合、生成部14は、上記の入れ替えや組み入れに応じて、シナリオ情報32の操作等を入れ替えて、シナリオ情報32の内容を修正する。
【0061】
また、表示制御部16は、一度定義した操作や画面、一以上の操作または画面の組み合わせ(表示内容、表示内容に基づく一又は二以上のステップやそれらからなるシナリオやその一部をパーツやパターン)を再利用してもよい。表示制御部16は、指定された一以上の操作に応じたイベントの内容を一連の操作として定義したことを示す情報を表示部22に表示させる。
【0062】
図18は、パーツやパターンの再利用について説明するためのインターフェース画面IM9の一例を示す図である。例えば、表示制御部16は、ユーザが「トップページ」が表示された状態で、検索ボタンをタップし、「検索画面」を表示させる動作をアプリに実行させる処理を選択する操作を行うことで、選択された操作等を「操作パターン1(図18、IM9−5)」として定義してもよい。この場合、生成部14は、該当する操作シナリオ項目および画面シナリオ項目を「操作パターン1」として操作シナリオに登録する。また、「〇〇ブラウザを開く」および「一度だけ開く」をタップする操作が「操作パターン2」として定義されてもよい。また、ユーザの操作によって操作パターンが、所定の操作の次に組み込まれることが指示された場合、その操作パターンがイベント画面に表示され、シナリオ情報32に登録される。このように、既に定義された操作等を再利用することができるため、ユーザの利便性が向上する。
【0063】
[テスト実行装置の機能構成]
情報処理システム1は、更にテスト実行装置80を備える。図19は、テスト実行装置80の機能構成の一例を示す図である。テスト実行装置80は、アプリが開発者の意図したように動作するか否かのテストを自動で行う。テスト実行装置80は、例えば、通信部82と、実行制御部84と、判定部86と、表示部88と、記憶部90とを備える。記憶部90には、記憶装置70から取得されたシナリオ情報92が記憶されている。
【0064】
通信部82は、記憶装置70に記憶されたシナリオ情報92を取得する。実行制御部84は、シナリオ情報92を参照して、テスト対象の端末装置にインストールされたアプリを実行させる。実行制御部84は、アプリの操作の内容と、アプリの実行結果とを表示部88に表示させる。判定部86は、シナリオ情報92を参照して、アプリの操作の内容と、端末装置から取得した操作に対するアプリの実行結果と一致するか否かを判定する。詳細は後述する。そして、判定部86は、判定結果を表示部88に表示させる。
【0065】
[シナリオ実行処理]
図20は、テスト実行装置80により実行される処理の流れを示すフローチャートである。実行制御部84は、シナリオ情報92を参照して、アプリに実行させる操作情報を端末装置に出力し、テスト対象の端末装置にインストールされたアプリを実行させる(S70)。判定部86は、S70で出力した操作情報と、その操作情報に対して実行されたアプリの実行結果を取得する(S72)。
【0066】
次に、判定部86は、S72で取得した情報に基づいて、アプリの実行結果(画面情報)と、シナリオの内容(画面情報)とが一致するか否かを判定する(S74)。一致しない場合、判定部86は、アプリの実行結果と、シナリオの内容とが一致しなかったことを示す情報を表示部88に表示させ、通知を行う(S76)。
【0067】
S74で一致した場合、またはS76の処理後、判定部86は、シナリオをすべて実行したか否かを判定する(S78)。シナリオがすべて実行されていない場合、S72の処理に戻り、シナリオがすべて実行された場合、S70の処理に進む。
【0068】
次に、判定部86は、シナリオ情報92に含まれる、アプリの実行結果に対して確認すべき項目である確認事項(後述する)を確認できたか否かを判定する(S80)。確認事項を確認できなかった場合、判定部86は、確認事項を確認できなかったことを示す情報を表示部88に表示させ通知を行う(S82)。S80の処理後、または確認事項を確認できた場合、本フローチャートの1ルーチンの処理が終了する。
【0069】
上述した処理により、テスト実行装置80は、自動的に端末装置にインストールされたアプリに対する操作と実行結果とが、シナリオ情報の操作と操作結果と一致するか否かを自動的に判定することができる。この結果、アプリの動作のテストの自動化を簡便に行わせることができる。
【0070】
[確認事項]
生成部14は、例えば、受付部20によって、操作の内容に対して確認項目を追加する操作が受け付けられた場合、その操作の内容に対して確認項目を追加してシナリオを生成してもよい。図21は、確認項目が追加されたシナリオ情報92Aの内容の一例について説明するための図である。例えば、ユーザが「一度だけ開く」をタップ操作して「トップページ」が表示されている際に、「検索ボタン」をタップし、「検索画面」が表示されたものとする。この場合に、ユーザが「戻るボタン」を操作した際に、確認項目をその操作に対応付けて登録してもよい。例えば、「戻るボタン」の操作に対して、「一度だけ開く」をタップした場合と同じ画面が開くことを、確認項目としてシナリオ情報92Aに含められる。
【0071】
テスト実行装置80は、上記のフローチャートのS74の処理において「戻るボタン」をタップする操作をアプリに実行させた場合に、「一度だけ開く」をタップした場合の画面(トップページ)と一致する画面が表示されるか否かを判定する。そして、一致する画面が表示されない場合、テスト実行装置80は、表示部88に確認項目について確認することができなかったことを示す情報を表示させる。なお、確認項目として、所定のページにおいて、所定のオブジェクトが設定された位置に表示されることや、所定の操作ボタンなどのアイコンが設定された位置に表示されることなどが追加されてもよい。
【0072】
このように、シナリオ情報92Aにおいて確認項目を登録しておくことにより、自動で確認項目を満たすようにアプリが実行されているかが判定される。この結果、ユーザの利便性が向上する。
【0073】
以上説明した第1実施形態によれば、操作に応じたイベントの内容を示すイベント画面と、画面情報に基づく疑似画面とを表示部22に表示させるための情報を生成する表示制御部16と、一連の操作をアプリに実行させるための操作シナリオを生成する生成部14とを備えることにより、アプリの動作のテストの自動化を簡便に行わせることができる。
【0074】
例えば、機種が異なる複数の端末装置やプラットフォームが異なる端末装置にアプリを提供する場合、機種ごとやプラットフォームごとにアプリが開発者の意図したように動作するかを確認する必要がある。端末装置10により生成された操作シナリオを用いて、動作を確認することにより、アプリの動作のテストの自動化を簡便に行わせることができる。また、操作シナリオを生成する際に、表示部22に操作シナリオの操作の内容や、操作に応じて実行されるアプリの画面が表示されるため、操作シナリオを簡便に生成することができる。この結果、アプリの動作のテストの自動化を簡便に行わせることができる。
【0075】
なお、上述した実施形態では、疑似画面に対してユーザが操作を指定する例について説明したが、この操作は自動で行われてもよい。例えば、自動で疑似画面における位置A、B…の順でタップする操作が行われ、操作ごとに表示された画面が定義されてもよい。この場合、自動で位置A、B…の順でタップする操作、その操作で表示される画面がシナリオ情報として生成される。そして、テスト実行装置80は、上述したように生成されたシナリオ情報32に基づいて、アプリを実行させて、自動で操作と操作結果とを示す情報を生成してもよい。
【0076】
<第2実施形態>
以下、第2実施形態について説明する。図22は、情報処理装置100の機能構成の一例を示す図である。情報処理装置100は、疑似画面が表示された不図示の端末装置、およびアプリエミュレータ60と通信する。情報処理装置100は、例えば、第1取得部102と、情報送信部104と、第2取得部106と、生成部108と、表示制御部110と、記憶部130とを備える。第1取得部102は、アプリの画面を疑似した疑似画面に対して行われた操作の内容を示す操作情報を取得する。情報送信部104は、第1実施形態の情報送信部46に相当する。すなわち、情報送信部104は、第1取得部102により取得された操作情報に基づいて操作の内容を解釈して、操作の内容を示す操作情報をアプリエミュレータ60に送信する。第2取得部106は、第1実施形態の情報送信部46に相当する。すなわち、第2取得部106は、第1取得部102により取得された疑似画面に対して行われた操作に応じてアプリが実行する処理に応じて表示される疑似画面の画面情報を取得する。
【0077】
生成部108は、第1実施形態の生成部14に相当する。すなわち、生成部14は、第1取得部102により取得された操作情報に基づいて操作シナリオ項目を生成し、第2取得部106により取得された画面情報に基づいて画面シナリオ項目を生成する。表示制御部110は、第1実施形態の表示制御部16に相当する。表示制御部110は、第1取得部102により取得された操作情報、および第2取得部106により取得された画面情報に基づいて、イベント画面および疑似画面を含むウェブページを生成し、情報送信部104を用いて生成した情報を端末装置に送信させる。
【0078】
また、記憶部130には、シナリオ情報132と、ウェブページ情報134とが記憶されている。シナリオ情報132、およびウェブページ情報134に含まれる情報は、それぞれ第1実施形態のシナリオ情報32、およびウェブページ情報52に含まれる情報と同様の情報である。また、ウェブページ情報134には、表示制御部110により生成されたウェブページの情報が含まれる。以上説明した第2実施形態によれば、第1実施形態と同様の効果を奏することができる。
【0079】
<第3実施形態>
以下、第3実施形態について説明する。図23は、第3実施形態の情報処理装置100Aの機能構成の一例を示す図である。情報処理装置100Aは、例えば、第2実施形態の情報処理装置100の機能構成に加え、更に、実行制御部126および判定部128を備える。実行制御部126および判定部128の機能は、第1実施形態の実行制御部84および判定部86の機能構成と同様である。すなわち、実行制御部126は、シナリオ情報132を参照して、テスト対象の端末装置にインストールされたアプリを実行させる。判定部128は、シナリオ情報132を参照して、アプリの操作の内容と、端末装置から取得した操作に対するアプリの実行結果と一致するか否かを判定する。表示制御部110は、判定部128の判定結果や、実行制御部126の処理結果等を含むウェブページを生成し、生成したウェブページの情報を端末装置に送信する。以上説明した第3実施形態によれば、第1実施形態と同様の効果を奏することができる。
【0080】
以上説明した各実施形態によれば、アプリの画面を疑似した疑似画面に対して行われた操作を取得する第1取得部と、前記第1取得部により取得された前記疑似画面に対して行われた操作に応じて前記アプリが実行する処理に応じて表示される前記疑似画面の画面情報を取得する第2取得部と、前記操作に応じたイベントの内容を示すイベント画面と、前記画面情報に基づく前記疑似画面とを表示部に表示させるための情報を生成する表示制御部と、前記第1取得部により取得された一連の操作を前記アプリに実行させるための操作シナリオを生成する生成部とを備えることにより、アプリの動作のテストの自動化を簡便に行わせることができる。
【0081】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【0082】
1…情報処理システム、10…端末装置、12…通信部、14…生成部、16…表示制御部、18…マスター制御部、20…受付部、22…表示部、30…記憶部、32…シナリオ情報、40…サーバ装置、42…情報取得部、44…情報制御部、46…情報送信部、50…記憶部、52…ウェブページ情報、54…シナリオアプリ、56…対応情報、60…アプリエミュレータ、80…テスト実行装置、100,100A…情報処理装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23