JP2015079484A - 情報処理装置、情報処理システム、情報処理方法、及び情報処理プログラム - Google Patents

情報処理装置、情報処理システム、情報処理方法、及び情報処理プログラム Download PDF

Info

Publication number
JP2015079484A
JP2015079484A JP2014129901A JP2014129901A JP2015079484A JP 2015079484 A JP2015079484 A JP 2015079484A JP 2014129901 A JP2014129901 A JP 2014129901A JP 2014129901 A JP2014129901 A JP 2014129901A JP 2015079484 A JP2015079484 A JP 2015079484A
Authority
JP
Japan
Prior art keywords
state
unit
imitation
task
information processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014129901A
Other languages
English (en)
Inventor
高橋 聡
Satoshi Takahashi
聡 高橋
秋吉 邦洋
Kunihiro Akiyoshi
邦洋 秋吉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2014129901A priority Critical patent/JP2015079484A/ja
Priority to US14/484,678 priority patent/US9892216B2/en
Publication of JP2015079484A publication Critical patent/JP2015079484A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】模倣する対象の機器における各種の状態を容易に再現可能とすること。
【解決手段】情報処理装置は、第一の定義情報に定義された操作手順に応じて、機器が実行する処理を模倣する模倣部と、前記処理の模倣に応じて発生する事象を監視して、第二の定義情報において指定された時期の到来を検知し、該検知に応じて前記模倣部の状態を、前記第二の定義情報において指定された状態に変更する状態変更部とを有し、前記模倣部は、前記状態変更部によって変更された状態において、前記機器に処理を実行させるプログラムからの要求に応じて、前記機器によって実行される処理を模倣する。
【選択図】図2

Description

本発明は、情報処理装置、情報処理システム、情報処理方法、及び情報処理プログラムに関する。
複合機等の画像形成装置においては、アプリケーションプラットフォームを有し、当該アプリケーションプラットフォームが提供するAPI(Application Program Interface)を利用したアプリケーションプログラム(以下、「アプリ」という。)の実装が可能とされているものがある。斯かるAPIが公開されることにより、画像形成装置を製造する企業のみならず、当該企業外のサードベンダ等によっても、アプリの開発を行うことが可能となる。
開発中のアプリの動作確認等は、画像形成装置を用いて行われるのが望ましい。しかし、開発者ごとに画像形成装置を用意するのは経済的ではない。また、一台の画像形成装置を複数の開発者で利用するのは効率的ではない。そこで、画像形成装置のハードウェアや、アプリケーションプラットフォーム等の動作をエミュレート又はシミュレート等(以下、「エミュレート」で統一する。)するソフトウェア(以下「エミュレータ」という。)が利用されている。例えば、エミュレータを、各開発者のPC(Personal Computer)等にインストールすることで、各開発者は、開発中のアプリの動作確認等を効率的に行うことができる。また、新機種の画像形成装置のエミュレータを用意することで、画像形成装置自体の開発と、アプリの開発とを並行して行うことも可能となる。
しかしながら、従来のエミュレータでは、エミュレート対象の画像形成装置が有する各種の状態を、ユーザの任意のタイミングで変更するのは困難であった。したがって、例えば、画像形成装置においてジャムが発生している状態、トナー切れの状態、又は用紙切れの状態等、各種の状態におけるアプリの動作を確認するのは困難であった。斯かる問題は、画像形成装置以外の機器においても同様であると考えられる。
本発明は、上記の点に鑑みてなされたものであって、模倣する対象の機器における各種の状態を容易に再現可能とすることを目的とする。
そこで上記課題を解決するため、情報処理装置は、第一の定義情報に定義された操作手順に応じて、機器が実行する処理を模倣する模倣部と、前記処理の模倣に応じて発生する事象を監視して、第二の定義情報において指定された時期の到来を検知し、該検知に応じて前記模倣部の状態を、前記第二の定義情報において指定された状態に変更する状態変更部とを有し、前記模倣部は、前記状態変更部によって変更された状態において、前記機器に処理を実行させるプログラムからの要求に応じて、前記機器によって実行される処理を模倣する。
模倣する対象の機器における各種の状態を容易に再現可能とすること。
本発明の実施の形態における情報処理装置のハードウェア構成例を示す図である。 本発明の実施の形態における情報処理装置の機能構成例を示す図である。 情報処理装置がテスト定義データに基づいて実行する処理手順の一例を説明するためのフローチャートである。 テスト定義データの一例を示す図である。 生成されるタスクの一例を示す図である。 タスク管理部が実行する処理手順の一例を説明するためのフローチャートである。 タスクが実行する処理手順の一例を説明するためのフローチャートである。
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態における情報処理装置のハードウェア構成例を示す図である。図1の情報処理装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、インタフェース装置105、表示装置106、及び入力装置107等を有する。
情報処理装置10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従って情報処理装置10に係る機能を実現する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。表示装置106はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置107はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
なお、情報処理装置10は、図1に示される構成を有する1以上の集合であるコンピュータシステムであってもよい。
図2は、本発明の実施の形態における情報処理装置の機能構成例を示す図である。図2において、情報処理装置10は、模倣部11、操作実行部12、イベント通知部13、タスク生成部14、及びタスク管理部15等を有する。これら各部は、情報処理装置10にインストールされたプログラムがCPU104に実行させる処理により実現される。また、情報処理装置10は、定義データ記憶部16を利用する。定義データ記憶部16は、例えば、補助記憶装置102、又は情報処理装置10にネットワークを介して接続されて記憶される記憶装置等を用いて実現可能である。更に、情報処理装置10には、1以上のアプリ20がインストールされる。
アプリ20は、模倣部11がエミュレートする画像形成装置(以下、「対象機器」という。)が有するアプリケーションプラットフォームにおいて動作可能なアプリケーションプログラムである。すなわち、模倣部11は、対象機器におけるアプリケーションプラットフォームと同様のAPI(Application Program Interface)をアプリ20に提供する。模倣部11は、アプリ20による当該APIの呼び出しに応じ、当該アプリケーションプラットフォームが実行する処理や、対象機器のハードウェア等の動作をエミュレート(模倣)する。したがって、模倣部11は、アプリ20に対して、対象機器と同様の動作環境を提供することができる。なお、当該APIは、関数又はメソッドであってもよいし、REST(Representational State Transfer)やSOAP(Simple Object Access Protocol)等、通信を介したインタフェースであってもよい。なお、本実施の形態において、エミュレート又は模倣には、シミュレートの意味も包含される。
操作実行部12は、定義データ記憶部16に記憶されているテスト定義データに含まれているテストシナリオを解釈し、当該テストシナリオにおいて指定された操作手順で、模倣部11に対して操作指示を入力する。当該操作指示は、ユーザによる対象機器の操作を擬似的又は仮想的に実現するものである。したがって、模倣部11は、テストシナリオに指定された操作手順に応じて対象機器が実行する処理を、擬似的又は仮想的に実行することになる。なお、テストシナリオとは、ユーザによる対象機器の操作手順を示す定義をいう。
イベント通知部13は、模倣部11による、対象機器が実行する処理の模倣の過程において発生するイベントを、タスク管理部15に通知する。イベントとは、模倣部11が対象機器の動作を模倣する過程において発生する事象に関する情報、又は当該事象の発生を示す情報である。
タスク生成部14は、定義データ記憶部16に記憶されているテスト定義データに含まれている状態変更条件に基づいて、1以上のタスクを生成する。状態変更条件とは、模倣部11の状態の変更に関する条件をいう。一つの状態変更条件は、状態を変更する時期(タイミング)を指定する情報と、当該変更後の状態を指定する情報とを組とする情報である。タスク生成部14は、状態変更条件に基づいてタスクを生成する。タスクは、状態変更条件に従って、模倣部11の状態の変更を行う。模倣部11の状態の変更とは、擬似的又は仮想的な対象機器の状態の変更に相当する。タスクの実体は、スレッド又はプロセスであってもよいし、オブクト指向プログラミングにおけるオブジェクトであってもよい。
タスク管理部15は、生成されたタスクの管理や、タスクに対するイベントの配信(通知)等を行う。各タスクは、タスク管理部15から通知されるイベントに基づいて、当該タスクに対応する状態変更条件に指定された変更する時期(以下、「変更時期」という。)の到来を検知する。
以下、情報処理装置10が実行する処理手順について説明する。図3は、情報処理装置がテスト定義データに基づいて実行する処理手順の一例を説明するためのフローチャートである。
例えば、ユーザによって、テストの開始指示が入力されると、タスク生成部14は、定義データ記憶部16に記憶されている1以上のテスト定義データのうち、テストの開始指示において指定された識別名に対応するテスト定義データから、状態変更条件に関する定義を読み込む(S101)。当該識別名は、例えば、テスト定義データを格納するファイル名であってもよい。
図4は、テスト定義データの一例を示す図である。図4に示されるテスト定義データ500は、次のようなユースケースにおけるテストを可能とするものである。
300ページの文書の印刷を実行する過程において、99枚目の印刷時にジャムが発生する。ユーザがジャム状態を解除すると、印刷が再開され、198枚目の印刷時に、トナー切れが発生する。メモリ消費量が、20Mbyteを超えるページの解析時にメモリフルが発生する。
図4において、テスト定義データ500は、XML(eXtensible Markup Language)形式で記述されている。そこで、テスト定義データ500の内容については、XMLに関する用語を用いて説明する。なお、XML以外の形式によって、テスト定義データ500が定義されてもよい。
テスト定義データ500は、<condition>タグで囲まれたcondition要素510と、<scenario>タグで囲まれたscenario要素520とを含む。condition要素510は、状態変更条件に関する定義に相当し、scenario要素520は、テストシナリオに関する定義に相当する。したがって、ステップS101では、condition要素510が読み込まれる。
図4において、condition要素510は、jam要素511、tonerend要素512、及びmemoryfull要素513を子要素として含む。jam要素511、tonerend要素512、及びmemoryfull要素513は、それぞれ一つの状態変更条件に相当する。
jam要素511は、模倣部11においてジャムを発生させる時期(模倣部11をジャム状態に移行させる時期)を規定する定義である。jam要素511は、and要素を子要素として含む。and要素は、当該and要素に含まれる複数の子要素が示す条件に関する論理演算を意味する。すなわち、and要素は、当該複数の子要素の全ての条件が満たされることが必要であることを示す。なお、図示されていないが、or要素は、当該or要素に含まれる複数の子要素のいずれかが示す条件が満たされれば十分であることを示す。その他の論理演算に対応する要素が、and要素の代わりに用いられてもよい。
and要素は、count要素及びtiming要素を子要素として含む。count要素の値は、印刷対象のページ番号を示す。したがって、図4の例において、当該count要素は、99枚目の印刷時を示す。timing要素の値は、印刷処理の過程における、特定のタイミング、又は印刷処理の過程において遷移する模倣部11の状態を示す。
本実施の形態において、印刷処理に関するtiming要素には、例えば、「initializing」、「ready」、「receiving」、「parsing」、「loading」、「printing」等の値が指定可能である。
「initializing」は、印刷処理を対象機器に実行させるプログラムの初期化処理の状態を示す。「ready」は、印刷データの受け付けが可能な待機状態を示す。「receiving」は、印刷データの受信を開始してから終了するまでの状態を示す。「parsing」は、印刷データの1ページ分の解析中の状態を示す。「loading」は、1枚分の印刷用紙の給紙中の状態を示す。「printing」は、1ページ分の印刷データを印刷用紙に転写し、印刷用紙の排出を開始する状態を示す。
上記より、jam要素511は、99枚目の給紙時に模倣部11をジャム状態に移行させるという条件を示す。
また、tonerend要素512は、模倣部11においてトナー切れを発生させる時期(模倣部11をトナー切れ状態に移行させる時期)を規定する定義である。tonerend要素512の子要素であるand要素は、count要素とtiming要素を子要素として含む。count要素及びtiming要素の意味は上記した通りである。但し、tonerend要素512内のtiming要素の値は、「printing」である。
上記より、tonerend要素512は、198枚目の転写時に模倣部11をトナー切れ状態に移行させるという条件を示す。
更に、memoryfull要素513は、模倣部11において、メモリの消費量が上限に達した状態(メモリフルの状態)を発生させる時期を規定する定義である。memoryfull要素513要素の子要素であるand要素は、limit要素とtiming要素を子要素として含む。limit要素の値は、メモリの消費量に対する上限値を示す。「20m」は、20Mbyteを示す。すなわち、メモリの消費量が20Mbyteに達すると、メモリフルとなることが示されている。timing要素については上述した通りである。
上記より、memoryfull要素513は、或るページの印刷データの解析中に、メモリの消費量が20Mbyteに達したら(すなわち、20Mbyteを超えるページが読み込まれたら)、模倣部11をメモリフル状態に移行させるという条件を示す。本実施の形態では、印刷処理に関するプログラムの起動に5Mbyteを消費する。また、印刷データの各ページの処理には5Mbypte〜10Mbyteのメモリが消費されるが、220ページに限って17Mbyteのメモリが消費されるように設定されていることとする。すなわち、220ページ目において、プログラムの起動分のメモリの消費量と当該ページにおけるメモリの消費量との合計が上限値である20Mbyteを超え、メモリフルが発生する。
なお、用紙切れや、何らかの部品の故障等、対象機器で実際に発生しうる各種の状態が、timing要素の値として指定可能とされてもよい。また、実行する処理の種類によって、timeing要素に指定可能な値が異なってもよい。例えば、スキャン処理に関しては、「initializing」、「ready」、「loading」、「processing」、及び「waiting」等の値が、timing要素に指定可能とされてもよい。ここで、「initializing」は、スキャン処理を対象機器に実行させるプログラムの初期化処理の状態を示す。「ready」は、スキャンデータの受け付けが可能な待機状態を示す。「loading」は、スキャンされる用紙を給紙中の状態を示す。「processing」は、スキャン中を示す。「waiting」は、或るページのスキャンが完了してから次のページに関してready状態になるまでの待機状態を示す。
続いて、タスク生成部14は、読み込まれた状態変更条件に関する定義(condition要素510)に基づいて、タスクを生成する(S102)。本実施の形態において、condition要素510に基づいて生成されるタスクは、図5に示される通りである。
図5は、生成されるタスクの一例を示す図である。図5には、ジャム発生タスクt1、ジャム復帰タスクt11、トナー切れ発生タスクt2、トナー切れ復帰タスクt21、及びメモリフル発生タスクt3が示されている。
ジャム発生タスクt1及びジャム復帰タスクt11は、jam要素511に基づいて生成されるタスクである。ジャム発生タスクt1は、99枚目の給紙時にジャムを発生させる(模倣部11をジャム状態に移行させる)タスクである。ジャム復帰タスクt11は、ジャムの原因の除去作業が行われた後に、模倣部11の状態をジャムの発生していない状態に復帰させるタスクである。
トナー切れ発生タスクt2及びトナー切れ復帰タスクt21は、tonerend要素512に基づいて生成されるタスクである。トナー切れ発生タスクt2は、198枚目の給紙時にトナー切れを発生させる(模倣部11をトナー切れ状態に移行させる)タスクである。トナー切れ復帰タスクt21は、トナーの交換作業が行われた後に、模倣部11の状態をトナー切れの発生していない状態に復帰させるタスクである。
メモリフル発生タスクt3は、memoryfull要素513に基づいて生成されるタスクである。メモリフル発生タスクt3は、メモリの消費量が20Mbyteを超えたときにメモリフルを発生させる(模倣部11をメモリフル状態に移行させる)タスクである。
なお、jam要素511とtonerend要素512については、一つの状態変更条件に基づいて、或る状態へ移行させるタスクと、当該状態から復帰させるタスクとの二つのタスクが生成される。または、jam要素511及びtonerend要素512には、或る状態への変更と、当該状態からの復帰とに関する二つの状態変更条件が含まれていると考えられてもよい。
本実施の形態では、一つの状態変更条件に基づいて生成される、或る状態へ移行させるタスクと、当該状態から復帰させるタスクとの二つのタスクとは、親子関係を有する。親子関係とは、親の(前段の)タスクが終了した後に、子のタスクが開始されるといった、実行順における直列的な関係をいう。親のタスクが終了しなければ、子のタスクにとって前提となる状態が発生しないため、子のタスクを開始する意義が希薄であるからである。なお、親のタスクの終了は、親のタスクに設定された条件が満たされ、親のタスクによる状態の変更が行われることによって実現される。図5では、ジャム発生タスクt1とジャム復帰タスクt11とが親子関係を有し、トナー切れ発生タスクt2とトナー切れ復帰タスクt21とが親子関係を有する。
一方、各親のタスクは、兄弟関係を有する。兄弟関係を有するタスクは、実行順に関して並列的な関係を有する。但し、ここでいう並列的な関係とは、完全に並列に実行されることまで要求されない。ここでいう並列的な関係とは、当該関係に有る各タスクの実行の開始が、他のタスクの終了まで制限されない関係を意味する。図5では、ジャム発生タスクt1、トナー切れ発生タスクt2、及びメモリフル発生タスクt3が、兄弟関係を有する。
なお、生成された各タスクには、当該タスクに対応する条件と、当該条件が満たされた場合に実行すべき処理を示す情報が設定される。ジャム発生タスクt1に対応する条件は、99枚目の給紙である。当該条件が満たされた場合にジャム発生タスクt1が実行すべき処理は、模倣部11をジャム状態に移行させることである。ジャム復帰タスクt11に対応する条件は、ジャムの原因の除去である。当該条件が満たされた場合にジャム復帰タスクt11が実行すべき処理は、模倣部11をジャム状態から復帰させることである。トナー切れ発生タスクt2に対応する条件は、199枚目の排紙である。当該条件が満たされた場合にトナー切れ発生タスクt2が実行すべき処理は、模倣部11をトナー切れ状態に移行させることである。トナー切れ復帰タスクt21に対応する条件は、トナーの交換である。当該条件が満たされた場合にトナー切れ復帰タスクt21が実行すべき処理は、模倣部11をトナー切れ状態から復帰させることである。なお、各タスクに設定された条件を、以下、「タスクの条件」という。また、生成されたタスクは、タスク管理部15に渡され、タスク管理部15によって管理される。
続いて、操作実行部12は、テストの開始指示において指定された識別名に対応するテスト定義データに含まれている、テストシナリオに関する定義を読み込む(S103)。図4の例によれば、scenario要素520が読み込まれる。
図4において、scenario要素520は、5つのstep要素を含む。一つのstep要素は、scenario要素520が表現する、対象機器に対する操作手順のうちの一つの操作に対応する。すなわち、各step要素の子要素は、対象機器に対する操作の種別を示す。例えば、print要素は、当該要素の値が示すデータの印刷指示を示す。wait要素は、当該要素の値が示す時間だけ待機することを示す。removejam要素は、ジャムの原因となっている用紙の除去操作を示す。changetoner要素は、トナーの交換を示す。
上記より、scenario要素520は、testdata.prnというデータの印刷指示がユーザによって入力され、10分経過後、ユーザによってジャムが除去され、更に、10分経過後、ユーザによってトナーが交換される、という操作手順を示す。
なお、testdata.prnは、300ページのデータである。また、2番目のステップでの10分間の待機は、ジャムが発生するまでの99枚の印刷に要する時間+αに対応する。本実施の形態において、対象機器の印刷性能は、50ppm(1分間あたり50枚)であるとする。そうすると、対象機器は、99枚の印刷に2分弱を要する。更に、ユーザがジャムの原因の除去を完了するまでの時間を考慮して、2番目のステップでは10分間の待機時間が設けられている。4番目のステップにおいても、99枚目から198枚目までの印刷時間と、トナーの交換に要する時間を考慮して、10分間の待機時間が設けられている。
続いて、操作実行部12は、テストシナリオにしたがった手順で、模倣部11に対して操作指示を入力する(S104)。その結果、模倣部11は、当該操作指示に応じて対象機器によって実行される処理を模倣する。
続いて、タスク管理部15が実行する処理手順について説明する。図6は、タスク管理部が実行する処理手順の一例を説明するためのフローチャートである。
タスク管理部15は、イベント通知部13からのイベントの通知を待機している(S201)。すなわち、イベント通知部13は、テストシナリオに従った操作指示の入力に応じて模倣部11が対象機器による処理を模倣する過程において発生するイベントをタスク管理部15に通知する。例えば、印刷の実行に関しては、1枚ごとの給紙又は排紙を示すイベントが通知される。ジャムの原因の除去に関しては、ジャムの原因の除去を示すイベントが通知される。トナーの交換に関しては、トナーの交換を示すイベントが通知される。その他、timing要素に指定可能な値に対応するイベントが通知される。
タスク管理部15は、イベントを受信すると(S201でYes)、有効なタスクの有無を判定する(S202)。有効なタスクとは、終了していないタスクの中で、現時点において、親のタスクが存在しないタスクをいう。例えば、図5に示されるタスクの中では、ジャム発生タスクt1、トナー切れタスクt2、及びメモリフル発生タスクt3が有効なタスクとなる。
有効なタスクが存在する場合(S202でYes)、タスク管理部15は、有効なタスクのうちの一つを処理対象とし(S203)、処理対象とされたタスクにイベントを通知する(S204)。タスクにイベントが通知されると、後述されるように、当該タスクの条件が満たされたか否かを示す応答が当該タスクから返信される。
続いて、タスク管理部15は、当該タスクの条件が満たされたか否かを判定する(S205)。当該タスクの条件が満たされた場合(S205でYes)、タスク管理部15は、当該タスクを終了させる(S206)。続いて、タスク管理部15は、当該タスクに子のタスクが有るか否かを判定する(S207)。当該タスクに子のタスクが有る場合(S207でYes)、タスク管理部15は、当該子のタスクを有効なタスクとする(S208)。なお、当該タスクに子のタスクが無い場合(S207でNo)、ステップS208は実行されない。また、当該タスクの条件が満たされない場合(S205でNo)、ステップS206〜S208は実行されない。
続いて、タスク管理部15は、当該タスクの兄弟タスクの有無を確認する(S209)。兄弟タスクが有る場合(S209でYes)、当該兄弟タスクに関してステップS203以降が実行される。兄弟タスクが無い場合(S209でNo)、ステップ202以降が実行される。
図5の例によれば、当初は、ジャム発生タスクt1、トナー切れ発生タスクt2、及びメモリフル発生タスクt3にイベントが通知される。ジャム発生タスクt1が終了すると、ジャム復帰タスクt11が有効となる。その結果、ジャム復帰タスクt11にイベントが通知されるようになる。また、トナー切れ発生タスクt2が終了すると、トナー切れ復帰タスクt21が有効となる。その結果、トナー切れ復帰タスクt21にイベントが通知されるようになる。
続いて、各タスクが実行する処理について説明する。図7は、タスクが実行する処理手順の一例を説明するためのフローチャートである。
タスクは、生成されると、タスク管理部15からのイベントの受信を待機している(S301)。タスク管理部15からのイベントが受信されると(S301でYes)、タスクは、当該イベントが監視対象のイベントであるか否かを判定する(S302)。監視対象のイベントは、タスクの条件に基づいて特定される。例えば、ジャム発生タスクt1にとって監視対象のイベントは、1枚ごとの給紙である。ジャム復帰タスクt11にとって、監視対象のイベントは、ジャムの原因の除去である。トナー切れ発生タスクt2にとって、監視対象のイベントは、1枚ごとの転写及び排紙である。トナー切れ復帰タスクt21にとって、監視対象のイベントは、トナーの交換である。メモリフル発生タスクt3にとって、監視対象のイベントは、1枚ごとの印刷データの解析(解釈)とその際に消費されるメモサイズである。なお、イベントには、当該イベントに対応する事象(給紙、排紙、ジャムの原因の除去、トナーの交換、印刷データの解析、メモリの消費量等)を示す情報が含まれている。
受信されたイベントが監視対象である場合(S302でYes)、タスクは、当該タスクの監視情報を更新する(S303)。監視情報とは、タスクの条件が満たされたことを検知するために記録される情報である。例えば、ジャム発生タスクt1にとって、監視情報は、給紙を示すイベントの受信回数である。ジャム復帰タスクt11にとって、監視情報は、ジャムの原因の除去を示すイベントが受信されたか否かを示す情報である。トナー切れ発生タスクt2にとって、監視情報は、排紙を示すイベントの受信回数である。トナー切れ復帰タスクt21にとって、監視情報は、トナーの交換を示すイベントが受信されたか否かを示す情報である。メモリフル発生タスクt3にとって、監視情報は、メモリの消費量である。
続いて、タスクは、監視情報と当該タスクの条件とを比較することにより、当該タスクの条件が満たされたか否かを判定する(S304)。例えば、ジャム発生タスクt1であれば、99回の給紙が行われたか否かが判定される。
タスクの条件が満たされた場合(S304でYes)、タスクは、模倣部11の状態を変更する(S305)。具体的には、タスクは、模倣部11の状態を、当該タスクに設定されている状態へ移行させる。模倣部11の状態の変更は、例えば、模倣部11が有する複数のパラメータのうちのいずれかの値を変更することによって実現されてもよい。続いて、タスクは、条件が満たされたことを示す応答をタスク管理部15に返信する(S306)。なお、模倣部11は、状態の移行後に、アプリ20からAPIが呼び出されると、移行後の状態において対象機器が実行する処理を模倣する。
一方、受信されたイベントが監視対象でない場合(S302でNo)、又はタスクの条件が満たされていない場合(S304でNo)は、条件が満たされていないことを示す応答をタスク管理部15に返信する。
続いて、図4に示したテスト定義データに関して実行される処理について、具体的に説明する。
操作実行部12は、scenario要素520の最初のstep要素(number属性の値が1であるstep要素)内のprint要素に基づいて、testdata.prnに関する印刷処理の実行を模倣部11に指示する。なお、testdata.prnは、例えば、所定のフォルダに保存されている。その後、操作実行部12は、2番目のstep要素内のwait要素に基づいて、模倣部11に対する指示の入力を10分間待機する。
一方、模倣部11は、操作実行部12からの指示に応じ、testdata.prnの印刷処理のエミュレート(以下、単に「印刷処理」という。)を開始する。印刷処理の間、模倣部11は、自らの状態の変化を示すイベントや、その他のイベントの発行を、イベント通知部13に要求する。イベント通知部13は、要求されたイベントをタスク管理部15に対して通知する。タスク管理部15は、当該イベントの通知に応じて、図6において説明した処理を実行し、有効なタスクに対してイベントを通知する。
本実施の形態では、ジャム発生タスクt1とジャム復帰タスクt11とが親子関係を有し、トナー切れ発生タスクt2とトナー切れ復帰タスクt21とが親子関係を有する。また、メモリフル発生タスクt3は、ジャム発生タスクt1及びトナー切れ発生タスクt2と兄弟関係を有する。したがって、当初においては、ジャム発生タスクt1、トナー切れ発生タスクt2、及びメモリフル発生タスクt3にイベントが通知される。各タスクは、イベントの通知に応じて、図7において説明した処理を実行する。
その結果、99ページ目(99回目)の給紙イベント時に、ジャム発生タスクt1の条件が充足される。そこで、ジャム発生タスクt1は、模倣部11をジャムが発生した状態に移行させる。また、ジャム発生タスクt1の条件が充足に伴って、タスク管理部15は、ジャム発生タスクt1を終了させる。その結果、ジャム復帰タスクt11が有効化される。
印刷の開始から10分が経過すると、操作実行部12は、3番目のstep要素内のremovejam要素に基づいて、疑似的なジャムの解除操作を模倣部11に対して実行する。ジャムの解除操作に応じ、模倣部11は、ジャムの解除イベントの発行を、イベント通知部13に要求する。イベント通知部13が、タスク管理部15に当該イベントを通知すると、タスク管理部15は、ジャム復帰タスクt11、トナー切れ発生タスクt2、及びメモリフル発生タスクt3に対してジャムの解除イベントを通知する。ジャムの解除イベントに応じて、ジャム復帰タスクt11の条件が充足される。そこで、ジャム復帰タスクt11は、模倣部11のジャム状態を解除した後、終了する。
続いて、操作実行部12は、4番目のstep要素内のwait要素に基づいて、10分間待機する。
一方、模倣部11は、ジャム状態の解除に応じて印刷処理を再開する。再開された印刷処理において、198ページ目の排紙イベント時にトナー切れ発生タスクt2の条件が充足される。そこで、トナー切れ発生タスクt2は、模倣部11をトナー切れ状態とした後、終了する。トナー切れ発生タスクt2の終了に応じ、トナー切れ復帰タスクt21が有効化される。
ジャムの解除から10分経過すると、操作実行部12は、5番目のstep要素内のchangetoner要素に基づいて、疑似的なトナーの交換操作を模倣部11に対して実行する。トナーの交換操作に応じ、模倣部11は、トナーの交換イベントの発行を、イベント通知部13に対して要求する。イベント通知部13が、タスク管理部15に当該イベントを通知すると、タスク管理部15は、トナー切れ復帰タスクt21及びメモリフル発生タスクt3に対して、トナーの交換イベントを通知する。トナーの交換イベントに応じて、トナー切れ復帰タスクt21の条件が充足される。そこで、トナー切れ復帰タスクt21は、模倣部11のトナー切れの状態を解除した後、終了する。
トナー切れ状態の解除に応じ、模倣部11は、印刷処理を再開する。再開された印刷処理において、220ページ目の解析イベント時に、メモリフル発生タスクt3の条件が充足される。そこで、メモリフル発生タスクt3は、模倣部11をメモリフル状態とした後、終了する。なお、メモリフルに応じて、評価対象のアプリ20は、例えば、実行中のジョブを中止させる。
上述したように、本実施の形態によれば、模倣部11は、テストシナリオに指定された操作指示に応じた処理を実行する過程において、状態変更条件に指定されたタイミングで、状態変更条件に指定された状態に移行することができる。すなわち、エミュレートする対象の機器における各種の状態を容易に再現することができる。したがって、ユーザは、例えば、アプリ20の動作確認を、対象機器において生じうる様々な状態において行うことができる。
なお、本実施の形態では、模倣部11がエミュレートする機器(対象機器)が、画像形成装置である例について説明したが、模倣部11がエミュレートする機器は、プロジェクタ、テレビ会議システム、デジタルカメラ等、画像形成装置以外の機器がエミュレートの対象であってもよい。
また、本実施の形態における情報処理装置10の機能は、クラウドサービス、ASP(Application Service Provider)が提供するサービス、又はWebサービス等、ネットワークを介して利用されるサービスとして提供されてもよい。この場合、アプリ20は、情報処理装置10にネットワークを介して接続される、ユーザ側のPC(Personal Computer)等に配置されてもよいし、情報処理装置10に対してアップロードされてもよい。
なお、本実施の形態において、情報処理装置10は、情報処理装置及び情報処理システムの一例である。タスクは、状態変更部の一例である。テストシナリオに関する定義は、第一の定義情報の一例である。状態変更条件に関する定義は、第二の定義情報の一例である。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
10 情報処理装置
11 模倣部
12 操作実行部
13 イベント通知部
14 タスク生成部
15 タスク管理部
16 定義データ記憶部
20 アプリ
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
106 表示装置
107 入力装置
B バス
特開2010−045781号公報

Claims (13)

  1. 第一の定義情報に定義された操作手順に応じて、機器が実行する処理を模倣する模倣部と、
    前記処理の模倣に応じて発生する事象を監視して、第二の定義情報において指定された時期の到来を検知し、該検知に応じて前記模倣部の状態を、前記第二の定義情報において指定された状態に変更する状態変更部とを有し、
    前記模倣部は、前記状態変更部によって変更された状態において、前記機器に処理を実行させるプログラムからの要求に応じて、前記機器によって実行される処理を模倣することを特徴とする情報処理装置。
  2. 前記第二の定義情報は、前記模倣部の状態を変更する時期を指定する情報と、変更後の状態を指定する情報との組を1以上含み、
    前記組ごとに、1以上の前記状態変更部を有し、
    各状態変更部は、前記処理の模倣に応じて発生する事象を監視して、当該状態変更部に係る前記組において指定された時期の到来を検知し、該検知に応じて前記模倣部の状態を、当該において指定された状態に変更することを特徴とする請求項1記載の情報処理装置。
  3. 複数の前記状態変更部の一部又は全部は、前記第二の定義情報における前記組の関係に基づいて、直列的な関係を有し、
    直列的な関係を有する前記状態変更部は、直列的な関係において前段の前記状態変更部が前記模倣部の状態を変更した後に、前記処理の模倣に応じて発生する事象の監視を行うことを特徴とする請求項2記載の情報処理装置。
  4. 前記直列的な関係を有する2つの前記状態変更部の一方は、前記模倣部の状態を変更し、他方は、前記状態から前記模倣部を復帰させる請求項3記載の情報処理装置。
  5. 1以上のコンピュータを含む情報処理システムであって、
    第一の定義情報に定義された操作手順に応じて、機器が実行する処理を模倣する模倣部と、
    前記処理の模倣に応じて発生する事象を監視して、第二の定義情報において指定された時期の到来を検知し、該検知に応じて前記模倣部の状態を、前記第二の定義情報において指定された状態に変更する状態変更部とを有し、
    前記模倣部は、前記状態変更部によって変更された状態において、前記機器に処理を実行させるプログラムからの要求に応じて、前記機器によって実行される処理を模倣することを特徴とする情報処理システム。
  6. コンピュータが実行する情報処理方法であって、
    前記コンピュータの模倣部が、第一の定義情報に定義された操作手順に応じて、機器が実行する処理を模倣する模倣手順と、
    前記コンピュータの状態変更部が、前記処理の模倣に応じて発生する事象を監視して、第二の定義情報において指定された時期の到来を検知し、該検知に応じて前記模倣部の状態を、前記第二の定義情報において指定された状態に変更する状態変更手順とを有し、
    前記模倣部は、前記状態変更部によって変更された状態において、前記機器に処理を実行させるプログラムからの要求に応じて、前記機器によって実行される処理を模倣することを特徴とする情報処理方法。
  7. 前記第二の定義情報は、前記模倣部の状態を変更する時期を指定する情報と、変更後の状態を指定する情報との組を1以上含み、
    前記コンピュータは、前記組ごとに、1以上の前記状態変更部を有し、
    各状態変更部が、前記処理の模倣に応じて発生する事象を監視して、当該状態変更部に係る前記組において指定された時期の到来を検知し、該検知に応じて前記模倣部の状態を、当該において指定された状態に変更することを特徴とする請求項6記載の情報処理方法。
  8. 複数の前記状態変更部の一部又は全部は、前記第二の定義情報における前記組の関係に基づいて、直列的な関係を有し、
    直列的な関係を有する前記状態変更部が、直列的な関係において前段の前記状態変更部が前記模倣部の状態を変更した後に、前記処理の模倣に応じて発生する事象の監視を行うことを特徴とする請求項7記載の情報処理方法。
  9. 前記直列的な関係を有する2つの前記状態変更部の一方が、前記模倣部の状態を変更し、他方が、前記状態から前記模倣部を復帰させる請求項8記載の情報処理方法。
  10. 第一の定義情報に定義された操作手順に応じて、機器が実行する処理を模倣する模倣部と、
    前記処理の模倣に応じて発生する事象を監視して、第二の定義情報において指定された時期の到来を検知し、該検知に応じて前記模倣部の状態を、前記第二の定義情報において指定された状態に変更する状態変更部としてコンピュータを機能させ、
    前記模倣部は、前記状態変更部によって変更された状態において、前記機器に処理を実行させるプログラムからの要求に応じて、前記機器によって実行される処理を模倣することを特徴とする情報処理プログラム。
  11. 前記第二の定義情報は、前記模倣部の状態を変更する時期を指定する情報と、変更後の状態を指定する情報との組を1以上含み、
    前記組ごとに、1以上の前記状態変更部として前記コンピュータを機能させ、
    各状態変更部は、前記処理の模倣に応じて発生する事象を監視して、当該状態変更部に係る前記組において指定された時期の到来を検知し、該検知に応じて前記模倣部の状態を、当該において指定された状態に変更することを特徴とする請求項10記載の情報処理プログラム。
  12. 複数の前記状態変更部の一部又は全部は、前記第二の定義情報における前記組の関係に基づいて、直列的な関係を有し、
    直列的な関係を有する前記状態変更部は、直列的な関係において前段の前記状態変更部が前記模倣部の状態を変更した後に、前記処理の模倣に応じて発生する事象の監視を行うことを特徴とする請求項11記載の情報処理プログラム。
  13. 前記直列的な関係を有する2つの前記状態変更部の一方は、前記模倣部の状態を変更し、他方は、前記状態から前記模倣部を復帰させる請求項12記載の情報処理プログラム。
JP2014129901A 2013-09-13 2014-06-25 情報処理装置、情報処理システム、情報処理方法、及び情報処理プログラム Pending JP2015079484A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014129901A JP2015079484A (ja) 2013-09-13 2014-06-25 情報処理装置、情報処理システム、情報処理方法、及び情報処理プログラム
US14/484,678 US9892216B2 (en) 2013-09-13 2014-09-12 Information processing apparatus, method, and program product for simulating processes with parent-child and sibling relationships

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013190397 2013-09-13
JP2013190397 2013-09-13
JP2014129901A JP2015079484A (ja) 2013-09-13 2014-06-25 情報処理装置、情報処理システム、情報処理方法、及び情報処理プログラム

Publications (1)

Publication Number Publication Date
JP2015079484A true JP2015079484A (ja) 2015-04-23

Family

ID=52668730

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014129901A Pending JP2015079484A (ja) 2013-09-13 2014-06-25 情報処理装置、情報処理システム、情報処理方法、及び情報処理プログラム

Country Status (2)

Country Link
US (1) US9892216B2 (ja)
JP (1) JP2015079484A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020194398A (ja) * 2019-05-29 2020-12-03 株式会社オービック 動作実行装置、動作実行方法および動作実行プログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018028842A (ja) 2016-08-19 2018-02-22 株式会社リコー 情報処理装置、情報処理方法、及び情報処理プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7233404B2 (en) * 2002-10-29 2007-06-19 International Business Machines Corporation System for processing print jobs
JP2006155566A (ja) * 2004-10-26 2006-06-15 Canon Inc 設計支援プログラム及び設計支援方法
JP4194551B2 (ja) 2004-12-14 2008-12-10 キヤノン株式会社 設計支援プログラム及び設計支援方法
JP2010045781A (ja) 2008-08-12 2010-02-25 Toshiba Corp 情報処理装置、情報処理方法、およびプログラム
JP5365242B2 (ja) 2009-02-18 2013-12-11 株式会社リコー 情報処理装置、ソフトウェア動作テストシステム、ソフトウェア動作テスト方法、ソフトウェア動作テストプログラム、及びそのプログラムを記録した記録媒体
JP5793928B2 (ja) 2010-06-25 2015-10-14 株式会社リコー 用紙排出装置、満杯検知方法及びプログラム
JP5794007B2 (ja) 2011-07-15 2015-10-14 株式会社リコー 画像形成装置、画像処理方法及び画像形成装置の制御プログラム
US20130215467A1 (en) * 2012-02-21 2013-08-22 Zih Corp. Method and apparatus for implementing near field communications with a printer
US20130227530A1 (en) * 2012-02-27 2013-08-29 Yokogawa Electric Corporation Method and apparatus for debugging a program of a business process
US9003080B2 (en) * 2012-09-26 2015-04-07 International Business Machines Corporation Managed access to peripherals of a service terminal

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020194398A (ja) * 2019-05-29 2020-12-03 株式会社オービック 動作実行装置、動作実行方法および動作実行プログラム

Also Published As

Publication number Publication date
US20150081266A1 (en) 2015-03-19
US9892216B2 (en) 2018-02-13

Similar Documents

Publication Publication Date Title
US9959130B2 (en) Process simulation for information processing system, information processing method, and information processing program product
US10656971B2 (en) Agile framework for vertical application development and delivery
JP5440252B2 (ja) 情報処理装置、外部装置、情報処理システム、情報処理方法、及びプログラム
JP2011192250A (ja) クラウドコンピューティングシステム、クラウドコンピューティングシステムの制御方法
WO2010001555A1 (ja) 実行順序決定装置、実行順序決定プログラム、実行順序決定回路及び情報処理装置
JP2013529328A (ja) クロスプラットフォームアプリケーションフレームワーク
CN101523358A (zh) 文件系统目录的快速、可靠同步
CN103366338A (zh) 图像处理装置和图像处理方法
JP2011123842A (ja) 画像形成装置、機能追加方法、及びプログラム
JP2014170515A (ja) 機器、情報記録プログラム、及び情報記録方法
JP2012161076A (ja) 多機能装置に接続する大容量記憶装置にネットワークアクセスを可能にするシステム及び方法
Wozniak et al. MPI jobs within MPI jobs: A practical way of enabling task-level fault-tolerance in HPC workflows
JP2011096013A (ja) プリンタードライバー、プリンターの制御方法及びプリンターの制御プログラム
JP2015079484A (ja) 情報処理装置、情報処理システム、情報処理方法、及び情報処理プログラム
JP2009037589A (ja) プログラム判定装置、プログラム判定方法及びプログラム
JP2014235707A (ja) 情報処理装置、機器、情報処理システム、情報処理方法、及び情報処理プログラム
JP2010134705A (ja) 機器、ログ記録制御方法、及びプログラム
US20150178420A1 (en) Information processing apparatus, information processing system, method of processing information, and program
JP2009223577A (ja) ユーザインタフェースエミュレート装置及びユーザインタフェースエミュレートプログラム
JP2009020863A (ja) 画像形成装置、情報処理装置、障害解析支援方法、及び障害解析支援プログラム
JP2009043078A (ja) シミュレータプログラム及び記録媒体
JP5630556B2 (ja) 情報処理装置、外部装置、情報処理システム、情報処理方法、及びプログラム
JP2018192740A (ja) 画像形成装置、情報処理方法及びプログラム
JP5263358B2 (ja) 情報処理装置、プログラム制御方法、及び制御プログラム
JP2011242947A (ja) 画像形成装置及びプログラム