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

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

▶ NECプラットフォームズ株式会社の特許一覧

特許7343197情報処理装置、情報処理システム、情報処理方法及びプログラム
<>
  • 特許-情報処理装置、情報処理システム、情報処理方法及びプログラム 図1
  • 特許-情報処理装置、情報処理システム、情報処理方法及びプログラム 図2
  • 特許-情報処理装置、情報処理システム、情報処理方法及びプログラム 図3
  • 特許-情報処理装置、情報処理システム、情報処理方法及びプログラム 図4
  • 特許-情報処理装置、情報処理システム、情報処理方法及びプログラム 図5
  • 特許-情報処理装置、情報処理システム、情報処理方法及びプログラム 図6
  • 特許-情報処理装置、情報処理システム、情報処理方法及びプログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-04
(45)【発行日】2023-09-12
(54)【発明の名称】情報処理装置、情報処理システム、情報処理方法及びプログラム
(51)【国際特許分類】
   G06F 11/36 20060101AFI20230905BHJP
【FI】
G06F11/36 188
G06F11/36 192
【請求項の数】 10
(21)【出願番号】P 2021041778
(22)【出願日】2021-03-15
(65)【公開番号】P2022141461
(43)【公開日】2022-09-29
【審査請求日】2021-09-15
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100106909
【弁理士】
【氏名又は名称】棚井 澄雄
(74)【代理人】
【識別番号】100134544
【弁理士】
【氏名又は名称】森 隆一郎
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100162868
【弁理士】
【氏名又は名称】伊藤 英輔
(72)【発明者】
【氏名】赤川 美花
【審査官】土谷 慎吾
(56)【参考文献】
【文献】特開平03-241438(JP,A)
【文献】特開昭60-129849(JP,A)
【文献】特表2001-519939(JP,A)
【文献】特開2010-176392(JP,A)
【文献】特開2001-051864(JP,A)
【文献】特開2020-153804(JP,A)
【文献】特開平04-102931(JP,A)
【文献】特開平05-224995(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/36
(57)【特許請求の範囲】
【請求項1】
複数の命令を有する命令列を実行する制御部と、
前記複数の命令を有する命令列の当該複数の命令による実行の開始から終了までの各命令の累積の実行回数を示す終了実行回数の指定を受け付ける通信部と、
前記制御部による前記命令列の実行中に、前記実行の開始から終了までの各命令の累積の実行回数が前記終了実行回数に達した場合に、前記命令列の実行を途中で終了させる試験制御部と、
を備える情報処理装置。
【請求項2】
前記命令列は、前記命令列内の実行済みの命令に分岐する分岐命令を含み、
前記制御部は、前記分岐命令の実行により、当該分岐命令の分岐先の前記実行済みの命令を再実行する、
請求項1に記載の情報処理装置。
【請求項3】
前記試験制御部は、前記命令列の実行を開始してから終了するまでの各命令の累積の実行回数をカウントアップして前記終了実行回数と比較し、前記各命令の累積の実行回数が前記終了実行回数と一致した場合に、前記命令列の実行を途中で終了させる、
請求項1又は2に記載の情報処理装置。
【請求項4】
前記試験制御部は、前記命令列の実行による第1実行結果を他の情報処理装置に前記通信部を介して送信し、
前記第1実行結果は、前記他の情報処理装置において前記命令列に含まれる複数の命令の開始から終了までの各命令の累積の実行回数が前記終了実行回数に達するまで実行して終了した場合の実行結果である、当該他の情報処理装置による第2実行結果と比較される、
請求項1乃至3のいずれかに記載の情報処理装置。
【請求項5】
前記試験制御部は、前記制御部によって前記命令列を最後まで実行させた場合の第1実行結果と、他の情報処理装置によって前記命令列を最後まで実行させた場合の第2実行結果とが一致しない場合に、同一の前記命令列を前記終了実行回数に基づいて再実行させる、
請求項1乃至3のいずれかに記載の情報処理装置。
【請求項6】
前記通信部は、複数の異なる前記終了実行回数の指定を受け付け、
前記試験制御部は、前記複数の終了実行回数それぞれに対応する、前記命令列の実行による複数の前記第1実行結果を取得する、
請求項4又は5に記載の情報処理装置。
【請求項7】
前記通信部は、前記命令列の実行に係るログ情報を出力させる、前記命令の合計の実行回数を示すログ出力実行回数の指定をさらに受け付け、
前記試験制御部は、前記制御部による前記命令列の実行中に、前記命令を実行した回数が前記ログ出力実行回数に達した場合に、前記ログ情報を取得する、
請求項1乃至6のいずれかに記載の情報処理装置。
【請求項8】
被試験装置を示す第1情報処理装置と、シミュレータを備える第2情報処理装置とを有し、
前記第1情報処理装置は、
複数の命令を有する命令列を実行する制御部と、
前記複数の命令を有する命令列の当該複数の命令による実行の開始から終了までの各命令の累積の実行回数を示す終了実行回数を前記第2情報処理装置から受信する通信部と、
前記制御部による前記命令列の実行中に、前記実行の開始から終了までの各命令の累積の実行回数が前記終了実行回数に達した場合に、前記命令列の実行を途中で終了させる試験制御部と、を備え、
前記試験制御部は、前記命令列の実行による第1実行結果を前記第2情報処理装置に前記通信部を介して送信し、
前記第2情報処理装置は、
前記終了実行回数を前記第1情報処理装置に送信する通信部と、
前記各命令の累積の実行回数が前記終了実行回数に達するまで前記命令列を実行するシミュレータと、
前記シミュレータの前記命令列の実行による第2実行結果を取得する制御部と、を備え、
前記制御部は、前記第1情報処理装置から受信した前記第1実行結果と、前記シミュレータによる前記第2実行結果とを比較し、比較結果を出力する、
情報処理システム。
【請求項9】
情報処理装置の制御部が、複数の命令を有する命令列を実行するステップと、
前記情報処理装置の通信部が、前記複数の命令を有する命令列の当該複数の命令による実行の開始から終了までの各命令の累積の実行回数を示す終了実行回数の指定を受け付けるステップと、
前記情報処理装置の試験制御部が、前記命令列の実行中に、前記実行の開始から終了までの各命令の累積の実行回数が前記終了実行回数に達した場合に、前記命令列の実行を途中で終了させるステップと、
を有する情報処理方法。
【請求項10】
情報処理装置のコンピュータ
複数の命令を含む命令列を実行する制御手段、
前記複数の命令を有する命令列の当該複数の命令による実行の開始から終了までの各命令の累積の実行回数を示す終了実行回数の指定を受け付ける通信手段、
前記制御手段による前記命令列の実行中に、前記実行の開始から終了までの各命令の累積の実行回数が前記終了実行回数に達した場合に、前記命令列の実行を途中で終了させる試験制御手段、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理システム、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
被試験装置とシミュレータとで同一の命令列を有する試験を実行し、実行結果の同一性を確認することにより、被試験装置の正常性を判定する試験方法がある。このような試験方法では、例えば、実行結果の不一致が検出された場合に、命令列のうち不一致の原因となった命令を特定する処理が実行される。
【0003】
不一致の原因となった命令を特定する手法の一例として、命令列内の任意の位置に、試験終了を指示する終了命令を挿入する方法がある。この場合、終了命令が挿入された命令列を被試験装置及びシミュレータで再実行し、実行結果が比較される。終了命令の挿入位置を変更しながら、その実行結果を比較することで、不一致の原因となった命令を特定できる。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2020-153804号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、命令列が分岐命令を含む場合に、不一致の原因となった命令の特定が困難になることがある。例えば、繰り返し処理を示す分岐命令の直後に終了命令を挿入する場合、分岐命令の実行後、終了命令が実行される前に分岐命令の分岐先の命令群が再実行される。このため、実行結果の不一致が検出された場合、分岐命令及び分岐先の命令群を含む多数の命令の中から原因となる命令を特定する解析処理に時間を要していた。
【0006】
そこでこの発明は、上述の課題を解決する情報処理装置、情報処理システム、情報処理方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【0007】
本発明は、複数の命令を有する命令列を実行する制御部と、前記命令列の実行を途中で終了させる、命令の合計の実行回数を示す終了実行回数の指定を受け付ける通信部と、前記制御部による前記命令列の実行中に、前記命令を実行した回数が前記終了実行回数に達した場合に、前記命令列の実行を途中で終了させる試験制御部と、を備える情報処理装置である。
【0008】
また、本発明は、被試験装置を示す第1情報処理装置と、シミュレータを備える第2情報処理装置とを有する情報処理システムである。前記第1情報処理装置は、複数の命令を有する命令列を実行する制御部と、前記命令列の実行を途中で終了させる、命令の合計の実行回数を示す終了実行回数を前記第2情報処理装置から受信する通信部と、前記制御部による前記命令列の実行中に、前記命令を実行した回数が命令を実行した回数が前記終了実行回数に達した場合に、前記命令列の実行を途中で終了させる試験制御部と、を備える。前記試験制御部は、前記命令列の実行による第1実行結果を前記第2情報処理装置に前記通信部を介して送信する。前記第2情報処理装置は、前記終了実行回数を前記第1情報処理装置に送信する通信部と、前記命令を実行した回数が前記終了実行回数に達するまで前記命令列を実行するシミュレータと、前記シミュレータの前記命令列の実行による第2実行結果を取得する制御部と、を備える。前記制御部は、前記第1情報処理装置から受信した前記第1実行結果と、前記シミュレータによる前記第2実行結果とを比較し、比較結果を出力する。
【0009】
また本発明は、情報処理装置が実行する情報処理方法であって、複数の命令を有する命令列の実行を途中で終了させる、命令の合計の実行回数を示す終了実行回数の指定を受け付けるステップと、前記命令列の実行中に、命令を実行した回数が前記終了実行回数に達した場合に、前記命令列の実行を途中で終了させるステップと有する情報処理方法である。
【0010】
また本発明は、コンピュータに、複数の命令を含む命令列の実行を途中で終了させる命令の合計の実行回数を示す終了実行回数の指定を受け付ける手順と、前記命令列の実行中に、命令を実行した回数が前記終了実行回数に達した場合に、前記命令列の実行を途中で終了させる手順と、を実行させるプログラムである。
【発明の効果】
【0011】
本発明によれば、他の情報処理装置との間で命令列の実行結果に不一致が検出された場合に、不一致の原因となる命令を容易に特定できる。
【図面の簡単な説明】
【0012】
図1】第1実施形態による情報処理装置の構成例を示すブロック図である。
図2】第1実施形態による情報処理装置の動作例を示すシーケンス図である。
図3】第1実施形態における試験命令列の一例を示す図である。
図4】第1実施形態における試験システムの処理を説明するフローチャートである。
図5】第2実施形態における試験システムの処理を説明するフローチャートである。
図6】各実施形態による情報処理装置の最小構成例を示すブロック図である。
図7】最小構成の情報処理装置による処理フローを示す図である。
【発明を実施するための形態】
【0013】
以下、本発明の一実施形態による情報処理装置を図面を参照して説明する。
(第1実施形態)
図1は、第1実施形態における試験システム300の構成例を示す図である。図1に示す試験システム300は、第1実施形態における情報処理システムの一例である。試験システム300は、試験装置1及び被試験装置2を備える。被試験装置2は情報処理装置である。試験装置1と、被試験装置2とは、汎用的なインタフェースで接続される。
【0014】
本実施形態の試験システム300は、試験装置1と被試験装置2とで同一の命令列を有する試験を実行させ、その実行結果を比較する。試験システム300は、実行結果を同一であると判定した場合に、被試験装置2の正常性を確認する。また、命令列の実行結果の不一致が検出された場合に、命令列のうち、不一致の原因となった命令が特定される。
【0015】
試験装置1は、例えば、CPU(Central Processing Unit)11と、主記憶装置10と、通信部12と、補助記憶装置13と、を備える。試験装置1において、CPU11と、主記憶装置10と、通信部12と、補助記憶装置13とは、バスを介した情報の入出力が可能である。試験装置1は、通信部12を介して、被試験装置2と通信可能に接続される。補助記憶装置13は、例えば磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。
【0016】
被試験装置2は、例えば、CPU21と、主記憶装置20と、通信部22と、補助記憶装置23と、を備える。被試験装置2において、CPU21と、主記憶装置20と、通信部22と、補助記憶装置23とはバスを介した情報の入出力が可能である。被試験装置2は、通信部22を介して、試験装置1と通信可能に接続される。
【0017】
補助記憶装置23は、例えば磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。補助記憶装置23は、被試験装置2の動作内容を検証するための試験プログラム500を記憶する。試験プログラム500の詳細については後述する。試験プログラム500は、CPU21によって補助記憶装置23から読み出され、主記憶装置20に展開されることで実行される。
【0018】
図2は、第1実施形態における試験システム300の機能ブロックの一例を示す図である。試験装置1のCPU11は、例えば、主記憶装置10又は補助記憶装置13に記録されるプログラムを読み出して実行する。これにより、試験装置1は、主記憶装置10上にオペレーティングシステム100、試験タスク101、シミュレータ103を備える装置として機能する。試験タスク101は、試験プログラム生成手段1010、試験実行手段1011、実行結果比較手段1012、再試験実行手段1013、及び通信手段1014を有する。
【0019】
なお、試験装置1の各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されてもよい。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。プログラムは、電気通信回線を介して送信されてもよい。
【0020】
試験プログラム生成手段1010は、試験プログラム500を生成し、主記憶装置10に記憶する。試験プログラム500は、試験(命令列)501、及び試験データ502を含む。以下、試験(命令列)501を、試験命令列501と称する。
【0021】
試験命令列501は、複数の命令を有する。試験データは、試験命令列501の各命令が入力とするデータである。試験プログラム500は必ずしも試験データの入力を必要とするものではない。試験プログラム500がデータの入力を必要としない場合、試験データ502の生成が省略されてもよい。試験命令列501の詳細については、図3で後述する。
【0022】
試験実行手段1011は、試験装置1のシミュレータ103及び被試験装置2による、試験プログラム500の実行を制御する。実行結果比較手段1012は、シミュレータ103及び被試験装置2による試験プログラム500の実行結果を比較し、比較結果を再試験実行手段1013に出力する。
【0023】
再試験実行手段1013は、シミュレータ103及び被試験装置2の実行結果が一致しない場合、試験プログラム500の再実行を指示する。再試験実行手段1013は、不一致の原因である命令の特定のために、再実行を指示する。再試験実行手段1013は、シミュレータ103及び被試験装置2による試験プログラム500の再実行を制御する。
【0024】
通信手段1014は、生成された試験プログラム500を被試験装置2に送信するとともに、被試験装置2による試験プログラム500の実行結果を受信する。通信手段1014は、試験を再実行時に参照される、終了実行回数を被試験装置2に通知する。終了実行回数は、試験プログラム500を途中で終了させる命令の合計の実行回数を示す。
【0025】
シミュレータ103は、被試験装置2の動作を模擬するソフトウェア又はハードウェアである。シミュレータ103は、被試験装置2と同一の試験プログラム500を実行する。シミュレータ103は、試験プログラム500を実行し、実行結果を実行結果比較手段1012に出力する。
【0026】
シミュレータ103は、実行命令数カウンタ1030をさらに有する。実行命令数カウンタ1030は、試験命令列501の実行時における、命令を実行した回数をカウントする。シミュレータ103は、実行命令数カウンタ1030の値が終了実行回数に達した場合に、試験命令列501の実行を終了する。
【0027】
次に、被試験装置2について説明する。被試験装置2のCPU21は、主記憶装置20又は補助記憶装置23に記録されるプログラムを読み出して実行する。これにより、被試験装置2は、主記憶装置20上に実行命令数カウンタ201を有する。実行命令数カウンタ201は、試験命令列501の実行時における、命令を実行した回数をカウントする。主記憶装置20は、試験装置1から送信された試験プログラム500をさらに記憶する。
【0028】
図2に示す被試験装置2は、試験終了手段202を備える。試験終了手段202は、試験装置1から通知された終了実行回数に基づいて、実行中の試験命令列501を途中で終了させる。試験終了手段202は、実行命令数カウンタ201の値が終了実行回数に達した場合に、試験命令列501の実行を終了させる。例えば、試験終了手段202は、システムコール等の命令や、API(Application Programming Interface)を使用して試験命令列501の実行を終了させる。
【0029】
なお、被試験装置2の各機能の全て又は一部は、ASICやPLDやFPGA等のハードウェアを用いて実現されてもよい。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。プログラムは、電気通信回線を介して送信されてもよい。
【0030】
図3は、試験命令列501が有する命令列の一例を示す図である。試験命令列501は、複数の命令からなる命令列である。図3の例によると、試験命令列501は、命令A、命令B、分岐命令、命令C、及び命令Dを有する。分岐命令は、例えば、繰り返し処理を示す分岐命令である。分岐命令が実行されると、例えば、既に実行された命令に分岐し、分岐先の命令が再実行される。
【0031】
ここで、試験命令列501の処理順の一例を説明する。試験命令列501は、例えば、命令A、命令B、分岐命令の順に実行される。分岐命令が実行されると、当該分岐命令の分岐条件に応じて、例えば命令Aに分岐する。これにより、再度、命令Aが実行され、命令Aの実行後に命令Bが実行される。なお、分岐命令の分岐条件に拠っては、命令Cに分岐する場合もある。
【0032】
このように、試験命令列501が分岐命令を含む場合、試験命令列501における命令列の記載順序と、実際に実行される命令の実行順序とが異なる。また、分岐命令の分岐先の命令は、分岐条件によっては複数回実行される場合がある。
【0033】
前述したとおり、本実施の形態の試験システム300は、被試験装置2と試験装置1のシミュレータ103とで同一の試験命令列501を実行させる。試験システム300は、被試験装置2とシミュレータ103による実行結果の同一性を確認することにより、被試験装置2の正常性を判定する。シミュレータ103と、被試験装置2とで試験命令列501の実行結果に不一致が検出された場合、不一致の原因となる命令の特定処理が行われる。
【0034】
特定処理の一例として、試験終了を指示する終了命令を命令列の任意の位置に挿入して、命令列内の任意の命令直後に試験を終了させる方法がある。終了命令が挿入された命令列が再実行される。そして、実行結果の不一致の有無に基づいて、不一致の原因となる命令が特定される。例えば、終了命令の挿入位置を変更させながら実行結果を比較することにより、不一致の原因となる命令が特定される。
【0035】
ただし、この方法によると、任意の命令の直後で命令列を終了させることができない場合がある。これにより、任意の命令の直後で命令列の実行を終了させた場合の実行結果を取得できず、不一致の原因の命令の特定に時間を要していた。
【0036】
例えば、命令列が分岐命令を含む場合、分岐先の命令の実行後に命令列の実行を終了させることができない。分岐後に実行される命令Aの実行後に、命令列の実行を終了させることができない場合を例示する。例えば、命令Aの後に終了命令を挿入すると、分岐命令の実行前に命令列の実行が終了する。また、分岐命令の直後に終了命令を挿入する場合、分岐先の命令群(命令A、命令B、…)が再実行された後、命令列の実行が終了する。
【0037】
そこで、本実施の形態における被試験装置2は、試験装置1から通知された終了実行回数に基づいて、実行中の試験命令列501を終了させる。すなわち、被試験装置2は、試験命令列501の実行中に、命令を実行した回数をカウントする実行命令数カウンタ201の値が終了実行回数に達すると、試験命令列501の実行を途中で終了させる。これにより任意のタイミングで命令列の実行を終了させることができる。
【0038】
このように、本実施形態における被試験装置2によると、命令列への終了命令の挿入ではなく、命令を実行した回数に基づいて命令列の実行を終了させる。これにより、命令列が分岐命令を含む場合であっても、任意の命令の実行直後に、命令列の実行を終了させることができる。これにより、任意のタイミングで命令列の実行を終了させた場合における実行結果を取得できる。
【0039】
例えば、試験システム300は、終了実行回数を変更させながら、被試験装置2及びシミュレータ103による実行結果を取得する。試験システム300は、例えば、複数の終了実行回数それぞれに応じた実行結果を取得できる。これにより、試験システム300は、終了実行回数に応じた実行結果の不一致の有無に基づいて、不一致の原因となる命令を容易に特定できる。
【0040】
図4は、第1実施形態における試験システム300の処理を説明するフローチャートである。試験プログラム生成手段1010(図2)は、試験プログラム500を生成する(ステップS301)。前述したとおり、試験プログラム500は、試験命令列501、及び試験命令列501が参照する試験データ502を含む。試験プログラム500は、予め生成されていてもよい。
【0041】
試験実行手段1011は、試験プログラム500を、被試験装置2及び試験装置1のシミュレータ103に移送する(ステップS302)。被試験装置2は、試験プログラム500を受信すると、主記憶装置20の試験プログラム格納領域に格納する。
【0042】
試験実行手段1011は、被試験装置2及びシミュレータ103に対して、試験プログラム500の実行を指示する。被試験装置2は、指示に応じて、主記憶装置20に記憶された試験プログラム500を実行する(ステップS303)。同様にして、シミュレータ103は、指示に応じて、試験実行手段1011から移送された試験プログラム500を実行する(ステップS304)。
【0043】
被試験装置2は、試験プログラム500の完了後に試験プログラム500の実行結果を取得し、試験装置1に送信する。シミュレータ103は、試験プログラム500の完了後に、試験プログラム500の実行結果を取得し、実行結果比較手段1012(図2)に通知する。実行結果は、例えば、試験プログラム500を実行した後の各レジスタの状態を含む。実行結果は、試験プログラム500の出力データ、出力ステータス等をさらに含んでいてもよい。
【0044】
実行結果比較手段1012は、被試験装置2から受信した実行結果と、シミュレータ103から出力された実行結果とを比較する(ステップS305)。実行結果比較手段1012は、双方の実行結果に同一性があるか否かを判定する。実行結果比較手段1012は、例えば、実行結果のうち、一部のレジスタの状態のみを比較してもよい。
【0045】
実行結果が一致すると判断された場合(ステップS305のYES)、試験実行手段1011は、ログ情報を出力して試験を終了する。ログ情報は、例えば、被試験装置2及びシミュレータ103それぞれにおける試験プログラム500の実行に係る情報を含む。ログ情報は、例えば、レジスタの状態や、メモリのダンプ等を含んでいてもよい。
【0046】
一方、実行結果が一致しないと判断された場合(ステップS305のNO)、再試験実行手段1013は、試験プログラム500を再実行させる。再試験実行手段1013は、試験プログラム500を、シミュレータ103及び被試験装置2に移送する(ステップS306)。シミュレータ103及び被試験装置2が試験プログラム500を既に保持する場合、試験プログラム500は移送されなくともよい。
【0047】
再試験実行手段1013は、被試験装置2の試験終了手段202、及びシミュレータ103に対して、終了実行回数を通知する(ステップS307)。終了実行回数は、試験命令列501を実行の途中で終了させる、命令の合計の実行回数を示す。換言すると、終了実行回数は、試験命令列501の実行を開始してから、実行を終了させるまでの命令の実行累積回数を示す。
【0048】
終了実行回数は、例えば、試験プログラム500の実行実績に基づいて、任意の値が設定される。終了実行回数は、任意の小さい値を初期値として、再実行の度に、1命令ずつ増加させるように設定されてもよい。または、終了実行回数は、試験命令列501を最後まで実行した場合における実行命令数カウンタ201の値を1命令ずつ減少させるように設定されてもよい。
【0049】
再試験実行手段1013は、被試験装置2及びシミュレータ103に対して、試験プログラム500の実行を指示する。被試験装置2は、指示に応じて、主記憶装置20に記憶された試験命令列501を一命令、実行する(ステップS308)。一命令の実行に伴い、試験終了手段202は実行命令数カウンタ201の値をインクリメントする(ステップS309)。
【0050】
同様にして、シミュレータ103は、指示に応じて試験命令列501を一命令、実行する(ステップS310)。一命令の実行に伴い、再試験実行手段1013は、実行命令数カウンタ1030の値をインクリメントする(ステップS311)。
【0051】
試験終了手段202は、実行命令数カウンタ201の値と、ステップS307で通知された終了実行回数とを比較する(ステップS312)。一致する場合(S312のYES)、試験終了手段202は、試験プログラム500を実行の途中で終了させる。すなわち、被試験装置2は、試験プログラム500の開始から終了実行回数が示す回数分、命令を実行すると、試験プログラム500を途中で終了させる。
【0052】
このように、試験終了手段202は、実行命令数カウンタ201と終了実行回数とに基づいて、任意のタイミングで試験命令列501の実行を終了させることができる。また、試験終了手段202は、シミュレータ103との間で、同一の命令の実行の直後に試験命令列501の実行を終了させることができる。試験プログラム500の終了後、被試験装置2は、試験プログラム500の実行結果を取得し、試験装置1に送信する。
【0053】
同様にして、試験装置1のシミュレータ103は、実行命令数カウンタ1030の値と、ステップS307で通知された終了実行回数とを比較する(ステップS312)。一致する場合(ステップS312のYES)、シミュレータ103に対して、試験プログラム500の実行を途中で終了する。すなわち、シミュレータ103は、試験プログラム500の開始から終了実行回数が示す回数分、命令を実行すると、試験プログラム500を終了させる。
【0054】
シミュレータ103についても、実行命令数カウンタ1030と終了実行回数とに基づいて、任意のタイミングで試験命令列501の実行を終了させることができる。試験命令列501の終了後、シミュレータ103は、試験プログラム500の実行結果を取得し、実行結果比較手段1012に送信する。
【0055】
一方、ステップS312においてカウント値が一致しない場合(ステップS312のNO)、被試験装置2は、試験プログラム500の実行を継続する(S308、S309)。同様にして、シミュレータ103は、試験プログラム500の実行を継続する(S310、S311)。
【0056】
実行結果比較手段1012は、被試験装置2から送信された再実行に係る実行結果と、シミュレータ103から出力された再実行に係る実行結果とを比較する(ステップS313)。双方の実行結果が一致すると判定された場合(S313のYES)、再試験実行手段1013は、ログ情報を出力して一連の試験の工程を終了する。
【0057】
一方、実行結果が一致しないと判定された場合(S313のNO)、再試験実行手段1013は、不一致の原因となる命令を特定する(ステップS314)。例えば、再試験実行手段1013は、他の終了実行回数が設定された場合の実行結果の不一致の有無を参照する。例えば、一つ値が大きい終了実行回数が指定された時の実行結果に不一致が検出されない場合、指定された終了実行回数に対応する命令が不一致の原因の命令として特定される。
【0058】
再試験実行手段1013は、ログ情報を取得して一連の試験の工程を終了する(ステップS315)。この時、シミュレータ103についてもログ情報を取得してもよい。
【0059】
以上のように、第1実施形態の被試験装置2は、複数の命令を有する命令列(試験命令列501)を実行する制御部(CPU)21と、通信部22と、試験制御部202とを備える。通信部22は、命令列の実行を途中で終了させる、命令の合計の実行回数を示す終了実行回数の指定を受け付ける。試験制御部202は、制御部21による命令列の実行中に、命令を実行した回数が終了実行回数に達した場合に、命令列の実行を途中で終了させる。
【0060】
このように、被試験装置2は、命令列の実行開始後、命令を実行した累積回数が予め指定した実行回数に達した場合に、命令列の実行を命令列の途中で終了させる。被試験装置2は、命令列への終了命令の追加ではなく、命令の実行回数の合計に基づいて命令列の実行を中断させる。これにより、被試験装置2は、命令列が分岐命令を含んでいても、任意のタイミングで命令列の実行を終了させ、実行結果を取得できる。
【0061】
また、試験システム300は、終了実行回数の値を変更しながら、各終了実行回数に応じた、被試験装置2及びシミュレータ103による実行結果を取得できる。試験システム300は、被試験装置2及びシミュレータ103による、異なる命令の実行直後の実行結果をそれぞれ取得できる。これにより、不一致の原因である命令を容易に特定することができる。
【0062】
また、本実施の形態における命令列は、命令列内の実行済みの命令に分岐する分岐命令を含む。制御部は、分岐命令の実行により、当該分岐命令の分岐先の実行済みの命令を再実行する。本実施の形態における被試験装置2は、命令の合計の実行回数に基づいて命令列を終了させることにより、命令列が分岐命令を含む場合であっても、任意の命令の実行後に命令列の実行を終了させることができる。これにより、命令列が分岐命令を含む場合においても、不一致の原因である命令を容易に特定することができる。
【0063】
また、本実施の形態における試験制御部2は、命令列の実行を開始してから、命令列内の命令を実行する度に命令を実行した回数をカウントアップして終了実行回数と比較する。また、試験制御部は、命令を実行した回数が終了実行回数と一致した場合に、命令列の実行を途中で終了させる。これにより、本実施の形態における被試験装置2は、命令列の実行を開始してから、予め指定された回数分、命令を実行したタイミングで、命令列の実行を終了させることができる。
【0064】
また、本実施の形態における試験制御部2は、命令列の実行による第1実行結果を他の情報処理装置に通信部を介して送信する。第1実行結果は、他の情報処理装置において命令列を、命令を実行した回数が終了実行回数に達するまで実行して終了した場合の実行結果である、当該他の情報処理装置による第2実行結果と比較される。これにより、被試験装置2とシミュレータ103との間で、同一のタイミングで同一の命令列の実行を終了した場合の実行結果を比較できる。したがって、不一致の原因となる命令を効率的に、容易に特定することができる。
【0065】
また、本実施の形態における試験制御部2は、制御部によって命令列を最後まで実行させた場合の第1実行結果と、他の情報処理装置によって命令列を最後まで実行させた場合の第2実行結果とが一致しない場合に、同一の命令列を終了実行回数に基づいて再実行させる。このように、被試験装置2とシミュレータ103との間で命令列の実行結果の不一致が検出された場合に、終了実行回数に応じて命令列の実行を途中で終了させる再実行処理を行う。
【0066】
(第2実施形態)
第2実施形態では、試験プログラム500の実行中に、予め指定された命令実行回数の時にログ情報を取得する点について、第1実施形態と異なる。第1実施形態との差分を中心に説明する。試験装置1、及び被試験装置2の構成、及び機能ブロック図は第1実施形態で説明した通りである。
【0067】
図5は、第2実施形態における試験システム300の処理を説明するフローチャートである。フローチャートにおけるステップS301~S315におけるステップS307以外の処理は、第1実施形態と同様である。
【0068】
第2実施形態におけるステップS307において、再試験実行手段1013は、終了実行回数に加えて、ログ出力実行回数を、試験終了手段202及びシミュレータ103に通知する。ログ出力実行回数は、試験命令列501の実行に係るログを出力するタイミングを示す命令の合計の実行回数である。換言すると、試験命令列501の実行を開始してから、命令の実行の累積回数がログ出力実行回数に達した場合に、ログ情報が出力される。
【0069】
ログ出力実行回数には、終了実行回数より1つ又は所定数分、小さい数が設定されてもよい。または、ログ出力実行回数には、任意の命令に対応する実行回数が設定されてもよい。ログ出力実行回数は、2つ以上の異なる値が指定されてもよい。
【0070】
図5のフローチャートにおいて、ステップS309の後、試験終了手段202は、実行命令数カウンタ201の値と、ステップS307で通知されたログ出力実行回数とを比較する(ステップS320)。一致する場合(ステップS320のYES)、試験終了手段202は、試験プログラム500の実行に係るログ情報を出力させる(ステップS321)。例えば、試験終了手段202は、システムコール等の命令や、APIを使用してログ情報を取得する。
【0071】
同様にして、シミュレータ103は、ステップS311の後、実行命令数カウンタ1030の値と、ステップS307で通知されたログ出力実行回数とを比較する(ステップS322)。一致する場合(ステップS322のYES)、シミュレータ103は、試験プログラム500の実行に係るログ情報を出力する(ステップS323)。
【0072】
ログ情報は、例えば、予め指定された種別の情報を含む。ログ情報は、ステップS315のログ情報と同一であってもいいし、異なってもよい。なお、シミュレータ103は、必ずしも、ログ情報を出力しなくてもよい。
【0073】
このように、第2実施形態における被試験装置2の通信部は、命令列の実行に係るログ情報を出力させる、命令の合計の実行回数を示すログ出力実行回数の指定をさらに受け付ける。試験制御部は、制御部による命令列の実行中に、命令を実行した回数がログ出力実行回数に達した場合に、ログ情報を取得する。
【0074】
これにより、任意の命令実行回数に達した時点におけるログ情報を出力させることができる。すなわち、試験命令列501の実行を途中で終了する場合に、最後の命令の1つ前の命令の実行後におけるログ情報を取得できる。換言すると、試験命令列501の中断による終了後のログ情報だけでなく、終了前に実行される任意の命令の実行後のログ情報を取得することができる。
【0075】
これにより、例えば、不一致の原因となる命令の1つ前の命令の実行後のログ情報と、不一致の原因となる命令の実行後のログ情報とを取得し、双方のログ情報を比較できる。これにより、実行結果の不一致が検出された場合に、被試験装置2の実行状態をより効率的に解析可能できる。
【0076】
(最小構成例)
以下、最小構成例に係る情報処理装置(被試験装置)2について説明する。
図6は、各実施形態による情報処理装置2の最小構成例を示すブロック図である。図7は、最小構成の情報処理装置2による処理フローを示す図である。複数の命令を含む命令列を実行する制御部(CPU)21と、通信部22と、試験制御部(試験終了手段)202とを有する。通信部22は、命令の合計の実行回数を示す終了実行回数の指定を受け付ける(ステップS701)。試験終了手段202は、制御部21による命令列の実行中に、命令を実行した回数が前記終了実行回数に達した場合に、前記命令列の実行を途中で終了させる(ステップS702)。
【0077】
(コンピュータ構成)
上述の情報処理装置は内部に、コンピュータシステムを有している。そして、上述した情報処理装置の動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD-ROM(Read Only Memory)、DVD-ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【0078】
本実施の形態におけるプログラムは、コンピュータに発揮させる機能の一部を実現するためのものであってもよい。例えば、プログラムは、ストレージに既に記憶されている他のプログラムとの組み合わせ、または他の装置に実装された他のプログラムとの組み合わせによって機能を発揮させるものであってもよい。
【0079】
なお、他の実施形態においては、コンピュータは、上記構成に加えて、または上記構成に代えてPLD(Programmable Logic Device)などのカスタムLSI(Large Scale Integrated Circuit)を備えてもよい。PLDの例としては、PAL(Programmable Array Logic)、GAL(Generic Array Logic)、CPLD(Complex Programmable Logic Device)、FPGA(Field Programmable Gate Array)が挙げられる。この場合、プロセッサによって実現される機能の一部または全部が当該集積回路によって実現されてよい。
【0080】
ストレージの例としては、磁気ディスク、光磁気ディスク、半導体メモリ等が挙げられる。ストレージは、コンピュータのバスに直接接続された内部メディアであってもよいし、インタフェースまたは通信回線を介してコンピュータに接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータに配信される場合、配信を受けたコンピュータが当該プログラムをメインメモリに展開し、上記処理を実行してもよい。少なくとも1つの実施形態において、ストレージは、非一時的な記録媒体である。
【0081】
また、当該プログラムは、前述した機能の一部を実現するためのものであってもよい。
さらに、当該プログラムは、前述した機能をストレージに既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0082】
上記の実施形態の一部又は全部は、以下のようにも記載されうるが、以下には限られない。
【符号の説明】
【0083】
300…試験システム、
1…試験装置、
2…被試験装置、
10…主記憶装置、
11…制御部、
12…通信部、
13…補助記憶装置、
20…主記憶装置、
21…制御部、
22…通信部、
23…補助記憶装置、
100…オペレーティングシステム、
101…試験タスク、
103…シミュレータ、
1010…試験プログラム生成手段、
1011…試験実行手段、
1012…実行結果比較手段、
1013…再試験実行手段、
1014…通信手段、
1030…実行命令数カウンタ、
201…実行命令数カウンタ、
202…試験終了手段
図1
図2
図3
図4
図5
図6
図7