(57)【要約】      （修正有）【課題】アプリの動作のテストの自動化を簡便に行わせることができる情報処理装置を提供する。【解決手段】情報処理装置１０は、通信部１２と、生成部１４と、表示制御部１６と、マスター制御部１８と、受付部２０と、表示部２２と、記憶部３０とを備える。受付部は、アプリの画面を疑似した疑似画面に対して行われた操作を取得する。通信部は、受付部により取得された疑似画面に対して行われた操作に応じてアプリが実行する処理に応じて表示される疑似画面の画面情報を取得する。表示制御部は、操作に応じたイベントの内容を示すイベント画面と、画面情報に基づく疑似画面とを表示部に表示させるための情報を生成する。生成部は、受付部により取得された一連の操作をアプリに実行させるための操作シナリオを生成し、シナリオ情報３２を記憶部に記憶する。【選択図】図２
2019109852.tif 000002
【特許請求の範囲】
【請求項１】
アプリの画面を疑似した疑似画面に対して行われた操作を取得する第１取得部と、
前記第１取得部により取得された前記疑似画面に対して行われた操作に応じて前記アプリが実行する処理に応じて表示される前記疑似画面の画面情報を取得する第２取得部と、
前記操作に応じたイベントの内容を示すイベント画面と、前記画面情報に基づく前記疑似画面とを表示部に表示させるための情報を生成する表示制御部と、
前記第１取得部により取得された一連の操作を前記アプリに実行させるための操作シナリオを生成する生成部と、
を備える情報処理装置。
【請求項２】
前記生成部は、所定の操作単位ごとに前記操作シナリオを生成する、
請求項１に記載の情報処理装置。
【請求項３】
前記表示制御部は、所定の操作単位ごとに前記操作の内容を前記表示部に表示させる、
請求項１または２に記載の情報処理装置。
【請求項４】
前記所定の操作単位は、前記疑似画面における選択可能なオブジェクトを選択する操作単位である、
請求項２または３に記載の情報処理装置。
【請求項５】
前記表示制御部は、前記イベント画面と前記疑似画面とを同時に視認可能に前記表示部に表示させる、
請求項１から４のうちいずれか１項に記載の情報処理装置。
【請求項６】
前記操作に応じたイベントの内容は、前記疑似画面に対して行われた操作の内容、および前記操作に応じて前記アプリが実行する処理に応じて表示される前記疑似画面の内容を含む、
請求項１から５のうちいずれか１項に記載の情報処理装置。
【請求項７】
前記表示制御部は、前記第１取得部により操作が取得された場合に、前記操作の定義の入力を受け付ける操作受付ウインドウを前記表示部に表示させる、
請求項１から６のうちいずれか１項に記載の情報処理装置。
【請求項８】
前記表示制御部は、前記操作受付ウインドウに入力された情報を前記操作の対象要素と定義し、前記表示部に前記操作の内容に対応付けて前記対象要素を表示させる、
請求項７に記載の情報処理装置。
【請求項９】
前記表示制御部は、前記第１取得部により操作が取得された場合に、前記操作に応じて前記アプリが実行する処理に応じて表示される前記疑似画面の定義の入力を受け付ける疑似画面受付ウインドウを前記表示部に表示させる、
請求項１から８のうちいずれか１項に記載の情報処理装置。
【請求項１０】
前記表示制御部は、前記疑似画面受付ウインドウに入力された情報を前記疑似画面の定義とし、前記表示部に前記操作の内容に対応付けて前記疑似画面の定義を表示させる、
請求項９に記載の情報処理装置。
【請求項１１】
前記表示制御部は、前記第１取得部により操作が取得された場合に、前記操作の内容を確定させるか否かを問い合わせるアイコンを前記表示部に表示させ、
前記生成部は、前記アイコンに対して、前記操作の内容を確定させる操作が行われた場合に、前記操作の内容を含む操作シナリオを生成する、
請求項１から１０のうちいずれか１項に記載の情報処理装置。
【請求項１２】
前記生成部は、前記第２取得部により取得された画面情報に基づいて画面の変化を示す画面シナリオを、前記変化を生じさせた操作シナリオに対応付けて生成する、
請求項１から１１うちいずれか１項に記載の情報処理装置。
【請求項１３】
前記生成部は、前記操作シナリオと前記操作シナリオに対応付けられた前記画面シナリオとで構成されるシナリオを生成する、
請求項１２に記載の情報処理装置。
【請求項１４】
前記生成部により生成された操作シナリオに基づいて、自動的に前記アプリを実行し、実行後に変化した画面の画面情報と、前記操作シナリオに対応付けられた前記画面シナリオの画面情報とが合致しているか否かを判定する判定部を更に備える、
請求項１３に記載の情報処理装置。
【請求項１５】
前記判定部は、前記実行後に変化した画面の画面情報と、前記操作シナリオに対応付けられた前記画面シナリオの画面情報とが合致していない場合、合致しないことを示す情報を出力部に出力させる、
請求項１４に記載の情報処理装置。
【請求項１６】
前記生成部は、前記画面シナリオに確認項目を対応付けてシナリオを生成し、
前記判定部は、更に前記実行後に変化した画面の画面情報が、前記画面シナリオに対応付けられた確認項目の内容を満たす否かを判定し、確認項目の内容を満たさない場合、満たさないことを示す情報を出力部に出力させる、
請求項１５に記載の情報処理装置。
【請求項１７】
前記表示制御部は、指定された一以上の前記操作に応じたイベントの内容を一連の操作として定義したことを示す情報を表示部に表示させる、
請求項１から１６のうちいずれか１項に記載の情報処理装置。
【請求項１８】
前記生成部は、予め定義された一以上の前記操作に応じたイベントの内容を、前記操作シナリオに含めることの指示を取得した場合、前記定義されたイベントの内容を前記操作シナリオに含める、
請求項１から１７のうちいずれか１項に記載の情報処理装置。
【請求項１９】
コンピュータが、
アプリの画面を疑似した疑似画面に対して行われた操作を取得し、
前記取得された前記疑似画面に対して行われた操作に応じて前記アプリが実行する処理に応じて表示される前記疑似画面の画面情報を取得し、
前記操作に応じたイベントの内容を示すイベント画面と、前記画面情報に基づく前記疑似画面とを表示部に表示させるための情報を生成し、
前記取得された一連の操作を前記アプリに実行させるための操作シナリオを生成する、
情報処理方法。
【請求項２０】
コンピュータに、
アプリの画面を疑似した疑似画面に対して行われた操作を取得させ、
前記取得された前記疑似画面に対して行われた操作に応じて前記アプリが実行する処理に応じて表示される前記疑似画面の画面情報を取得させ、
前記操作に応じたイベントの内容を示すイベント画面と、前記画面情報に基づく前記疑似画面とを表示部に表示させるための情報を生成させ、
前記取得された一連の操作を前記アプリに実行させるための操作シナリオを生成させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、カスタマイズソフトウェアの自動テストを効率的に実行可能なソフトウェア試験装置及びプログラムが開示されている（例えば特許文献１参照）。この装置は、ソフトウェアソースコードとソフトウェアの機能を定義する設定ファイルにおいて指定され得る各設定に対して必要な試験項目を記憶する記憶手段と、試験を行うソフトウェアの設定ファイルを取得するファイル取得手段と、設定ファイルにおいて指定された設定に基づき、記憶手段に記憶された試験項目のうち、実行すべき試験項目を判定する試験項目判定手段とを有する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−２１４７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記従来の技術のように、手動では非効率であったアプリの実行を自動化する工夫は存在する。また、例えば、クラウドサービスを利用してアプリを保存し、クラウド上に保存したアプリに対して操作を入力する（input）するＡＰＩ（Application Programming Interface）を手元の端末装置から呼び出すなどを行って、アプリの動作のテストが行われる場合があった。
【０００５】
しかしながら、アプリの動作のテストを自動化するためにアプリに与える操作等を記述した情報やプログラム（シナリオ）を開発するのが大変な負担となる場合がある。
【０００６】
本発明は、このような事情を考慮してなされたものであり、アプリの動作のテストの自動化を簡便に行わせることができる情報処理装置、情報処理方法、およびプログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【０００７】
本発明の一態様は、アプリの画面を疑似した疑似画面に対して行われた操作を取得する第１取得部と、前記第１取得部により取得された前記疑似画面に対して行われた操作に応じて前記アプリが実行する処理に応じて表示される前記疑似画面の画面情報を取得する第２取得部と、前記操作に応じたイベントの内容を示すイベント画面と、前記画面情報に基づく前記疑似画面とを表示部に表示させるための情報を生成する表示制御部と、前記第１取得部により取得された一連の操作を前記アプリに実行させるための操作シナリオを生成する生成部とを備える情報処理装置である。
【発明の効果】
【０００８】
本発明の一態様によれば、アプリの動作のテストの自動化を簡便に行わせることができる。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置を含む情報処理システム１の構成を示す図である。
【図２】端末装置１０の機能構成の一例を示す図である。
【図３】端末装置１０に表示されるインターフェース画面ＩＭ１の一例を示す図である。
【図４】サーバ装置４０の機能構成の一例を示す図である。
【図５】対応情報５６の内容を概念的に示す図である。
【図６】情報処理システム１により行われる処理の一例を示す図である。
【図７】シナリオの生成の具体例の一例を示す図である。
【図８】検索ボタンが操作された場合のインターフェース画面ＩＭ３の一例を示す図である。
【図９】検索画面を定義するインターフェース画面ＩＭ４の一例を示す図である。
【図１０】検索画面が表示されたことを示すインターフェース画面ＩＭ５の一例を示すである。
【図１１】シナリオ情報３２の内容の一例を示す図である。
【図１２】シナリオ情報３２に含まれるページ関連情報３４の内容の一例を示す図である。
【図１３】端末装置１０により実行される処理の流れを示すフローチャートである。
【図１４】サーバ装置４０により実行される処理の流れを示すフローチャートである。
【図１５】疑似画面にオブジェクト枠が重畳されたインターフェース画面ＩＭ６の一例を示す図である。
【図１６】疑似画面に特定操作が行われたことを示す画像が重畳されたインターフェース画面ＩＭ７の一例を示す図である。
【図１７】確定ボタンが表示されたインターフェース画面ＩＭ８の一例を示す図である。
【図１８】パーツやパターンの再利用について説明するためのインターフェース画面ＩＭ９の一例を示す図である。
【図１９】テスト実行装置８０の機能構成の一例を示す図である。
【図２０】テスト実行装置８０により実行される処理の流れを示すフローチャートである。
【図２１】確認項目が追加されたシナリオ情報３２Ａの内容の一例について説明するための図である。
【図２２】第２実施形態の情報処理装置１００の機能構成の一例を示す図である。
【図２３】第３実施形態の情報処理装置１００Ａの機能構成の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照し、本発明の情報処理装置、情報処理方法、およびプログラムの実施形態について説明する。
【００１１】
［概要］
情報処理装置は、スマートフォンなどで実行されるアプリケーションプログラム（以下、アプリ）が完成した際に、アプリに対して行われた操作と、その操作に応じたアプリの実行結果とが開発者の意図するものであるかを確認するのに用いられる。情報処理装置は、一以上のプロセッサにより実現される。情報処理装置は、アプリの画面を疑似した疑似画面（アプリを仮想実行する画面）に対して行われた操作を取得し、取得した操作に応じてアプリが実行する処理に応じて表示される疑似画面の画面情報（変化の内容）を取得し、インターフェース画面を表示部に表示させるための情報を生成する。インターフェース画面は、操作に応じたイベントの内容を示すイベント画面と、画面情報に基づく疑似画面とを含む画面である。また、情報処理装置は、疑似画面に対して行われた一連の操作をアプリに実行させるための操作シナリオを生成する。
【００１２】
「アプリの画面を疑似した疑似画面」とは、例えば、スマートフォンなどの利用者の端末装置とは異なる環境において疑似的に実行されたアプリにより生成される画面であり、例えば、アプリエミュレータから取得される。「疑似画面に対して行われた操作」は、例えば、「所定の操作単位（単位となる操作のステップ）」ごとに管理され、表示制御がなされる。所定の操作単位とは、ある程度の意味を生じさせる操作単位であり、例えば、疑似画面に含まれるアイコンや、他のページに遷移するリンクの情報などのオブジェクトに対して行われる操作である。
【００１３】
情報処理装置により送信される「疑似画面に対して行われた操作」の情報は、アプリの画面に対して行われた操作に変換されて、アプリエミュレータに送信される。アプリエミュレータは、入力された操作に応じて疑似的にアプリを実行し、その結果である疑似画面の画面情報を情報処理装置に送信する。
【００１４】
そして、情報処理装置は、疑似画面に対して行われた「操作に応じたイベントの内容を示すイベント画面」と、アプリエミュレータから取得した画面情報に基づく疑似画面とを含むインターフェース画面を表示部に表示させるための情報を生成し、表示部に表示させる。
【００１５】
＜第１実施形態＞
［全体構成］
図１は、情報処理装置を含む情報処理システム１の構成を示す図である。情報処理システム１は、例えば、端末装置１０と、サーバ装置４０と、アプリエミュレータ６０と、記憶装置７０とを備える。これらの装置は、ネットワークを介して互いに通信する。ネットワークは、例えば、ＷＡＮ（Wide Area Network）やＬＡＮ（Local Area Network）、インターネット、専用回線、無線基地局、プロバイダなどを含む。本実施形態では、端末装置１０が、「情報処理装置」の一例である。
【００１６】
端末装置１０は、表示部に表示させた疑似画面に対して行われた操作の操作情報をサーバ装置４０に送信したり、その操作情報に対するアプリの実行結果（変換後画面情報）を取得したりする。そして、端末装置１０は、上記処理に基づいて操作や画面の遷移に関するシナリオを生成する。生成されたシナリオは、記憶装置７０に記憶される。サーバ装置４０は、アプリエミュレータ６０にアプリを実行させるために、端末装置１０から取得した操作情報を変換後操作情報に変換し、変換した変換後操作情報をアプリエミュレータ６０に送信する。また、サーバ装置４０は、端末装置１０の表示部に疑似画面を表示させるために、アプリエミュレータ６０により実行されたアプリの実行結果である画面情報を、変換後画面に変換し、変換した変換後画面情報を端末装置１０に送信する。
【００１７】
アプリエミュレータ６０は、例えば、サーバ装置４０により送信された変換後操作情報に基づいて、仮想環境においてアプリに変換後操作情報に応じた操作に対応する処理を実行させる。アプリエミュレータ６０は、アプリに実行させた処理結果をサーバ装置４０に送信する。処理結果とは、例えば、アプリの処理により遷移した実行後画面情報である。
【００１８】
［端末装置の機能構成］
図２は、端末装置１０の機能構成の一例を示す図である。端末装置１０は、例えば、パーソナルコンピュータや、タブレット端末等である。以下の説明では、端末装置１０は、パーソナルコンピュータであるものとして説明する。
【００１９】
端末装置１０は、例えば、通信部１２と、生成部１４と、表示制御部１６と、マスター制御部１８と、受付部２０と、表示部２２と、記憶部３０とを備える。生成部１４、表示制御部１６、およびマスター制御部１８は、例えば、ＣＰＵ（Central Processing Unit）等のハードウェアプロセッサが、フラッシュメモリなどの記憶部３０に記憶されたプログラムを実行することにより実現される。プログラムは、例えば、ネットワークを介してサーバ装置４０等からダウンロードされてもよいし、予め端末装置１０にプリインストールされていてもよい。前者の場合、プログラムは、ウェブページに付随するスクリプトであってもよい。また、これらの機能部は、ＬＳＩ（Large Scale Integration）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field-Programmable Gate Array）、ＧＰＵ（Graphics Processing Unit）等のハードウェアによって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。また、上記のプログラムは、予め記憶部３０に格納されていてもよいし、ＤＶＤやＣＤ−ＲＯＭなどの着脱可能な記憶媒体に格納されており、記憶媒体が端末装置１０のドライブ装置に装着されることで記憶部３０にインストールされてもよい。記憶部３０は、例えば、ＲＯＭ（Read Only Memory）、フラッシュメモリ、ＳＤカード、ＲＡＭ（Random Access Memory）、レジスタ等によって実現される。記憶部３０には、後述するシナリオ情報３２が記憶されている。第１実施形態において、受付部２０が「第１取得部」の一例であり、通信部１２が「第２取得部」の一例である。
【００２０】
通信部１２は、ネットワークインターフェースカード（Network Interface Card）等の通信インターフェースを含む。通信部１２は、受付部２０により受け付けられた疑似画面に対して行われた操作に応じてアプリが実行する処理に応じて表示される疑似画面の画面情報を取得する。
【００２１】
生成部１４は、受付部２０により受け付けられた一連の操作をアプリに実行させるための操作シナリオを生成する。
【００２２】
表示制御部１６は、受付部２０に対して行われた操作に応じたイベントを示すイベント画面と、通信部１２により取得された画像情報に基づく疑似画面とを含むインターフェース画面を表示部２２に表示させる。「操作に応じたイベントの内容」とは、例えば、疑似画面に対して行われた操作の内容、またはその操作に応じてアプリが実行した結果（画面情報）を含む。
【００２３】
表示制御部１６は、例えば、サーバ装置４０により送信された画像の元情報を取得してレンダリングを行う。サーバ装置４０により送信された画像の元情報は、例えば、端末装置１０の表示部２２に表示される態様に合わせて画像およびそのレイアウトが調整済の情報である。画像およびそのレイアウトが調整されていない画像の元情報を取得した場合、表示制御部１６は、取得した画像の元情報を調整してからレンダリングを行ってもよい。この場合、表示制御部１６は、調整のための変換情報をサーバ装置４０から取得し、画像の元画像を調整してもよいし、自装置に記憶された調整のための変換情報を参照して画像の元画像を表示部２２に表示させるために調整してもよい。表示制御部１６は、サーバ装置４０により送信された情報や、ユーザの操作等に基づいてインターフェース画面を表示部２２に表示させる。通信部１２は、受付部２０により受け付けられた操作の情報をサーバ装置４０に送信する。
【００２４】
マスター制御部１８は、例えば、通信部１２に自装置で処理された情報を他装置に送信させたり、他装置から送信された情報を取得させたりする。また、マスター制御部１８は、受付部２０に対して行われた操作の内容を解釈し、操作の内容を示す操作情報を、通信部１２を用いてサーバ装置４０に送信する。
【００２５】
受付部２０は、疑似画面に対して行われた操作を受け付ける。受付部２０は、マウスや、キーボード、表示部２２と一体として形成されるタッチパネル等である。表示部２２は、各種情報を表示するディスプレイ装置である。
【００２６】
［端末装置１０に表示される画面］
図３は、端末装置１０に表示されるインターフェース画面ＩＭ１の一例を示す図である。インターフェース画面ＩＭ１は、例えば、第１画面ＩＭ１−１、第２画面ＩＭ１−２、および第３画面ＩＭ１−３を含む。第１画面ＩＭ１−１は、アプリによって実行されている画面を疑似的に示す疑似画面である第４画面ＩＭ１−４を含む。第４画面ＩＭ１−４を、仮想実行画面と称してもよい。第２画面ＩＭ１−２は、疑似画面において実行された操作の内容、および、操作に応じて表示された画面の説明などを含む。第２画面ＩＭ１−２を、イベント画面（シナリオ生成画面）と称してもよい。第３画面ＩＭ１−３には、ユーザが登録した情報（ユーザによって定義された情報）が表示される。ユーザが登録した情報とは、例えば、疑似画面における操作の内容、または操作によって第１画面ＩＭ１−１に表示された画面に対して、ユーザがネーミングした情報である。
【００２７】
インターフェース画面ＩＭ１において操作が実行されると、アプリが連動して動作する（現実的には、前述のように疑似画面に対して行われた操作の内容がアプリエミュレータ６０に送信され、アプリエミュレータ６０においてテスト用の端末装置に対してアプリの実行がされるものであるが、以下では簡略的にこのように説明する）。そして、連動による動作により遷移した画面が第４画面ＩＭ１−４に反映される。また、第２画面ＩＭ１−２に、第４画面ＩＭ１−４において行われた操作の内容と、操作に応じて遷移した画面の内容とが表示される。
【００２８】
［サーバ装置の機能構成］
図４は、サーバ装置４０の機能構成の一例を示す図である。サーバ装置４０は、例えば、情報取得部４２と、情報制御部４４と、情報送信部４６と、記憶部５０とを備える。情報取得部４２、情報制御部４４、および情報送信部４６は、ＣＰＵ等のハードウェアプロセッサが、フラッシュメモリなどの記憶部５０に記憶されたプログラムを実行することにより実現される。プログラムは、例えば、ネットワークを介して所定のサーバ装置からダウンロードされてもよいし、予めサーバ装置４０にプリインストールされていてもよい。また、これらの機能部は、ＬＳＩ、ＡＳＩＣ、ＦＰＧＡ、ＧＰＵ等のハードウェアによって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。また、上記のプログラムは、予め記憶部５０に格納されていてもよいし、ＤＶＤやＣＤ−ＲＯＭなどの着脱可能な記憶媒体に格納されており、記憶媒体がサーバ装置４０のドライブ装置に装着されることで記憶部５０にインストールされてもよい。記憶部５０は、例えば、ＲＯＭ、フラッシュメモリ、ＳＤカード、ＲＡＭ、レジスタ等によって実現される。
【００２９】
記憶部５０には、例えば、ウェブページ情報５２、シナリオアプリ５４、および位置対応情報５６が記憶されている。ウェブページ情報５２は、端末装置１０に提供されるウェブページの情報である。シナリオアプリ５４は、端末装置１０と協働して、端末装置１０の表示部２２にイベント画面または疑似画面を表示させたり、シナリオを生成したりする。例えば、端末装置１０の要求に基づいて、シナリオアプリ５４に含まれるプログラムとウェブページとは互いに対応付けられて端末装置１０に提供される。
【００３０】
［対応情報］
図５は、対応情報５６の内容を概念的に示す図である。対応情報５６は、例えば、疑似画面における区画領域の位置情報（座標）と、アプリの画面における区画領域の位置情報との対応関係を示す情報である。区画領域は、画面が所定の規則に従って分割された領域である。また、対応情報５６には、端末装置１０における操作と、アプリエミュレータ６０により実行される操作との対応情報が記憶されている。本実施形態では、対象のアプリはスマートフォンなどの携帯端末装置において実行されるものを想定しているため、例えば、疑似画面において、クリック操作が行われた場合、タップ操作に変換される。また、例えば、疑似画面において、ドラッグ操作が行われた場合、スワイプ操作に変換される。変換された操作情報を「変換後操作情報」と称する場合がある。
【００３１】
情報取得部４２は、端末装置１０またはアプリエミュレータ６０により送信された情報を取得する。
【００３２】
情報制御部４４は、対応情報５６を参照して、アプリの疑似画面に対して行われた操作の操作情報を、変換後操作情報に変換し、変換した変換後操作情報をアプリエミュレータ６０に送信する。また、情報制御部４４は、対応情報５６を参照して、アプリエミュレータ６０により送信されたアプリが実行された後の画面情報（実行後画面情報）を、端末装置１０の表示部２２の第４画面ＩＭ１−４に表示させる画像の画面情報に変換し、変換した実行後画面情報を端末装置１０に送信する。
【００３３】
情報送信部４６は、自装置が取得した情報、または自装置で処理した情報を他装置に送信する。
【００３４】
［シーケンス図］
図６は、情報処理システム１により行われる処理の一例を示す図である。端末装置１０は、操作情報および操作された位置を示す位置情報を取得し（Ｓ１０）、取得した操作情報と位置情報を対応付けた操作シナリオ項目を生成すると共に、操作情報を表示部２２の第２画面ＩＭ１−２に表示させる（Ｓ１２）。次に、端末装置１０は、Ｓ１０で取得した操作情報および位置情報をサーバ装置４０に送信する（Ｓ１４）。
【００３５】
サーバ装置４０は、端末装置１０から受信した操作情報および位置情報をアプリエミュレータ６０に送信する情報に変換し（Ｓ１６）、変換した変換後操作情報および変換後位置情報をアプリエミュレータ６０に送信する（Ｓ１８）。
【００３６】
アプリエミュレータ６０は、サーバ装置４０から受信した変換後操作情報および変換後位置情報に基づいて、アプリを実行し（Ｓ２０）、実行後画面情報をサーバ装置４０に送信する（Ｓ２２）。なお、アプリが実行され、画面が変更されない場合であっても、アプリの画面の情報が実行後画面情報としてサーバ装置４０に送信されてもよい。
【００３７】
サーバ装置４０は、アプリエミュレータ６０から受信した実行後画面情報を、端末装置１０の表示部２２に表示させる画面情報に変換し（Ｓ２４）、変換した実行後画面情報を端末装置１０に送信する（Ｓ２６）。
【００３８】
端末装置１０は、サーバ装置４０から受信した実行後画面情報と、操作前の画面情報とを比較して、画面情報に変化が生じているか否かを判定する（Ｓ２８）。例えば、端末装置１０は、実行後画面情報の画面の分割領域ごとの特徴量と、操作前の画面情報の画面の分割領域ごとの特徴量とを比較して、画面が変化しているか否か判定する。比較した分割領域ごとの特徴量に差異が存在する場合、画面は変化したと判定される。
【００３９】
端末装置１０は、Ｓ２８で画面に変化が生じていると判定した場合、変化が生じていることを示す情報、および実行後画面情報の画面を表示部２２に表示させる（Ｓ３０）。端末装置１０は、実行後画面情報が表示部２２に表示されたこと（すなわちアプリが第４画面ＩＭ１−４の画面を表示したこと）を示す情報を、Ｓ１０の操作情報に対応付けた画面シナリオ項目を生成し、操作に応じて疑似画面が変更されたことを示す情報を表示部２２の第２画面ＩＭ１−２に表示させる（Ｓ３２）。以下、操作シナリオ項目、または画面シナリオ項目のうち一方または双方を含むものを、単に「シナリオ」と称する場合がある。
【００４０】
［画面変化とシナリオ生成過程の具体例］
図７は、画面変化とシナリオの生成過程の具体例を示す図である。例えば、インターフェース画面ＩＭ２に含まれる第４画面ＩＭ２−４において、検索ボタンが操作された場合、操作の対象要素のネーミングを登録するための（対象要素を定義するための）、第５画面ＩＭ２−５（操作受付ウインドウ）が表示される。対象要素とは、疑似画面が操作された場合にアプリが連動して操作を受け付ける領域（例えば、疑似画面（アプリの画面）に表示された所定のオブジェクトや、所定のアイコン）である。第５画面ＩＭ２−５において操作の対象要素が登録された場合、登録された情報（検索ボタン）が第２画面ＩＭ２−２における操作の内容（変換後操作情報の内容）に対応付けられて表示される。
【００４１】
図８は、検索ボタンが操作された場合のインターフェース画面ＩＭ３の一例を示す図である。例えば、図８に示すように第２画面ＩＭ３−２内に「検索ボタンをタップする」という対象要素と操作の内容とが表示される。そして、「検索ボタンをタップする」という操作の内容と、操作された位置情報とが対応付けられて、操作シナリオ項目として生成される。なお、疑似画面に対する操作が行われ、一度定義された操作と同様の操作が行われた場合、既に定義された操作の定義名が第５画面ＩＭ３−２、第５画面ＩＭ２−１に表示される。
【００４２】
上述したように、検索ボタンが操作されると、アプリの画面に連動して、図９に示すように疑似画面においても検索画面が表示され、第５画面ＩＭ４−５（疑似画面受付ウインドウ）に示す検索画面を定義するための画面が表示される。
【００４３】
図９は、検索画面を定義するインターフェース画面ＩＭ４の一例を示す図である。例えば、ユーザが受付部２０を操作してページを定義することができる。例えば、ユーザが、表示されたページを「検索画面」と定義した場合（疑似画面を定義した場合）、画面は図１０に示す画面に変更される。
【００４４】
図１０は、検索画面が表示されたことを示すインターフェース画面ＩＭ５の一例を示すである。例えば、図１０に示すように第２画面ＩＭ５−２内に「検索画面が表示される」という情報が表示される。そして、「検索画面が表示される」と定義されたことを示す情報と、定義された画面情報の特徴量とが対応付けられて、画面シナリオ項目として生成される。
【００４５】
なお、疑似画面に対する操作が行われ、一度定義されたページと同様のページが表示部２２に表示された場合、既に定義されたページの定義名が第５画面ＩＭ５−２や第４画面４−２に表示される。
【００４６】
上述したように、端末装置１０の表示部２２において、疑似画面におけるユーザの操作、および操作に対するアプリの処理結果が表示される。また、端末装置１０は、操作の内容および操作に対する処理結果に基づいてシナリオ（シナリオ情報）を生成する。このように、ユーザは操作と操作結果とを確認しながら、容易にシナリオを生成することができる。
【００４７】
［シナリオのデータ構造の一例］
図１１は、シナリオ情報３２の内容の一例を示す図である。シナリオ情報３２は、操作シナリオ項目と画面シナリオ項目とを含む情報である。例えば、操作シナリオ項目「検索ボタンをタップする」の内容は、操作の内容「位置「×，×」をタップする操作すること」である。例えば、画面シナリオ項目の内容は、検索ボタンがタップされると、「検索画面」と定義された「画像情報３」が表示されることである。
【００４８】
図１２は、シナリオ情報３２に含まれるページ関連情報３４の内容の一例を示す図である。例えば、ページ関連情報３４には、定義されたページの名称（例えば、トップページや検索画面などの名称）、ページ内に含まれる定義された対象要素の情報、その対象要素の位置情報、および定義された対象要素が操作された場合に実行される画面の情報とその操作内容が互いに対応付けられた情報である。
【００４９】
上述したシナリオ情報３２およびページ関連情報３４が生成されることにより、ユーザによって定義された画面、画面が実行されるための操作の内容、および操作された位置情報が互いに対応付けられる。
【００５０】
［フローチャート（端末装置１０）］
図１３は、端末装置１０により実行される処理の流れを示すフローチャートである。まず、受付部２０が、疑似画面に対して実行された操作を受け付けるまで待機する（Ｓ４０）。操作が受け付けられると、表示制御部１６は、操作を定義するための操作受付ウインドウを表示部２２に表示させる（Ｓ４２）。表示制御部１６は、操作受付ウインドウに入力された情報を操作に対応付けて表示部２２に表示させる（Ｓ４４）。この場合、生成部１４は、操作と、操作に対して定義された情報とを対応付けて記憶部３０にシナリオ情報３２またはページ関連情報３４として記憶させる。次に、通信部１２は、Ｓ４０で受付部２０が受け付けた操作の情報を、サーバ装置４０に送信する（Ｓ４６）。
【００５１】
次に、通信部１２は、サーバ装置４０から実行後画面情報を取得するまで待機する（Ｓ４８）。実行後画面情報が取得されると、表示制御部１６が、取得した実行後画面情報の画面と、操作される前の画面とを比較し（Ｓ５０）、画面に変化が存在するか否かを判定する（Ｓ５２）。変化が存在しない場合、本フローチャートの１ルーチンの処理が終了する。
【００５２】
変化が存在する場合、表示制御部１６は、変化した画面は定義済の画面情報であるか否かを判定する（Ｓ５４）。定義済の画面情報である場合、定義済である情報が表示部２２に表示され、本フローチャートの１ルーチンの処理が終了する。定義済の画面情報でない場合、表示制御部１６は、画面情報を定義するための疑似画面受付ウインドウを表示部２２に表示させる（Ｓ５６）。次に、表示制御部１６は、疑似画面受付ウインドウに入力された情報を操作に対応付けて表示部２２に表示させる（Ｓ５８）。この場合、生成部１４は、画面を変更させた操作と、操作に対応する実行後画面情報の画面と、操作に対して定義された情報とを対応付けて記憶部３０にシナリオ情報３２またはページ関連情報３４として記憶させる。これにより本フローチャートの１ルーチンの処理が終了する。
【００５３】
上述したように、端末装置１０が、イベント画面と、疑似画面とを表示部２２に表示させながら、シナリオを生成することにより、アプリの動作のテストの自動化を簡便に行わせることができる。
【００５４】
［フローチャート（サーバ装置４０）］
図１４は、サーバ装置４０により実行される処理の流れを示すフローチャートである。まず、情報取得部４２は、端末装置１０により送信された操作の情報（例えば、クリック操作されたことを示す情報、クリック操作された位置の情報）を取得するまで待機する（Ｓ６０）。操作の情報を取得した場合、情報制御部４４は、対応情報５６を参照して、操作の情報を変換後操作情報および変換後位置情報に変換し、変換後操作情報および変換後位置情報をアプリエミュレータ６０に送信する（Ｓ６２）。
【００５５】
次に、情報取得部４２は、アプリエミュレータ６０に送信されたアプリの実行結果（実行後画面情報）を取得するまで待機する（Ｓ６４）。アプリエミュレータ６０に送信された実行後画面情報を取得すると、情報制御部４４は、取得した実行後画面情報を端末装置１０の表示部２２に表示させるための情報に変換し、変換した実行後画面情報を端末装置１０に送信する（Ｓ６６）。これにより本フローチャートの１ルーチンの処理が終了する。
【００５６】
このように、サーバ装置４０が、端末装置１０またはアプリエミュレータ６０から取得した情報を、送信先で利用するのに適した情報に処理する。これにより、端末装置１０は、上述したようにシナリオを容易に作成することができる。この結果、アプリの動作のテストの自動化を簡便に行わせることができる。
【００５７】
［その他］
表示制御部１６は、疑似画面におけるマウスポインタの位置に対して、その位置に対応するオブジェクトを示すオブジェクト枠を疑似画面に重畳させて表示させてもよい。オブジェクトとは、例えば、操作することによって、リンク先の画面に遷移することが可能な画面上の対象である。図１５は、疑似画面にオブジェクト枠が重畳されたインターフェース画面ＩＭ６の一例を示す図である。例えば、端末装置１０の記憶部３０には、オブジェクトの位置を示す位置情報が記憶されている。この位置情報は、例えば、サーバ装置４０により送信された情報であって、サーバ装置４０において、実際のアプリの画面のオブジェクトの位置情報が、疑似画面における位置情報に変換された情報である。
【００５８】
また、生成部１４は、疑似画面における操作に基づいて、特定操作（例えば、スワイプ操作や、フリック操作等）が行われたことを示すシナリオを生成してもよい。例えば、端末装置１０に含まれる操作部（例えば、マウスやキーボード）の所定のボタンを操作しながら、マウスポインタを操作した場合、特定操作が行われたことを示すシナリオを生成する。また、表示制御部１６は、特定操作が行われたことを示す画像を疑似画面に重畳させてインターフェース画面に表示させてもよい。図１６は、疑似画面に特定操作が行われたことを示す画像が重畳されたインターフェース画面ＩＭ７の一例を示す図である。
【００５９】
また、表示制御部１６は、操作の内容を操作シナリオ項目として確定させるための確定ボタンを表示部２２に表示させてもよい。図１７は、確定ボタンが表示されたインターフェース画面ＩＭ８の一例を示す図である。例えば、ユーザが、所定のボタンをタップ操作して、その操作を「検索ボタン」と定義した場合、表示制御部１６は、その操作をシナリオとして確定させるか否かを問い合わせる内容（確定させるアイコン、確定させないアイコン）を第５画面ＩＭ８−５に表示させてもよい。例えば、上記の操作をシナリオと確定させることがユーザによって選択された場合、「検索ボタンをタップする」という表示が、イベント画面に表示され、その操作がシナリオとして確定される。そして、生成部１４は、その操作を操作シナリオ項目として登録する。例えば、上記の操作をシナリオと確定させないことがユーザによって選択された場合、「検索ボタンをタップする」という内容が、イベント画面に表示されず、その操作はシナリオに含まれない。
【００６０】
また、表示制御部１６は、ユーザの操作に応じてイベント画面に含まれる操作のステップの順序を入れ替えてもよいし、操作または操作に応じて表示された画面のステップを削除してもよい。また、表示制御部１６は、イベント画面に表示された操作のステップの間に、所定の操作のステップを組み入れてもよい。所定の操作のステップを組み入れる場合、ユーザは、予め定義された操作を指定して操作の内容を特定してもよいし、疑似画面に対する操作を行って操作の内容を特定してもよい。上述したように、操作または画面のステップの順が入れ替えられたり、組み入れられたりされた場合、生成部１４は、上記の入れ替えや組み入れに応じて、シナリオ情報３２の操作等を入れ替えて、シナリオ情報３２の内容を修正する。
【００６１】
また、表示制御部１６は、一度定義した操作や画面、一以上の操作または画面の組み合わせ（表示内容、表示内容に基づく一又は二以上のステップやそれらからなるシナリオやその一部をパーツやパターン）を再利用してもよい。表示制御部１６は、指定された一以上の操作に応じたイベントの内容を一連の操作として定義したことを示す情報を表示部２２に表示させる。
【００６２】
図１８は、パーツやパターンの再利用について説明するためのインターフェース画面ＩＭ９の一例を示す図である。例えば、表示制御部１６は、ユーザが「トップページ」が表示された状態で、検索ボタンをタップし、「検索画面」を表示させる動作をアプリに実行させる処理を選択する操作を行うことで、選択された操作等を「操作パターン１（図１８、ＩＭ９−５）」として定義してもよい。この場合、生成部１４は、該当する操作シナリオ項目および画面シナリオ項目を「操作パターン１」として操作シナリオに登録する。また、「〇〇ブラウザを開く」および「一度だけ開く」をタップする操作が「操作パターン２」として定義されてもよい。また、ユーザの操作によって操作パターンが、所定の操作の次に組み込まれることが指示された場合、その操作パターンがイベント画面に表示され、シナリオ情報３２に登録される。このように、既に定義された操作等を再利用することができるため、ユーザの利便性が向上する。
【００６３】
［テスト実行装置の機能構成］
情報処理システム１は、更にテスト実行装置８０を備える。図１９は、テスト実行装置８０の機能構成の一例を示す図である。テスト実行装置８０は、アプリが開発者の意図したように動作するか否かのテストを自動で行う。テスト実行装置８０は、例えば、通信部８２と、実行制御部８４と、判定部８６と、表示部８８と、記憶部９０とを備える。記憶部９０には、記憶装置７０から取得されたシナリオ情報９２が記憶されている。
【００６４】
通信部８２は、記憶装置７０に記憶されたシナリオ情報９２を取得する。実行制御部８４は、シナリオ情報９２を参照して、テスト対象の端末装置にインストールされたアプリを実行させる。実行制御部８４は、アプリの操作の内容と、アプリの実行結果とを表示部８８に表示させる。判定部８６は、シナリオ情報９２を参照して、アプリの操作の内容と、端末装置から取得した操作に対するアプリの実行結果と一致するか否かを判定する。詳細は後述する。そして、判定部８６は、判定結果を表示部８８に表示させる。
【００６５】
［シナリオ実行処理］
図２０は、テスト実行装置８０により実行される処理の流れを示すフローチャートである。実行制御部８４は、シナリオ情報９２を参照して、アプリに実行させる操作情報を端末装置に出力し、テスト対象の端末装置にインストールされたアプリを実行させる（Ｓ７０）。判定部８６は、Ｓ７０で出力した操作情報と、その操作情報に対して実行されたアプリの実行結果を取得する（Ｓ７２）。
【００６６】
次に、判定部８６は、Ｓ７２で取得した情報に基づいて、アプリの実行結果（画面情報）と、シナリオの内容（画面情報）とが一致するか否かを判定する（Ｓ７４）。一致しない場合、判定部８６は、アプリの実行結果と、シナリオの内容とが一致しなかったことを示す情報を表示部８８に表示させ、通知を行う（Ｓ７６）。
【００６７】
Ｓ７４で一致した場合、またはＳ７６の処理後、判定部８６は、シナリオをすべて実行したか否かを判定する（Ｓ７８）。シナリオがすべて実行されていない場合、Ｓ７２の処理に戻り、シナリオがすべて実行された場合、Ｓ７０の処理に進む。
【００６８】
次に、判定部８６は、シナリオ情報９２に含まれる、アプリの実行結果に対して確認すべき項目である確認事項（後述する）を確認できたか否かを判定する（Ｓ８０）。確認事項を確認できなかった場合、判定部８６は、確認事項を確認できなかったことを示す情報を表示部８８に表示させ通知を行う（Ｓ８２）。Ｓ８０の処理後、または確認事項を確認できた場合、本フローチャートの１ルーチンの処理が終了する。
【００６９】
上述した処理により、テスト実行装置８０は、自動的に端末装置にインストールされたアプリに対する操作と実行結果とが、シナリオ情報の操作と操作結果と一致するか否かを自動的に判定することができる。この結果、アプリの動作のテストの自動化を簡便に行わせることができる。
【００７０】
［確認事項］
生成部１４は、例えば、受付部２０によって、操作の内容に対して確認項目を追加する操作が受け付けられた場合、その操作の内容に対して確認項目を追加してシナリオを生成してもよい。図２１は、確認項目が追加されたシナリオ情報９２Ａの内容の一例について説明するための図である。例えば、ユーザが「一度だけ開く」をタップ操作して「トップページ」が表示されている際に、「検索ボタン」をタップし、「検索画面」が表示されたものとする。この場合に、ユーザが「戻るボタン」を操作した際に、確認項目をその操作に対応付けて登録してもよい。例えば、「戻るボタン」の操作に対して、「一度だけ開く」をタップした場合と同じ画面が開くことを、確認項目としてシナリオ情報９２Ａに含められる。
【００７１】
テスト実行装置８０は、上記のフローチャートのＳ７４の処理において「戻るボタン」をタップする操作をアプリに実行させた場合に、「一度だけ開く」をタップした場合の画面（トップページ）と一致する画面が表示されるか否かを判定する。そして、一致する画面が表示されない場合、テスト実行装置８０は、表示部８８に確認項目について確認することができなかったことを示す情報を表示させる。なお、確認項目として、所定のページにおいて、所定のオブジェクトが設定された位置に表示されることや、所定の操作ボタンなどのアイコンが設定された位置に表示されることなどが追加されてもよい。
【００７２】
このように、シナリオ情報９２Ａにおいて確認項目を登録しておくことにより、自動で確認項目を満たすようにアプリが実行されているかが判定される。この結果、ユーザの利便性が向上する。
【００７３】
以上説明した第１実施形態によれば、操作に応じたイベントの内容を示すイベント画面と、画面情報に基づく疑似画面とを表示部２２に表示させるための情報を生成する表示制御部１６と、一連の操作をアプリに実行させるための操作シナリオを生成する生成部１４とを備えることにより、アプリの動作のテストの自動化を簡便に行わせることができる。
【００７４】
例えば、機種が異なる複数の端末装置やプラットフォームが異なる端末装置にアプリを提供する場合、機種ごとやプラットフォームごとにアプリが開発者の意図したように動作するかを確認する必要がある。端末装置１０により生成された操作シナリオを用いて、動作を確認することにより、アプリの動作のテストの自動化を簡便に行わせることができる。また、操作シナリオを生成する際に、表示部２２に操作シナリオの操作の内容や、操作に応じて実行されるアプリの画面が表示されるため、操作シナリオを簡便に生成することができる。この結果、アプリの動作のテストの自動化を簡便に行わせることができる。
【００７５】
なお、上述した実施形態では、疑似画面に対してユーザが操作を指定する例について説明したが、この操作は自動で行われてもよい。例えば、自動で疑似画面における位置Ａ、Ｂ…の順でタップする操作が行われ、操作ごとに表示された画面が定義されてもよい。この場合、自動で位置Ａ、Ｂ…の順でタップする操作、その操作で表示される画面がシナリオ情報として生成される。そして、テスト実行装置８０は、上述したように生成されたシナリオ情報３２に基づいて、アプリを実行させて、自動で操作と操作結果とを示す情報を生成してもよい。
【００７６】
＜第２実施形態＞
以下、第２実施形態について説明する。図２２は、情報処理装置１００の機能構成の一例を示す図である。情報処理装置１００は、疑似画面が表示された不図示の端末装置、およびアプリエミュレータ６０と通信する。情報処理装置１００は、例えば、第１取得部１０２と、情報送信部１０４と、第２取得部１０６と、生成部１０８と、表示制御部１１０と、記憶部１３０とを備える。第１取得部１０２は、アプリの画面を疑似した疑似画面に対して行われた操作の内容を示す操作情報を取得する。情報送信部１０４は、第１実施形態の情報送信部４６に相当する。すなわち、情報送信部１０４は、第１取得部１０２により取得された操作情報に基づいて操作の内容を解釈して、操作の内容を示す操作情報をアプリエミュレータ６０に送信する。第２取得部１０６は、第１実施形態の情報送信部４６に相当する。すなわち、第２取得部１０６は、第１取得部１０２により取得された疑似画面に対して行われた操作に応じてアプリが実行する処理に応じて表示される疑似画面の画面情報を取得する。
【００７７】
生成部１０８は、第１実施形態の生成部１４に相当する。すなわち、生成部１４は、第１取得部１０２により取得された操作情報に基づいて操作シナリオ項目を生成し、第２取得部１０６により取得された画面情報に基づいて画面シナリオ項目を生成する。表示制御部１１０は、第１実施形態の表示制御部１６に相当する。表示制御部１１０は、第１取得部１０２により取得された操作情報、および第２取得部１０６により取得された画面情報に基づいて、イベント画面および疑似画面を含むウェブページを生成し、情報送信部１０４を用いて生成した情報を端末装置に送信させる。
【００７８】
また、記憶部１３０には、シナリオ情報１３２と、ウェブページ情報１３４とが記憶されている。シナリオ情報１３２、およびウェブページ情報１３４に含まれる情報は、それぞれ第１実施形態のシナリオ情報３２、およびウェブページ情報５２に含まれる情報と同様の情報である。また、ウェブページ情報１３４には、表示制御部１１０により生成されたウェブページの情報が含まれる。以上説明した第２実施形態によれば、第１実施形態と同様の効果を奏することができる。
【００７９】
＜第３実施形態＞
以下、第３実施形態について説明する。図２３は、第３実施形態の情報処理装置１００Ａの機能構成の一例を示す図である。情報処理装置１００Ａは、例えば、第２実施形態の情報処理装置１００の機能構成に加え、更に、実行制御部１２６および判定部１２８を備える。実行制御部１２６および判定部１２８の機能は、第１実施形態の実行制御部８４および判定部８６の機能構成と同様である。すなわち、実行制御部１２６は、シナリオ情報１３２を参照して、テスト対象の端末装置にインストールされたアプリを実行させる。判定部１２８は、シナリオ情報１３２を参照して、アプリの操作の内容と、端末装置から取得した操作に対するアプリの実行結果と一致するか否かを判定する。表示制御部１１０は、判定部１２８の判定結果や、実行制御部１２６の処理結果等を含むウェブページを生成し、生成したウェブページの情報を端末装置に送信する。以上説明した第３実施形態によれば、第１実施形態と同様の効果を奏することができる。
【００８０】
以上説明した各実施形態によれば、アプリの画面を疑似した疑似画面に対して行われた操作を取得する第１取得部と、前記第１取得部により取得された前記疑似画面に対して行われた操作に応じて前記アプリが実行する処理に応じて表示される前記疑似画面の画面情報を取得する第２取得部と、前記操作に応じたイベントの内容を示すイベント画面と、前記画面情報に基づく前記疑似画面とを表示部に表示させるための情報を生成する表示制御部と、前記第１取得部により取得された一連の操作を前記アプリに実行させるための操作シナリオを生成する生成部とを備えることにより、アプリの動作のテストの自動化を簡便に行わせることができる。
【００８１】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【００８２】
１…情報処理システム、１０…端末装置、１２…通信部、１４…生成部、１６…表示制御部、１８…マスター制御部、２０…受付部、２２…表示部、３０…記憶部、３２…シナリオ情報、４０…サーバ装置、４２…情報取得部、４４…情報制御部、４６…情報送信部、５０…記憶部、５２…ウェブページ情報、５４…シナリオアプリ、５６…対応情報、６０…アプリエミュレータ、８０…テスト実行装置、１００，１００Ａ…情報処理装置
【図１】
2019109852.tif 000003
【図２】
2019109852.tif 000004
【図３】
2019109852.tif 000005
【図４】
2019109852.tif 000006
【図５】
2019109852.tif 000007
【図６】
2019109852.tif 000008
【図７】
2019109852.tif 000009
【図８】
2019109852.tif 000010
【図９】
2019109852.tif 000011
【図１０】
2019109852.tif 000012
【図１１】
2019109852.tif 000013
【図１２】
2019109852.tif 000014
【図１３】
2019109852.tif 000015
【図１４】
2019109852.tif 000016
【図１５】
2019109852.tif 000017
【図１６】
2019109852.tif 000018
【図１７】
2019109852.tif 000019
【図１８】
2019109852.tif 000020
【図１９】
2019109852.tif 000021
【図２０】
2019109852.tif 000022
【図２１】
2019109852.tif 000023
【図２２】
2019109852.tif 000024
【図２３】
2019109852.tif 000025