JP2020153804A - 試験装置、試験方法及びコンピュータプログラム - Google Patents

試験装置、試験方法及びコンピュータプログラム Download PDF

Info

Publication number
JP2020153804A
JP2020153804A JP2019052214A JP2019052214A JP2020153804A JP 2020153804 A JP2020153804 A JP 2020153804A JP 2019052214 A JP2019052214 A JP 2019052214A JP 2019052214 A JP2019052214 A JP 2019052214A JP 2020153804 A JP2020153804 A JP 2020153804A
Authority
JP
Japan
Prior art keywords
test
instruction
subset
execution
simulator
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.)
Granted
Application number
JP2019052214A
Other languages
English (en)
Other versions
JP6912104B2 (ja
Inventor
修 藤巻
Osamu Fujimaki
修 藤巻
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.)
NEC Platforms Ltd
Original Assignee
NEC Platforms 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 NEC Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2019052214A priority Critical patent/JP6912104B2/ja
Publication of JP2020153804A publication Critical patent/JP2020153804A/ja
Application granted granted Critical
Publication of JP6912104B2 publication Critical patent/JP6912104B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

【課題】被試験装置の試験に要する時間を短縮することができる試験装置、試験方法及びコンピュータプログラムを提供する。【解決手段】実施形態の試験装置は、試験対象の情報処理装置が有する複数のプロセッサのシミュレータと、シミュレータ及び複数のプロセッサのそれぞれに同じ命令セットを実行させ、シミュレータ及び複数のプロセッサの実行結果が一致しない場合に、実行結果が不一致となった命令を特定する命令特定処理を実行する試験実行部と、を備える。試験実行部は、命令特定処理において、命令セットの先頭から連続する1以上の命令で構成される命令のサブセットであってプロセッサごとに異なる数の命令で構成されるサブセットを複数のプロセッサに実行させ、各プロセッサによるサブセットの実行結果と、シミュレータによるサブセットの実行結果とを比較することにより不一致となった命令を特定する。【選択図】図2

Description

本発明は、試験装置、試験方法及びコンピュータプログラムに関する。
被試験装置によるプログラムの実行結果と、シミュレータによる同プログラムの実行結果との同一性を確認することにより、被試験装置が有するプロセッサの正常性を確認する試験が行われている。このような試験では、被試験装置の実行結果と、シミュレータの実行結果とが一致しない場合、どの命令において不一致が発生したかを特定するための処理(以下「命令特定処理」という。)が実行される場合がある。
特開2002−366536号公報 特開2000−347893号公報 特開平08−339388号公報 特開昭62−100844号公報
しかしながら、命令特定処理に要する時間は、試験に用いられるプログラムの規模に応じて増大する。そのため、被試験装置の試験に要する時間が増大してしまう可能性があった。
そこでこの発明は、上述の課題を解決することができる試験装置、試験方法及びコンピュータプログラムを提供することを目的としている。
本発明の一態様は、試験対象の情報処理装置が有する複数のプロセッサのシミュレータと、前記シミュレータ及び前記複数のプロセッサのそれぞれに同じ命令セットを実行させ、前記シミュレータ及び前記複数のプロセッサの実行結果が一致しない場合に、実行結果が不一致となった命令を特定する命令特定処理を実行する試験実行部と、を備え、前記試験実行部は、前記命令特定処理において、前記命令セットの先頭から連続する1以上の命令で構成される前記命令のサブセットであって前記プロセッサごとに異なる数の命令で構成されるサブセットを前記複数のプロセッサに実行させ、各プロセッサによる前記サブセットの実行結果と、前記シミュレータによる前記サブセットの実行結果とを比較することにより前記不一致となった命令を特定する、試験装置である。
また、本発明の一態様は、試験対象の情報処理装置が有する複数のプロセッサのシミュレータを備える試験装置が、前記シミュレータ及び前記複数のプロセッサのそれぞれに同じ命令セットを実行させるステップと、前記シミュレータ及び前記複数のプロセッサの実行結果が一致しない場合に、実行結果が不一致となった命令を特定する命令特定処理を実行するステップと、を有し、前記命令特定処理において、前記命令セットの先頭から連続する1以上の命令で構成される前記命令のサブセットであって前記プロセッサごとに異なる数の命令で構成されるサブセットを前記複数のプロセッサに実行させ、各プロセッサによる前記サブセットの実行結果と、前記シミュレータによる前記サブセットの実行結果とを比較することにより前記不一致となった命令を特定する、試験方法である。
また、本発明の一態様は、試験対象の情報処理装置が有する複数のプロセッサのシミュレータと、前記シミュレータ及び前記複数のプロセッサのそれぞれに同じ命令セットを実行させ、前記シミュレータ及び前記複数のプロセッサの実行結果が一致しない場合に、実行結果が不一致となった命令を特定する命令特定処理を実行する試験実行部と、を備え、前記試験実行部は、前記命令特定処理において、前記命令セットの先頭から連続する1以上の命令で構成される前記命令のサブセットであって前記プロセッサごとに異なる数の命令で構成されるサブセットを前記複数のプロセッサに実行させ、各プロセッサによる前記サブセットの実行結果と、前記シミュレータによる前記サブセットの実行結果とを比較することにより前記不一致となった命令を特定する試験装置、としてコンピュータを機能させるためのコンピュータプログラムである。
本発明によれば、複数のプロセッサを有する被試験装置の試験に要する時間を短縮することが可能となる。
第1実施形態における試験システムの構成例を示す図である。 第1実施形態における試験システムの機能構成の具体例を示すブロック図である。 第1実施形態においてテストプログラムを構成する命令セットの具体例を示す図である。 第1実施形態の試験システムにおいて実行されるランダム試験の具体例を示すフローチャートである。 第1実施形態における命令特定処理の具体例を示すフローチャートである。 第1実施形態において1回目に実行される置換処理の具体例を示す図である。 第1実施形態において2回目に実行される置換処理の具体例を示す図である。 第1実施形態の試験装置1の変形例を示す図である。 第2実施形態における試験システムの機能構成の具体例を示すブロック図である。 第2実施形態における命令特定処理の具体例を示すフローチャートである。 第2実施形態において1回目に実行される置換処理の具体例を示す図である。 第2実施形態において2回目に実行される置換処理の具体例を示す図である。
以下、本発明の一実施形態による試験装置、試験方法及びコンピュータプログラムを図面を参照して説明する。
[第1実施形態]
図1は、第1実施形態における試験システムの構成例を示す図である。図1に示す試験システム100は、第1実施形態における情報処理装置の試験システムの一例である。試験システム100は、試験装置1及び被試験装置2を備える。試験装置1は被試験装置2に対してランダム試験を行う装置の一例であり、被試験装置2はそのランダム試験の対象となる情報処理装置の一例である。ここで、ランダム試験とは、ソフトウェアにランダムな入力を与えてエラーの検出を行い、信頼性や性能などを確認するテストのことである。
試験装置1は、例えば、CPU(Central Processing Unit)11と、主記憶装置12と、通信部13と、補助記憶装置14と、を備える。試験装置1において、CPU11と、主記憶装置12と、通信部13と、補助記憶装置14と、はバスB1を介した情報の入出力が可能である。また、試験装置1は、通信部13を介して、被試験装置2と通信可能に接続される。
補助記憶装置14は、例えば磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。補助記憶装置14は「ランダム試験プログラム」を予め記憶している。ランダム試験プログラムは、試験装置1が被試験装置2に対してランダム試験を行うために実行するプログラムである。ランダム試験プログラムは、CPU11によって補助記憶装置14から読み出され、主記憶装置12に展開されることで実行される。
被試験装置2は、例えば、複数のCPU21と、主記憶装置22と、通信部23と、補助記憶装置24と、を備える。図1は、複数のCPU21の一例として、4つのCPU#1〜#4を示す。被試験装置2において、複数のCPU21と、主記憶装置22と、通信部23と、補助記憶装置24とはバスB2を介した情報の入出力が可能である。また、被試験装置2は、通信部23を介して、試験装置1と通信可能に接続される。
補助記憶装置24は、例えば磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。補助記憶装置24は「連携プログラム」を予め記憶している。連携プログラムは、試験装置1との連携動作により自装置のランダム試験を実現するプログラムである。連携プログラムは、複数のCPU21の一部又は全部によって補助記憶装置24から読み出され、主記憶装置22に展開されることで実行される。なお、被試験装置2は、ランダム試験の対象となるCPU21とは別に、連携プログラムを実行する専用のプロセッサ(図示せず)を備えてもよい。
図2は、第1実施形態における試験システム100の機能構成の具体例を示すブロック図である。例えば、試験装置1は、CPU11が補助記憶装置14に記録されているランダム試験プログラムを読み出して実行することにより、試験データ記憶部101、ランダム試験実行制御部102及びシミュレータ103を備える装置として機能する。
なお、試験装置1の各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されてもよい。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。プログラムは、電気通信回線を介して送信されてもよい。
試験データ記憶部101は、補助記憶装置14を用いて実現される情報の記憶部であり、ランダム試験において被試験装置2に実行させるテスト用のプログラム(以下「テストプログラム」という。)の生成(又は決定)や実行に関する各種データ(以下「試験データ」という。)を記憶する。
例えば、試験データには、テストプログラムの生成に用いられる複数種類の命令が含まれており、これらの命令を乱数を用いて組み合わせることによってランダムなテストプログラムが生成される。また、例えば、試験データには、テストプログラムに入力するデータ(以下「テストデータ」という。)を生成するための情報も含まれており、これらの情報と乱数に基づいてランダムなテストデータが生成される。
また、例えば、試験データには、予め用意された複数パターンのテストプログラムと、複数パターンのテストデータとが含まれてもよい。この場合、試験に用いるテストプログラム及びテストデータは、予め用意された複数パターンの中から乱数を用いてランダムに選択されてもよい。
ランダム試験実行制御部102は、被試験装置2に対するランダム試験の実行を制御する機能を有する。具体的には、ランダム試験実行制御部102は、試験データ記憶部101に記憶されている試験データに基づいてテストプログラム及びテストデータを生成し、生成したテストプログラムの実行をシミュレータ103に指示する。一方で、ランダム試験実行制御部102は、被試験装置2に対して複数のCPU21のそれぞれでのテストプログラムの実行を指示する。
ランダム試験実行制御部102は、複数のCPU21によるテストプログラムの実行結果のいずれかがシミュレータ103の実行結果に一致しない場合に、実行結果が不一致となった命令を特定する「命令特定処理」を実行する。命令特定処理の詳細については後述する。なお、テストプログラムは必ずしもテストデータの入力を必要とするものでなくてもよく、テストプログラムが入力データを必要としない場合には、ランダム試験実行制御部102はテストデータの生成を省略してもよい。
シミュレータ103は、被試験装置2が有する複数のCPU21の動作を模擬するソフトウェア又はハードウェアである。シミュレータ103はランダム試験実行制御部102によって指定されたテストプログラムを実行し、その実行結果をランダム試験実行制御部102に出力する。
また、例えば、被試験装置2は、CPU21が補助記憶装置24に記録されている連携プログラムを読み出して実行することにより、第1の実行部201−1、第2の実行部201−2、第3の実行部201−3、第4の実行部201−4及びテスト連携部202を備える装置として機能する。
なお、被試験装置2の各機能の全て又は一部は、ASICやPLDやFPGA等のハードウェアを用いて実現されてもよい。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。プログラムは、電気通信回線を介して送信されてもよい。
第1の実行部201−1、第2の実行部201−2、第3の実行部201−3及び第4の実行部201−4は、ランダム試験実行制御部102によって指定されたテストプログラムを、複数のCPU21のうち互いに異なるいずれかのCPUで実行する機能を有する。具体的には、第1の実行部201−1はCPU#1にテストプログラムを実行させる。同様に、第2の実行部201−2はCPU#2に、第3の実行部201−3はCPU#3に、第4の実行部201−4はCPU#4に、それぞれテストプログラムを実行させる。
第1の実行部201−1、第2の実行部201−2、第3の実行部201−3及び第4の実行部201−4は、テスト連携部202を介して試験装置1からテストプログラム及びテストデータを取得し、取得したテストプログラムを構成する一連の命令列(以下「命令セット」という。)の一部又は全部を実行し、その実行結果をテスト連携部202に出力する。命令セットは、1以上の命令と、その実行順序によって定義される。以下、特に区別しない場合、実行部201−1、第2の実行部201−2、第3の実行部201−3及び第4の実行部201−4を実行部201と記載する。
図3は、第1実施形態においてテストプログラムを構成する命令セットの具体例を示す図である。例えば、図3は、第1命令〜第100命令までを順に実行し、最後に全命令の実行終了を通知する終了通知命令を実行するテストプログラムの例を示す。ここで、実行部201は、命令セットの実行範囲について特に指定がない場合、命令セットの先頭から最後尾の命令までを実行順序のとおりに実行する。
一方、実行部201は、命令セットの実行範囲がテストカウンタによって指定されている場合、命令セットの先頭からテストカウンタが示す実行順序の値(以下「カウンタ値」という。)までの一連の命令列(以下「命令サブセット」という。)を実行する。カウンタ値は、ランダム試験実行制御部102の指示に応じてテスト連携部202が必要に応じて更新する。
例えば、図3の例において命令サブセットが設定されていない場合、実行部201は第1命令〜第100命令までを順に実行し、最後に終了通知命令を実行してテストプログラムの実行を終了する。一方、図3の例においてカウンタ値が3に設定されている場合、実行部201は第1命令から第3命令までを順に実行してテストプログラムの実行を終了する。このようなカウンタ値の設定により、ランダム試験実行制御部102は、個々のCPU21に対して、命令セットの先頭からカウンタ値までの任意の範囲の命令サブセットを実行させることができる。なお、ここで説明した実行部201の動作は、CPU21の動作を模擬するシミュレータ103についても同様である。
図2の説明に戻る。テスト連携部202は、試験装置1のランダム試験実行制御部102と連携して被試験装置2のランダム試験を実現する機能を有する。具体的には、テスト連携部202は、ランダム試験実行制御部102からテストプログラム及びテストデータを取得して各実行部201に出力することで、CPU#1〜#4のそれぞれにテストプログラムを実行させる。また、テスト連携部202は、各実行部201からCPU#1〜#4によるテストプログラムの実行結果を取得し、取得した実行結果をランダム試験実行制御部102に出力する。
また、テスト連携部202は、命令特定処理において、複数のCPU21に実行させる命令サブセットの範囲をそれぞれのCPU21ごとに設定する機能を有する。具体的には、テスト連携部202は、CPU#1〜#4のそれぞれについて別々のカウンタ値を設定することにより、CPU#1〜#4のそれぞれに実行させる命令サブセットの範囲を指定する。なお、各CPUに設定すべきカウンタ値はランダム試験実行制御部102によって決定され、テスト連携部202はランダム試験実行制御部102から通知される値でカウンタ値を更新する。
図4は、第1実施形態の試験システム100において実行されるランダム試験の具体例を示すフローチャートである。まず、試験装置1において、ランダム試験実行制御部102が、テストプログラムを生成する(ステップS101)。例えば、ランダム試験実行制御部102は、図3に示したテストプログラムを生成する。具体的には、ランダム試験実行制御部102は、試験データ記憶部101から試験データを取得するとともに乱数を生成し、生成した乱数に基づいて複数の命令を組み合わせることによってテストプログラムを生成する。
続いて、ランダム試験実行制御部102は、ステップS101で生成したテストプログラムに入力するテストデータを生成する(ステップS102)。具体的には、ランダム試験実行制御部102は、試験データ記憶部101から試験データを取得するとともに乱数を生成し、生成した乱数に基づいてテストデータを生成する。ランダム試験実行制御部102は、生成したテストプログラム及びテストデータをシミュレータ103及び被試験装置2に出力する(ステップS103)。
続いて、ランダム試験実行制御部102がシミュレータ103にテストプログラムの実行を指示し、この指示に応じてシミュレータ103がテストプログラムを実行する(ステップS104)。シミュレータ103はテストプログラムの実行結果をランダム試験実行制御部102に出力する。
同様に、ランダム試験実行制御部102は被試験装置2にテストプログラムの実行を指示し、この指示に応じて被試験装置2が複数のCPU21のそれぞれでテストプログラムを実行する(ステップS105)。具体的には、テスト連携部202が、ランダム試験実行制御部102の指示に応じて、各実行部201にテストプログラムの実行を指示する。この指示に応じて各実行部201がテストプログラムを実行し、各実行部201はテストプログラムの実行結果をテスト連携部202に出力する。テスト連携部202は各実行部201によるテストプログラムの実行結果をランダム試験実行制御部102に出力する。
続いて、試験装置1において、ランダム試験実行制御部102が、被試験装置2の複数のCPU21によるテストプログラムの実行結果が、シミュレータ103によるテストプログラムの実行結果に一致しているか否かを判定する(ステップS106)。複数のCPU21によるテストプログラムの実行結果の全てが、シミュレータ103によるテストプログラムの実行結果に一致している場合(ステップS106−YES)、ランダム試験実行制御部102は、異常なしとしてランダム試験を終了する。
一方、複数のCPU21によるテストプログラムの実行結果のいずれかが、シミュレータ103によるテストプログラムの実行結果に一致していない場合(ステップS106−NO)、ランダム試験実行制御部102は当該テストプログラムについての命令特定処理を実行し(ステップS107)、実行結果が一致しなかった命令を特定した上でランダム試験を終了する。
図5は、第1実施形態における命令特定処理の具体例を示すフローチャートである。まず、ランダム試験実行制御部102は、複数のCPU21のうち、テストプログラムの実行結果がシミュレータ103と一致しなかったCPUで実行されたテストプログラム、及びそのテストデータを命令特定処理において検査対象とするテストプログラム(以下「検査対象プログラム」という。)及びテストデータ(以下「検査対象データ」という。)として被試験装置2から取得する。ランダム試験実行制御部102は、取得した検査対象プログラム及び検査対象データをシミュレータ103及び被試験装置2に出力する(ステップS201)。
続いて、ランダム試験実行制御部102は、シミュレータ103及び被試験装置2の複数のCPU21のテストカウンタに複数のCPU21の数に応じた値を設定する。例えば、ランダム試験実行制御部102は、CPU#i(i=1,2,3,4)のカウンタ値をiとし(ステップS202)、シミュレータ103のテストカウンタに各CPU#iのカウンタ値の最大値(すなわちCPU#4のカウンタ値である4)を設定する(ステップS203)。
さらに、ランダム試験実行制御部102は、CPU#iについて、テストカウンタの現在値+1番目の命令、すなわち検査対象プログラムに含まれる命令セットの先頭からi+1番目の命令を終了通知命令に置換する処理(以下「置換処理」という。)を実行する(ステップS204)。そして、ランダム試験実行制御部102は、CPU#i及びシミュレータ103に対して、検査対象プログラムに含まれる命令セットの先頭からカウンタ値までの一連の命令列(すなわち命令サブセット)を実行させる(ステップS205)。
具体的には、ランダム試験実行制御部102は、CPU#1〜#4について、図3に例示した命令セットを図6に示す命令セットに変更する置換処理を実行する。図6(A)〜図6(D)は、それぞれCPU#1〜#4についての置換処理の結果を示す。また、図6(A)〜図6(D)の各命令セットの左側に示した矢印は、ステップS202において設定されたテストカウンタの値を示している。すなわち、図6(A)〜図6(D)に示す各命令セットにおいて、網掛けされていない部分(すなわち実行順序が1〜i+1までの範囲)の一連の命令列が命令サブセットとなる。一方、網掛けされた部分の命令列は、テストカウンタによって命令サブセットが指定されているときには実行されない無効な命令列として扱われる。
この場合、図6(A)に示すCPU#1(i=1)の例では、カウンタ値が1(=i)に設定されているため、命令セットの先頭から2(=i+1)番目の命令が終了通知命令に置換される。また、図6(B)に示すCPU#2(i=2)の例では、カウンタ値が2に設定されているため、命令セットの先頭から3番目の命令が終了通知命令に置換される。また、図6(C)に示すCPU#3(i=3)の例では、カウンタ値が3に設定されているため、命令セットの先頭から4番目の命令が終了通知命令に置換される。また、図6(D)に示すCPU#4(i=4)の例では、カウンタ値が4に設定されているため、命令セットの先頭から5番目の命令が終了通知命令に置換される。
このような置換処理が行われた各CPU21の命令セットについて、その実行範囲が個々のテストカウンタによって指定されることにより、CPU21の数に応じた範囲の命令サブセットが各CPU21において実行される。例えば、CPU#1では第1命令が、CPU#2では第1命令及び第2命令が、CPU#3では第1命令〜第3命令が、CPU#4では第1命令〜第4命令が、それぞれ実行される。
ランダム試験実行制御部102は、このようなテストカウンタの設定により、実行範囲が1命令ずつ異なる複数の命令サブセットの実行結果を取得することができる。また、ランダム試験実行制御部102は、このように取得した複数の命令サブセットの実行結果に基づいて、検査対象プログラムにおいて不一致となった命令を特定することができる。
例えば、ランダム試験実行制御部102は、図6(A)に示す命令サブセットの実行結果がシミュレータ103の実行結果に一致し、かつ、図6(B)に示す命令サブセットの実行結果がシミュレータ103の実行結果に一致しない場合、図6(B)に示す命令サブセットの末尾の第6命令が不一致となった命令であると特定することができる。
同様に、ランダム試験実行制御部102は、図6(B)に示す命令サブセットの実行結果がシミュレータ103の実行結果に一致し、かつ、図6(C)に示す命令サブセットの実行結果がシミュレータ103の実行結果に一致しない場合、図6(C)に示す命令サブセットの末尾の第7命令が不一致となった命令であると特定することができる。
同様に、ランダム試験実行制御部102は、図6(C)に示す命令サブセットの実行結果がシミュレータ103の実行結果に一致し、かつ、図6(D)に示す命令サブセットの実行結果がシミュレータ103の実行結果に一致しない場合、図6(D)に示す命令サブセットの末尾の第8命令が不一致となった命令であると特定することができる。
図5の説明に戻る。続いて、ランダム試験実行制御部102は、被試験装置2による検査対象プログラムの実行結果が全てのCPUでシミュレータ103の実行結果に一致しているか否かを判定する(ステップS206)。いずれかのCPUの実行結果がシミュレータ103の実行結果に一致していない場合(ステップS206−NO)、ランダム試験実行制御部102はその旨を示すエラー情報を出力する(ステップS207)。
一方、実行結果が全てのCPUでシミュレータ103の実行結果に一致している場合(ステップS206−YES)、ランダム試験実行制御部102は検査対象プログラムを構成する命令セットに含まれる全ての命令について検査が完了したか否かを判定する(ステップS208)。なお、ここでの検査とは、検査対象の命令を複数のCPU21のうちのいずれかのCPU及びシミュレータ103に実行させ、その実行結果が一致するか否かを判定することである。
ここで検査が完了していない命令がある場合(ステップS208−NO)、ランダム試験実行制御部102は各CPU#iのテストカウンタの値をそれぞれ4増加させる(ステップS209)。そして、ランダム試験実行制御部102は、シミュレータ103のテストカウンタに各CPU#iのカウンタ値の最大値(すなわちCPU#4と同じ値)を設定し(ステップS210)、ステップS204に処理を戻す。これにより、命令セットの置換処理が更新後のカウンタ値に基づいて再度実行される。
例えば、図6に示した1回目の置換処理が実行された後、図7に示す2回目の置換処理が実行される。この2回目の置換処理において、ランダム試験実行制御部102は、図6に示した置換処理後の命令セットを一旦置換処理前の状態に戻した上で、新たなカウンタ値に基づいて1回目の置換処理と同様の処理を行うことにより、図7に示す命令セットを生成する。
この場合、図7(A)に示すCPU#1(i=1)の例では、カウンタ値が直前のステップS209において5(=i+4)に設定されているため、命令セットの先頭から6(=i+1)番目の命令が終了通知命令に置換される。また、図7(B)に示すCPU#2(i=2)の例では、カウンタ値が6に設定されているため、命令セットの先頭から7番目の命令が終了通知命令に置換される。また、図7(C)に示すCPU#3(i=3)の例では、カウンタ値が7に設定されているため、命令セットの先頭から8番目の命令が終了通知命令に置換される。また、図7(D)に示すCPU#4(i=4)の例では、カウンタ値が8に設定されているため、命令セットの先頭から9番目の命令が終了通知命令に置換される。
このような置換処理が行われた各CPU21の命令セットについて、その実行範囲が個々のテストカウンタによって指定されることにより、CPU21の数に応じた範囲の命令サブセットが各CPU21において実行される。例えば、CPU#1では第1命令〜第5命令が、CPU#2では第1命令〜第6命令が、CPU#3では第1命令〜第7命令が、CPU#4では第1命令〜第8命令が、それぞれ実行される。
また、このようなカウンタ値の更新と命令サブセットの検査とが繰り返し実行されることにより、CPU21の数(本実施形態では4)と同数の命令ずつ検査範囲を徐々に拡大させながら検査対象プログラムを検査することができる。
一方、全ての命令について検査が完了している場合(ステップS208−YES)、ランダム試験実行制御部102は命令特定処理を終了する。例えば、CPU#1〜#4のうち、命令サブセットの実行が図3に示す命令セットの末尾の第100命令に最も早く到達するのはCPU#4である。そのため、この場合、ランダム試験実行制御部102はCPU#4から第100命令の実行結果が得られたことに応じて命令特定処理を終了する。
このように構成された第1実施形態の試験システム100では、試験装置1が、ランダム試験実行時の命令特定処理において、検査対象プログラムの命令セットを複数のCPU21に分散させて検査することにより、被試験装置2の試験に要する時間を短縮することが可能となる。
なお、第1実施形態の試験装置1は必ずしも試験データを記憶している必要はない。例えば、試験装置1は試験データを他の装置や外部システムから取得するように構成されてもよい。また、この場合、試験装置1は、図8に示すように少なくともランダム試験実行制御部102及びシミュレータ103を備える装置として構成されてもよい。
[第2実施形態]
図9は、第2実施形態における試験システム100aの機能構成の具体例を示すブロック図である。試験システム100aは、試験装置1に代えて試験装置1aを備える点で第1実施形態における試験システム100と異なる。また、試験装置1aは、ランダム試験実行制御部102に代えてランダム試験実行制御部102aを備える点で第1実施形態の試験装置1と異なる。試験システム100aのその他の構成は第1実施形態における試験システム100と同様である。そのため、図9においては、第1実施形態と同様の構成については図2と同じ符号を付すことにより説明を省略する。なお、第2実施形態における試験システム100aは機能構成が第1実施形態と異なるのみでシステム構成は第1実施形態と同様である(図1参照)。
ランダム試験実行制御部102aは、基本的には第1実施形態におけるランダム試験実行制御部102と同様の機能を有するが、命令特定処理におけるテストカウンタの設定方法において第1実施形態におけるランダム試験実行制御部102と異なる。
図10は、第2実施形態における命令特定処理の具体例を示すフローチャートである。図10に示すフローチャートは、ステップS202a、S203a、S209a及びS210aにおいて図5に示したフローチャートと異なり、それ以外の処理は第1実施形態と同様である。そのため、図10においては、第1実施形態と同様の処理については図5と同じ符号を付すことにより説明を省略する。
ステップS202aは、ランダム試験実行制御部102aが、CPU#i(i=1,2,3,4)のカウンタ値を101−iとする点で第1実施形態におけるステップS202と異なる。
また、ステップS203a及びS210aは、ランダム試験実行制御部102aが、シミュレータ103のテストカウンタに各CPU#iのカウンタ値の最大値(すなわちCPU#1のカウンタ値)を設定する点で第1実施形態におけるステップS203及びS210と異なる。具体的には、ステップS203aではシミュレータ103のテストカウンタに100が設定され、1回目のステップS210aではシミュレータ103のテストカウンタに96が設定される。
ステップS209aは、ランダム試験実行制御部102aが、CPU#i(i=1,2,3,4)のカウンタ値を−4する点で第1実施形態におけるステップS209と異なる。
具体的には、ランダム試験実行制御部102aは、CPU#1〜#4について、図3に例示した命令セットを図11に示す命令セットに変更する置換処理を実行する。図11(A)〜図11(D)は、それぞれCPU#1〜#4についての置換処理の結果を示す。
この場合、図11(A)に示すCPU#1(i=1)の例では、カウンタ値が100(=101−i)に設定されているため、命令セットの先頭から数えて101(=102−i)番目の命令が終了通知命令に置換される。
同様に、図11(B)に示すCPU#2(i=2)の例では、カウンタ値が99に設定されているため、命令セットの先頭から数えて100番目の命令が終了通知命令に置換される。図11(C)に示すCPU#3(i=3)の例では、カウンタ値が98に設定されているため、命令セットの先頭から数得て99番目の命令が終了通知命令に置換される。図11(D)に示すCPU#4(i=4)の例では、カウンタ値が97に設定されているため、命令セットの先頭から数えて98番目の命令が終了通知命令に置換される。
このような置換処理が行われた各CPU21の命令セットについて、その実行範囲が個々のテストカウンタによって指定されることにより、CPU21の数に応じた範囲の命令サブセットが各CPU21において実行される。例えば、CPU#1では第1命令〜第100命令が、CPU#2では第1命令〜第99命令が、CPU#3では第1命令〜第98命令が、CPU#4では第1命令〜第97命令が、それぞれ実行される。
ランダム試験実行制御部102aは、このようなテストカウンタの設定により、実行範囲が1命令ずつ異なる複数の命令サブセットの実行結果を取得することができる。また、ランダム試験実行制御部102aは、このように取得した複数の命令サブセットの実行結果に基づいて、検査対象プログラムにおいて不一致となった命令を特定することができる。
例えば、ランダム試験実行制御部102aは、図11(A)に示す命令サブセットの実行結果がシミュレータ103の実行結果に一致せず、かつ、図11(B)に示す命令サブセットの実行結果がシミュレータ103の実行結果に一致している場合、図11(A)に示す命令サブセットの末尾の第100命令が不一致となった命令であると特定することができる。
同様に、ランダム試験実行制御部102aは、図11(B)に示す命令サブセットの実行結果がシミュレータ103の実行結果に一致せず、かつ、図11(C)に示す命令サブセットの実行結果がシミュレータ103の実行結果に一致している場合、図11(B)に示す命令サブセットの末尾の第99命令が不一致となった命令であると特定することができる。
同様に、ランダム試験実行制御部102aは、図11(C)に示す命令サブセットの実行結果がシミュレータ103の実行結果に一致せず、かつ、図11(D)に示す命令サブセットの実行結果がシミュレータ103の実行結果に一致している場合、図11(C)に示す命令サブセットの末尾の第98命令が不一致となった命令であると特定することができる。
また、この場合、例えば、図11に示した1回目の置換処理が実行された後、図12に示す2回目の置換処理が実行される。この2回目の置換処理において、ランダム試験実行制御部102aは、図11に示した置換処理後の命令セットを一旦置換処理前の状態に戻した上で、新たなカウンタ値に基づいて1回目の置換処理と同様の処理を行うことにより、図12に示す命令セットを生成する。
この場合、図12(A)に示すCPU#1(i=1)の例では、カウンタ値が直前のステップS209aにおいて96(=101−i−4)に設定されているため、命令セットの先頭から数えて97(=i+1)番目の命令が終了通知命令に置換される。
同様に、図12(B)に示すCPU#2(i=2)の例では、カウンタ値が95に設定されているため、命令セットの先頭から数えて96番目の命令が終了通知命令に置換される。また、図12(C)に示すCPU#3(i=3)の例では、カウンタ値が94に設定されているため、命令セットの先頭から数えて95番目の命令が終了通知命令に置換される。また、図12(D)に示すCPU#4(i=4)の例では、カウンタ値が93に設定されているため、命令セットの先頭から数えて94番目の命令が終了通知命令に置換される。
このような置換処理が行われた各CPU21の命令セットについて、その実行範囲が個々のテストカウンタによって指定されることにより、CPU21の数に応じた範囲の命令サブセットが各CPU21において実行される。例えば、CPU#1では第1命令〜第96命令が、CPU#2では第1命令〜第95命令が、CPU#3では第1命令〜第94命令が、CPU#4では第1命令〜第93命令が、それぞれ実行される。
また、このようなカウンタ値の更新と命令サブセットの検査とが繰り返し実行されることにより、CPU21の数(本実施形態では4)と同数の命令ずつ検査範囲を徐々に縮小させながら検査対象プログラムを検査することができる。
また、この場合、例えば、CPU#1〜#4のうち、検査対象の命令が図3に示す命令セットの先頭の第1命令に最も早く到達するのはCPU#4である。そのため、この場合、ランダム試験実行制御部102aはCPU#4から第1命令の実行結果が得られたことに応じて命令特定処理を終了する。
このような動作の違いにより、第2実施形態のランダム試験実行制御部102aは、第1実施形態におけるランダム試験実行制御部102がCPU21の数(本実施形態では4)と同数の命令ずつ検査範囲を徐々に拡大させながら検査対象プログラムを検査したのに対し、CPU21の数(本実施形態では4)と同数の命令ずつ検査範囲を徐々に縮小させながら検査対象プログラムを検査することができる。
このように構成された第2実施形態の試験システム100aでは、試験装置1aが、ランダム試験実行時の命令特定処理において、検査対象プログラムの命令セットを複数のCPU21に分散させて検査することにより、被試験装置2の試験に要する時間を短縮することが可能となる。
特に第2実施形態の試験装置1aは、不一致となった命令が命令セットの半分以降(すなわち半分から末尾側)に存在する場合に不一致となった命令をより早く特定することができる。これに対して第1実施形態の試験装置1は、不一致となった命令が命令セットの半分以前(すなわち半分から先頭側)に存在する場合に不一致となった命令をより早く特定することができる。第1実施形態の試験装置1及び第2実施形態の試験装置1aはこのような想定に応じて使い分けられるとよい。
本発明は、複数のプロセッサを有する被試験装置についてプロセッサの試験を行う試験装置に利用可能である。
100,100a…試験システム、1,1a…試験装置、11…CPU(中央演算処理装置:Central Processing Unit)、12…主記憶装置、13…通信部、14…補助記憶装置、101…試験データ記憶部、102,102a…ランダム試験実行制御部、103…シミュレータ、2…被試験装置、21…複数のCPU、22…主記憶装置、23…通信部、24…補助記憶装置、201,201−1〜201−4…実行部、202…テスト連携部、B1,B2…バス

Claims (8)

  1. 試験対象の情報処理装置が有する複数のプロセッサのシミュレータと、
    前記シミュレータ及び前記複数のプロセッサのそれぞれに同じ命令セットを実行させ、前記シミュレータ及び前記複数のプロセッサの実行結果が一致しない場合に、実行結果が不一致となった命令を特定する命令特定処理を実行する試験実行部と、
    を備え、
    前記試験実行部は、前記命令特定処理において、前記命令セットの先頭から連続する1以上の命令で構成される前記命令のサブセットであって前記プロセッサごとに異なる数の命令で構成されるサブセットを前記複数のプロセッサに実行させ、各プロセッサによる前記サブセットの実行結果と、前記シミュレータによる前記サブセットの実行結果とを比較することにより前記不一致となった命令を特定する、
    試験装置。
  2. 前記試験実行部は、前記複数のプロセッサに対して、それぞれ命令数が1ずつ異なるサブセットを実行させる、
    請求項1に記載の試験装置。
  3. 前記試験実行部は、所定数の命令を含むサブセットを実行する第1のプロセッサと、前記第1のプロセッサよりも命令が1つ多いサブセットを実行する第2のプロセッサと、の間で、各プロセッサによるサブセットの実行結果と前記シミュレータによるサブセットの実行結果との比較結果が異なる場合、前記第2のプロセッサが実行したサブセットの最後の命令が前記不一致となった命令であると特定する、
    請求項2に記載の試験装置。
  4. 前記試験実行部は、所定数の命令を含むサブセットを実行する第1のプロセッサと、前記第1のプロセッサよりも命令が1つ少ないサブセットを実行する第2のプロセッサと、の間で、各プロセッサによるサブセットの実行結果と前記シミュレータによるサブセットの実行結果との比較結果が異なる場合、前記第1のプロセッサが実行したサブセットの最後の命令が前記不一致となった命令であると特定する、
    請求項2に記載の試験装置。
  5. 前記試験実行部は、前記サブセットに含まれる命令数を前記プロセッサの数ずつ増加させながら、前記サブセットの実行及び実行結果の比較を前記複数のプロセッサに繰り返し実行させる、
    請求項3に記載の試験装置。
  6. 前記試験実行部は、前記サブセットに含まれる命令数を前記プロセッサの数ずつ減少させながら、前記サブセットの実行及び実行結果の比較を前記複数のプロセッサに繰り返し実行させる、
    請求項4に記載の試験装置。
  7. 試験対象の情報処理装置が有する複数のプロセッサのシミュレータを備える試験装置が、
    前記シミュレータ及び前記複数のプロセッサのそれぞれに同じ命令セットを実行させるステップと、
    前記シミュレータ及び前記複数のプロセッサの実行結果が一致しない場合に、実行結果が不一致となった命令を特定する命令特定処理を実行するステップと、
    を有し、
    前記命令特定処理において、前記命令セットの先頭から連続する1以上の命令で構成される前記命令のサブセットであって前記プロセッサごとに異なる数の命令で構成されるサブセットを前記複数のプロセッサに実行させ、各プロセッサによる前記サブセットの実行結果と、前記シミュレータによる前記サブセットの実行結果とを比較することにより前記不一致となった命令を特定する、
    試験方法。
  8. 試験対象の情報処理装置が有する複数のプロセッサのシミュレータと、
    前記シミュレータ及び前記複数のプロセッサのそれぞれに同じ命令セットを実行させ、前記シミュレータ及び前記複数のプロセッサの実行結果が一致しない場合に、実行結果が不一致となった命令を特定する命令特定処理を実行する試験実行部と、
    を備え、
    前記試験実行部は、前記命令特定処理において、前記命令セットの先頭から連続する1以上の命令で構成される前記命令のサブセットであって前記プロセッサごとに異なる数の命令で構成されるサブセットを前記複数のプロセッサに実行させ、各プロセッサによる前記サブセットの実行結果と、前記シミュレータによる前記サブセットの実行結果とを比較することにより前記不一致となった命令を特定する試験装置、
    としてコンピュータを機能させるためのコンピュータプログラム。
JP2019052214A 2019-03-20 2019-03-20 試験装置、試験方法及びコンピュータプログラム Active JP6912104B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019052214A JP6912104B2 (ja) 2019-03-20 2019-03-20 試験装置、試験方法及びコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019052214A JP6912104B2 (ja) 2019-03-20 2019-03-20 試験装置、試験方法及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2020153804A true JP2020153804A (ja) 2020-09-24
JP6912104B2 JP6912104B2 (ja) 2021-07-28

Family

ID=72558619

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019052214A Active JP6912104B2 (ja) 2019-03-20 2019-03-20 試験装置、試験方法及びコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP6912104B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022141461A (ja) * 2021-03-15 2022-09-29 Necプラットフォームズ株式会社 情報処理装置、情報処理システム、情報処理方法及びプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04102931A (ja) * 1990-08-22 1992-04-03 Nec Corp 情報処理装置の試験方式
JPH08166892A (ja) * 1994-12-13 1996-06-25 Hitachi Ltd データ処理装置の試験方法
JPH08339388A (ja) * 1995-06-09 1996-12-24 Fujitsu Ltd マルチプロセッサシステムにおける論理シミュレーション方法
JP2004086406A (ja) * 2002-08-26 2004-03-18 Fujitsu Ltd プロセッサの動作検証方法およびプロセッサの動作検証システム
US20160042116A1 (en) * 2013-04-22 2016-02-11 Samsung Electronics Co., Ltd. Apparatus and method for generating test cases for processor verification, and verification device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04102931A (ja) * 1990-08-22 1992-04-03 Nec Corp 情報処理装置の試験方式
JPH08166892A (ja) * 1994-12-13 1996-06-25 Hitachi Ltd データ処理装置の試験方法
JPH08339388A (ja) * 1995-06-09 1996-12-24 Fujitsu Ltd マルチプロセッサシステムにおける論理シミュレーション方法
JP2004086406A (ja) * 2002-08-26 2004-03-18 Fujitsu Ltd プロセッサの動作検証方法およびプロセッサの動作検証システム
US20160042116A1 (en) * 2013-04-22 2016-02-11 Samsung Electronics Co., Ltd. Apparatus and method for generating test cases for processor verification, and verification device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022141461A (ja) * 2021-03-15 2022-09-29 Necプラットフォームズ株式会社 情報処理装置、情報処理システム、情報処理方法及びプログラム
JP7343197B2 (ja) 2021-03-15 2023-09-12 Necプラットフォームズ株式会社 情報処理装置、情報処理システム、情報処理方法及びプログラム

Also Published As

Publication number Publication date
JP6912104B2 (ja) 2021-07-28

Similar Documents

Publication Publication Date Title
JP7110415B2 (ja) 故障注入方法、装置、電子設備、記憶媒体、及びプログラム
WO2017020590A1 (zh) 一种芯片验证方法和装置、设备、存储介质
US11036507B2 (en) Processor testing using pairs of counter incrementing and branch instructions
US8140901B2 (en) Validation of processors using a self-generating test case framework
WO2017145300A1 (ja) テストケース生成装置及びテストケース生成プログラム
KR20140126194A (ko) 프로세서 검증을 위한 테스트 케이스 생성 장치 및 방법과, 검증장치
EP3379276B1 (en) Hardware testing device and hardware testing method
CN104021072A (zh) 用于评估失效的软件程序的机器和方法
Hierons et al. Parallel algorithms for generating harmonised state identifiers and characterising sets
JP2016218997A (ja) 未知のバイナリプログラムに対する有効な入力の決定
JP6912104B2 (ja) 試験装置、試験方法及びコンピュータプログラム
US9959182B2 (en) Replicating test case data into a cache with non-naturally aligned data boundaries
US20140278334A1 (en) Method to verify correctness of computer system software and hardware components and corresponding test environment
CN107665169B (zh) 处理器程序的测试方法和装置
US10839132B2 (en) Automatic cover point generation based on register transfer level analysis
CN111597093B (zh) 一种异常处理方法、装置及其设备
US10481969B2 (en) Configurable system wide tests
JPWO2020194455A1 (ja) テストケース生成装置、テストケース生成方法、およびテストケース生成プログラム
US20050177773A1 (en) Software method for exhaustive variation of parameters, independent of type
US11501047B2 (en) Error injection for timing margin protection and frequency closure
KR20190070627A (ko) 처리 스케줄러를 이용한 워크플로우 장치 및 워크플로우 장치의 동작 방법
US10503854B1 (en) Method and system for generating validation tests
KR102002545B1 (ko) 가상화를 통한 코드 테스트 수행 자동화 방법 및 장치
WO2019142266A1 (ja) テストケース生成装置、テストケース生成方法およびテストケース生成プログラム
US7581150B2 (en) Methods and computer program products for debugging clock-related scan testing failures of integrated circuits

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200707

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210527

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210608

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210701

R150 Certificate of patent or registration of utility model

Ref document number: 6912104

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150