[go: up one dir, main page]

JP2018032062A - テスト項目生成方法、演算装置 - Google Patents

テスト項目生成方法、演算装置 Download PDF

Info

Publication number
JP2018032062A
JP2018032062A JP2016161716A JP2016161716A JP2018032062A JP 2018032062 A JP2018032062 A JP 2018032062A JP 2016161716 A JP2016161716 A JP 2016161716A JP 2016161716 A JP2016161716 A JP 2016161716A JP 2018032062 A JP2018032062 A JP 2018032062A
Authority
JP
Japan
Prior art keywords
test item
tasks
execution
task
item generation
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
JP2016161716A
Other languages
English (en)
Other versions
JP6637394B2 (ja
Inventor
雄一郎 中川
Yuichiro Nakagawa
雄一郎 中川
統宙 月舘
Tsunamichi TSUKIDATE
統宙 月舘
朋仁 蛯名
Tomohito Ebina
朋仁 蛯名
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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Automotive Systems 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 Hitachi Automotive Systems Ltd filed Critical Hitachi Automotive Systems Ltd
Priority to JP2016161716A priority Critical patent/JP6637394B2/ja
Priority to PCT/JP2017/026374 priority patent/WO2018037787A1/ja
Publication of JP2018032062A publication Critical patent/JP2018032062A/ja
Application granted granted Critical
Publication of JP6637394B2 publication Critical patent/JP6637394B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Debugging And Monitoring (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

【課題】マルチコアに対応した適切なテスト項目を作成する。【解決手段】複数のタスクを実行する複数のCPUコア、および複数のCPUコアがアクセスする共有資源を備える演算装置におけるテスト項目を生成するテスト項目生成方法は以下のとおりである。すなわち、コンピュータが、複数のタスクのうち、共有資源にアクセスするタスクを特定することと、コンピュータが、複数のタスクを、実行されるCPUコアごとに分類することと、コンピュータが、分類された複数のタスクのCPUコア内における実行順番を特定することと、コンピュータが、特定されたCPUコア内における複数のタスクの実行順番に適合し、かつ異なるCPUコアでそれぞれ実行される共有資源にアクセスする2以上のタスクの実行順番が互いに入れ替えられたタスク実行順列を複数生成することにより、テスト項目を生成することとを備える。【選択図】図3

Description

本発明は、テスト項目生成方法、および演算装置に関する。
近年、電子機器は多機能化により演算量が年々増加しており、電子機器に求められるCPUの性能が増加している。そのため、電子機器に搭載するCPUの数を増やすことや、CPUに内蔵するCPUコアの数を増やすことによって対応している。すなわちいずれの場合も電子機器に複数のCPUコアを搭載すること(マルチコア)により処理能力を向上させている。電子機器が複数のCPUコアを備える場合は、単一のCPUコアしか備えない場合に比べて動作が複雑化し、この動作を検証するためのテスト項目の作成が容易ではない。
特許文献1には、設計を検証する方法が開示されており、ある設計に対して離散的なテスト・ケースまたは1組の関連するテスト・ケースを実行するのに必要とされるリソースを抽出するステップを含む。この方法はさらに、抽出されたリソースに基づいてシミュレーション・モデルを構築するステップと、設計全体ではなく、抽出されたリソースだけを用いてこのシミュレーション・モデルを実行し、それによって、離散的なテスト・ケースまたは1組の関連するテスト・ケースによって表される特定の機能または一群の相互に関係する機能をテストして設計を検証するステップとを含む。
特開2007―164780号公報
特許文献1に記載されている発明では、マルチコアに対応した適切なテスト項目を作成することできない。
本発明の第1の態様によるテスト項目生成方法は、複数のタスクを実行する複数のCPUコア、および前記複数のCPUコアがアクセスする共有資源を備える演算装置におけるテスト項目を生成するテスト項目生成方法は、コンピュータが、前記複数のタスクのうち、前記共有資源にアクセスするタスクを特定することと、コンピュータが、前記複数のタスクを、実行されるCPUコアごとに分類することと、コンピュータが、前記分類された複数のタスクのCPUコア内における実行順番を特定することと、コンピュータが、前記特定されたCPUコア内における前記複数のタスクの実行順番に適合し、かつ異なるCPUコアでそれぞれ実行される前記共有資源にアクセスする2以上のタスクの実行順番が互いに入れ替えられたタスク実行順列を複数生成することにより、前記テスト項目を生成することとを備える。
本発明の第2の態様による演算装置は、第1の態様のテスト項目生成方法により生成されたテスト項目と、前記テスト項目を確認するチェックロジックとが格納される記憶部を備える。
本発明によれば、マルチコアに対応した適切なテスト項目を作成することできる。
テスト項目生成装置のハードウエア構成を示す図 テスト項目生成装置の機能的な構成を示す図 ECUのハードウエア構成を示す図 ECUの機能的な構成を示す図 テスト項目の生成の概要を示す図 テスト項目生成部の動作の一例を示す図 テスト項目生成部の動作を表すフローチャート 変形例2におけるテスト項目生成装置の機能的な構成を示す図
(第1の実施の形態)
以下、図1〜図7を参照して、本発明に係るテスト項目生成方法を使用するテスト項目生成装置100の第1の実施の形態を説明する。テスト項目生成装置100は、後述するECU200において実行されるテストにおいて使用されるテスト項目を生成する。本実施の形態では、コンピュータプログラムの構成要素を「タスク」と呼ぶ。タスクは1または複数のCPU命令から構成される。タスクはいずれかのCPUコアで実行され、タスクによっては後述する共有資源203へのアクセスが必要である。また、複数のタスクを実行する順序を示したものを「タスク実行順列」と呼ぶ。本実施の形態では、テスト項目は2以上のタスク実行順列から構成されることとする。すなわちECU200において実行されるテストは、生成されたテスト項目にしたがって、所定のタスクを所定の順番で実行することである。
(テスト項目生成装置のハードウエア構成)
図1は、テスト項目生成装置100のハードウエア構成を示す図である。テスト項目生成装置100は、CPU101と、ROM102と、RAM103と、インタフェース104とを備える。CPU101は、テスト項目生成装置100の動作を制御する。CPU101は、ROM102に格納された不図示のプログラムをRAM103に展開して実行することにより、後述する機能を実現する。RAM103は、前述したプログラムが実行される際のワーキングエリア、および生成されたテスト項目の保存に利用される。インタフェース104は、電子データの入出力ポートであり、テスト項目生成装置100と他の装置との情報の授受を行う。テスト項目生成装置100は、インタフェース104を介してテスト項目の生成に必要な入力情報6を取得する。入力情報6は、プログラムのソースコード、設計ドキュメント、プログラムを実行するCPUのリバースエンジニアリング情報、テスト用ドキュメントなどであり、ECU200のCPUコアで実行される複数のタスクを含む。
(テスト項目生成装置の機能的構成)
図2は、テスト項目生成装置100の機能的な構成を示す図である。図2に示す各機能は、ROM102に格納されたプログラムをCPU101が実行することにより実現される。テスト項目生成装置100は、その機能として、対応情報部111と、特定情報部112と、順序情報部113と、テスト項目生成部114と、を備える。またRAM103に対応情報格納領域121と、特定情報格納領域122と、順序情報格納領域123と、テスト項目格納領域124とが設けられる。ここでは各機能の概要を説明し、各機能の詳細は後述する。
対応情報格納領域121、特定情報格納領域122、順序情報格納領域123、およびテスト項目格納領域124は、RAM103に設けられた記憶領域である。
対応情報部111は、インタフェース104から読み込まれる入力情報6を解析し、入力情報6に含まれる複数のタスクのそれぞれがECU200のいずれのCPUコアで実行されるかを特定して、実行されるCPUコアごとにタスクを分類する。そして、タスクの分類結果を示す対応情報を生成する。対応情報部111が生成した対応情報は、対応情報格納領域121に格納される。特定情報部112は、入力情報6を解析し、入力情報6に含まれるタスクのうち、どのタスクが後述する共有資源203にアクセスするタスクであるかを特定する。そして、特定したタスクを示す特定情報を生成する。特定情報部112が生成した特定情報は、特定情報格納領域122に格納される。
順序情報部113は、入力情報6を解析し、同一のCPUコアで実行されるタスクの実行順番を特定する。そして、特定した情報である、同一のCPUコアで実行されるタスクの実行順番を示す順序情報を生成する。順序情報部113が生成した順序情報は、順序情報格納領域123に格納される。順序情報には、CPUコアごとにタスクの実行順番が示されていてもよいし、複数のCPUコアで実行されるタスクが混在して示されていてもよい。
テスト項目生成部114は、対応情報部111、特定情報部112、および順序情報部113が生成した情報に基づきテスト項目を生成し、生成したテスト項目をテスト項目格納領域124に格納する。テスト項目生成部114が生成したテスト項目は、インタフェース104を介してECU200に出力される。
対応情報部111、特定情報部112、および順序情報部113はいずれも、ソースコードを入力情報6とする場合は処理が容易である。対応情報部111、特定情報部112、および順序情報部113は設計ドキュメントやテスト用ドキュメントを入力情報6とする場合は、字句解析等を活用することで、ソースコードと同等の検索を行う。また、ドキュメントの解析ではドキュメントフォーマットの規定により、字句解析を不要とすることも可能である。
特定情報部112は、ソースコードを解析して共有資源203へアクセスするタスクを特定する際に、共有資源203へ直接アクセスするタスクだけではなく、タスクの呼び出しを再帰的に検索することで、共有資源203に間接的にアクセスするタスクも特定する。また、間接的なアクセスはタスクの呼び出し回数を指定することで、検索の範囲を限定してもよい。
(ECUのハードウエア構成)
図3は、ECU200のハードウエア構成を示す図である。ECU200は、第1コア201と、第2コア202と、共有資源203と、ROM204と、RAM205と、テスト項目入力部206と、を備える。第1コア201および第2コア202は、ECU200が備えるCPUのコアである。ECU200は単一のコアを有するCPUを複数備えてもよいし、複数のコアを有するCPUを備えてもよい。共有資源203は、第1コア201および第2コア202からアクセスされる資源であり、たとえばRAM205の一部の領域、ECU200が備えるCPUのレジスタ、不図示のアクチュエータ、センサ、および通信バスのいずれかである。テスト項目入力部206は、電子データの入出力ポートであり、テスト項目生成装置100が生成したテスト項目が入力される。
(ECUの機能的構成)
図4は、ECU200の機能的な構成を示す図である。図4に示す各機能は、ROM204に格納されたプログラムを第1コア201または第2コア202が実行することにより実現される。ECU200はその機能として、通常モード部211と、動作検証モード部212と、モード切替部213と、テスト実行データ格納領域215とを備える。ECU200は、テスト項目生成装置100のインタフェース104から入力されたテスト項目をテスト項目入力部206において受信する。ECU200は、受信したテスト項目をテスト実行データ格納領域215に格納する。ECU200は、テスト項目の実行結果をチェックするチェックロジックもテスト実行データ格納領域215に格納する。このチェックロジックは、オペレータが作成してもよいし、テスト項目生成装置100が作成してもよい。
ECU200は、通常モードと動作検証モードの2つの動作モードを有する。ECU200は、ユーザ3により操作されるモード切替部213の動作指令により、通常モードと動作検証モードのいずれかが有効になる。通常モードが有効な場合は通常モード部211がECU200の動作を制御し、動作検証モードが有効な場合は動作検証モード部212がECU200の動作を制御する。
通常モード部211は、ECU200が備える不図示のセンサ、または不図示の通信インタフェースからの入力に基づき各種演算処理を行う。動作検証モード部212は、テスト実行データ格納領域215に格納されたテスト項目を構成する複数のタスク実行順列のそれぞれを順次実行し、その実行結果をチェックロジックと照合する。動作検証モード部212は、照合結果を不図示の記憶部に格納し外部から照合結果にアクセス可能に構成してもよい。また動作検証モード部212は、ECU200またはECU200が接続される機器が備える報知部、たとえばスピーカやライトを用いて照合結果を報知してもよい。
(テスト項目生成の概要)
図5は、テスト項目生成装置100によるテスト項目の生成の概要を示す図である。
ソースコード4001は、ECU200において実行されるプログラムのソースコードである。ソースコード4001には、符号4002〜4007に示すように、そのプログラムを構成するタスクf1〜f6の詳細な情報、たとえば各タスクが共有資源203にアクセスするか否かが含まれる。またソースコード4001には、各タスクが実行されるCPUコアの情報、および各CPUコアにおいて各タスクが実行される順番の情報が含まれる。なお、異なるCPUコアで実行されるタスク同士の実行順番は実行のたびに変更となる可能性があり、ソースコード4001の記載からは同一のCPUコアで実行されるタスクの実行順番しか明らかにされない。
テスト項目生成装置100にソースコード4001が入力情報6として入力されると、対応情報部111は、ソースコード4001を解析して符号4009で示すように各タスクが実行されるCPUコアを特定する。すなわちテスト項目に含まれるタスクf1〜f6のうち、f1、f3、f5のタスクは第1コア201で実行され、f2、f4、f6のタスクは第2コア202で実行されると特定する。
特定情報部112は、ソースコード4001を解析して、符号4008で示すように、テスト項目に含まれるタスクf1〜f6のうち、ECU200の共有資源203にアクセスするタスクはf3とf4であることを特定する。
順序情報部113は、ソースコード4001を解析して、符号4010で示すように、同一のCPUコアで実行されるタスクの実行順番を示す順序情報を特定する。ただし図5ではCPUコアごとにタスクの実行順序を示しているが、複数のCPUコアで実行されるタスクが混在された状態で実行順番が示されてもよい。たとえば、「f1、f2、f3、f4、f5、f6」というタスクの実行順番が順序情報として特定されてもよい。
テスト項目生成部114は、対応情報部111、特定情報部112、および順序情報部113が生成した情報、すなわち符号4008,4009,4010の情報に基づきタスク実行順列を生成する。テスト項目生成部114は、特定されたCPUコア内における複数のタスクの実行順番に適合し、かつ異なるCPUコアでそれぞれ実行される共有資源203にアクセスするタスクf3、f4の実行順番が互いに入れ替えられたタスク実行順列を複数、ここでは2つ生成し、テスト項目として、テスト項目格納領域124に符号4012で示すように格納する。これにより、テスト項目生成装置100において、タスクf1〜f6を含むテスト項目が作成される。
(テスト項目生成部の動作例)
図5に示した例では共有資源203にアクセスするタスクが2つだけだったので、もう少し複雑な例を用いてテスト項目生成部114の動作を説明する。ここでは、第1コア201でタスクf2、f3、f5、f7が実行され、第2コア202でタスクf4、f6が実行され、f2〜f6が共有資源203にアクセスする場合に、テスト項目生成部114により生成されるテスト項目を説明する。ここでは同一CPUコア内では数字が小さいタスクから実行されることとする。また以下では、タスクと後述する実行系列が実行される順番を右矢印の「→」を用いて表現する。たとえばタスクf2の次にタスクf3が実行されることは、「f2→f3」とあらわされる。
まずテスト項目生成部114は、CPUコアごとに共有資源203にアクセスするタスクが実行される順序を特定し、実行系列を生成する。実行系列とは、同一のCPUコアにおいて実行されるタスクであって、共有資源203にアクセスする複数のタスクを、順序情報格納領域123に格納された順序情報が示すタスクの実行順番で並べたものである。ここでは生成した実行系列をα、βと呼ぶ。実行系列は、CPUコアと同数だけ生成される。実行系列αがf2、f3、f5から構成されることを、以下ではα0(f2、f3、f5)と表記する。同様に、実行系列βはβ0(f4、f6)である。
これ以降では、図6を参照しながらテスト項目生成部114がタスク実行順列を生成する手順の説明を続ける。
次にテスト項目生成部114は、生成した実行系列をすべて用いた順列、すなわち生成した実行系列をすべて用いて並び替えができる全ての順序を作成する。この例では、図6の未展開の欄に示すように、α→βとβ→αの2つが作成される。以下では、この作成した順列のそれぞれを「順列要素」と呼ぶ。
そしてテスト項目生成部114は、生成した順列要素のそれぞれについて、αおよびβを展開して実行順序のバリエーションである順列要素を増加させる。たとえばαの展開とは、αを構成するタスクのうち先頭のタスクを分離させ、αの名称に分離したタスクの数を付加することである。すなわち、α0(f2、f3、f5)が、f2→α1(f3、f5)に展開される。この展開により順列要素を構成する要素が増えたので、さらなる並び替えが可能となる。なお、ここでは順列要素を展開したものも「順列要素」と呼んでいるが、「展開列」と呼んでもよい。また、ここでは実行系列を構成する先頭のタスクを分離させた例を示したが、実行系列を構成する末尾のタスクを分離させてもよい。
したがって、順列要素の1つであるα→βは、αを1回展開することにより図6の「α展開1回目」の欄に示すように、f2→α1(f3、f5)→βと、f2→β→α1(f3、f5)とに展開される。さらにαを展開すると、順列要素α→βは、図6の「α展開2回目」の欄に示すように合計で3つに展開される。このとき、α0(f2、f3、f5)が2回展開されたα2(f5)はf5そのものであり、これ以上展開できない。そのため次はβを展開する。
順列要素α→βはさらに、βを展開することにより図6の「β展開1回目」の欄に示すように合計で5つに展開される。このとき、β0(f4、f6)が1回展開されたβ1(f6)はf6そのものであり、これ以上展開できない。そのため、以上でα→βの順列要素の展開処理は終了である。
テスト項目生成部114は、上述した順列要素α→βの展開と同様に順列要素β→αを展開する。この処理は順列要素α→βの展開と同様なので、説明および図6における例示を省略する。
このように生成された順列要素に、共有資源203にアクセスしないタスクf7の実行順番を追記して、タスク実行順列とする。共有資源203にアクセスしないタスクの実行順番は、同一のCPUコアにおける実行順序に従っているいずれか1か所とする。たとえばf7を除く実行順序がf2→f3→f5→f4→f6である場合に、f7の実行順番は同一CPUコアで実行されるf5よりも後なので、f5、f4、f6それぞれの直後に挿入することができる。すなわちこの場合に、f7の挿入場所により3とおりの実行順序を生成可能ではあるが、3つのうちのいずれか1つのみを採用してタスク実行順列、すなわちテスト項目の1つとする。共有資源203にアクセスしないタスクの実行順番が変化してもテストへの影響がないためである。
(テスト項目生成部のフローチャート)
図7は、テスト項目生成部114の動作を表すフローチャートである。以下に説明するフローチャートの各ステップの実行主体は、テスト項目生成装置100のCPU101である。
ステップS301では、対応情報部111と特定情報部112の出力を参照し、CPUコアごとに共有資源203にアクセスするタスクを特定する。続くステップS302では、順序情報部113の出力を参照し、CPUコアごとに共有資源203にアクセスするタスクの実行順序を特定する。
続くステップS303では、実行系列を生成する。実行系列とは前述のとおり、同一のCPUコアにおいて実行されるタスクであって、共有資源203にアクセスする複数のタスクを、順序情報格納領域123に格納された順序情報が示すタスクの実行順番に並べたものである。すなわちステップS303ではCPUコアと同数の実行系列が生成される。続くステップS304では、実行系列の順列、すなわち複数の順列要素を作成する。ここで作成される順列要素の数は、ステップS303において生成された実行系列の数の階乗である。異なるCPUコアで実行されるタスクの実行の順番に制限はないからである。図6の例では、α→βとβ→αの作成に相当する。
続くステップS305では、第1の実行系列、たとえばαを展開対象に設定する。続くステップS306では、展開対象の実行系列から先頭のタスクを展開する。図6の例では、α0(f2、f3、f5)をf2→α1(f3、f5)に展開することに相当する。続くステップS307では、ステップS306の展開に伴う順序入れ替えを含む順列要素を生成する。続くステップS308では展開対象の実行系列がさらに展開可能か否かを判断する。さらに展開可能と判断する場合はステップS306に戻り、さらなる展開は不可能と判断する場合はステップS309に進む。図6の例では、α展開2回目やβ展開1回目の終了後にはステップS309に進むこととなる。
ステップS309では、未展開の実行系列が存在するか否かを判断する。未展開の実行系列が存在すると判断する場合はステップS310に進み、未展開の実行系列が存在しないと判断する場合はステップS311に進む。ステップS310では未展開の実行系列のいずれかを展開対象に設定し、ステップS306に戻る。ステップS311では、共有資源203にアクセスしていないタスクを順列要素に追加し、タスク実行順列とする。これにより、異なるCPUコアでそれぞれ実行され、かつ共有資源203にアクセスするタスクf2、f4、f6とタスクf3、f5の実行順番の全ての組み合わせについて、タスク実行順列を生成することができる。続くステップS312では、生成したタスク実行順列をテスト項目格納領域124に格納して図7のフローチャートを終了する。
上述した第1の実施の形態によれば、次の作用効果が得られる。
(1)複数のタスクを実行する複数のCPUコア、および複数のCPUコアがアクセスする共有資源203を備える演算装置、すなわちECU200におけるテスト項目を生成するテスト項目生成方法は、以下のようにテスト項目生成装置100に実行される。このテスト項目生成方法は、以下の4つを含む。第1は、特定情報部112により実行される、複数のタスクのうち共有資源203にアクセスするタスクを特定することである。第2は、対応情報部111により実行される、複数のタスクを、実行されるCPUコアごとに分類することとである。第3は、順序情報部113により実行される、分類された複数のタスクのCPUコア内における実行の順番を特定することとである。第4は、テスト項目生成部114により実行される、特定されたCPUコア内における複数のタスクの実行順番に適合し、かつ異なるCPUコアでそれぞれ実行される共有資源203にアクセスする2以上のタスクの実行順番が互いに入れ替えられたタスク実行順列を複数生成することにより、テスト項目を生成することとである。
そのため、共有資源203にアクセスするタスクの実行順番を入れ替えたテスト項目を作成するので、マルチコアに対応した適切なテスト項目を作成することができる。
(2)テスト項目生成装置100のテスト項目の生成では、異なるCPUコアでそれぞれ実行され、かつ共有資源203にアクセスするタスクの実行順番の全ての組み合わせについて、タスク実行順列を生成する。
そのため、タスクの数が多く組み合わせが膨大であっても漏れのないテスト項目を作成することができる。
(3)テスト項目生成部114によるテスト項目生成は以下の5つを含む。第1は、同一のCPUコアにおいて実行されるタスクを、特定されたCPUコア内における実行順番に並べた実行系列を生成すること(図7のステップS303)である。第2は、複数の実行系列の順列を生成すること(図7のステップS304)とである。第3は、順列のそれぞれについて、実行系列を構成する先頭または末尾のタスクを実行系列から分離させることにより実行系列を展開し、展開された実行系列および分離されたタスクの実行順番を保ったまま他の実行系列および他のタスクとの順番をすべて入れ替えて生成される、1または複数の展開列を生成すること(図7のステップS306、S307)である。第4は、展開列のそれぞれについて、実行系列が展開できなくなるまで展開列の生成を繰り返すことと(図7のステップS308が否定判断されるまで繰り返し)である。第5は、繰り返しにより生成された複数の、実行系列の展開ができない展開列のそれぞれをタスク実行順列とすること(図7のステップS312)である。
そのため、タスクの数が多く組み合わせが膨大であっても、実行系列の順列の生成と展開列の生成の繰り返しにより、漏れのないテスト項目を作成することができる。
(4)演算装置、すなわちECU200は、上述したテスト項目生成方法により生成されたテスト項目と、テスト項目を確認するチェックロジックとが格納される記憶部、すなわちテスト実行データ格納領域215を備える。
そのためECU200は、実機であるECU200においてテスト項目を実行し、さらにチェックロジックを用いてそのテスト結果を確認することができる。このテスト項目はテスト項目生成装置100により生成されたものであり、それぞれのタスクの共有資源203へのアクセス順序を同じ順番で確認しないテスト項目である。
(5)演算装置、すなわちECU200は、テスト項目を構成する複数のタスク実行順列のそれぞれを順次実行する動作検証モード部212と、動作検証モード部212を動作させるモード切替部213とを備える。そのためECU200は、動作モードを切り替えてテストを実行することができる。
(変形例1)
対応情報部111、特定情報部112、および順序情報部113は、従前に入力された入力情報6を保存しておき、新たに入力された入力情報6が従前の入力情報6に一致する場合は、それぞれの格納領域に格納した解析結果をテスト項目生成部114に出力してもよい。この変形例1によれば、入力情報6に変更がない場合に解析を省略することができる。本変形例における効果は、対応情報部111、特定情報部112、および順序情報部113に入力される情報がそれぞれ異なっており、それらのうちの一部のみが変更される場合、たとえばタスクの実行順番のみが変更される場合に顕著である。
(変形例2)
図8は、変形例2におけるテスト項目生成装置100の機能的な構成を示す図である。テスト項目生成装置100は、対応情報変更点分析部131と、特定情報変更点分析部132と、順序情報変更点分析部133と、変更点テスト項目生成部134とをさらに備えてもよい。
対応情報変更点分析部131は、入力情報6の変更点を分析し、対応情報格納領域121に格納されている対応情報を参照し、入力情報6の変更部分に係る対応情報を変更点テスト項目生成部134に出力する。特定情報変更点分析部132は、入力情報6の変更点を分析し、特定情報格納領域122に格納されている特定情報を参照し、入力情報6の変更部分に係る特定情報を変更点テスト項目生成部134に出力する。順序情報変更点分析部133は、入力情報6の変更点を分析し、順序情報格納領域123に格納されている順序情報を参照し、入力情報6の変更部分に係る順序情報を変更点テスト項目生成部134に出力する。
変更点テスト項目生成部134は、対応情報変更点分析部131、特定情報変更点分析部132、および順序情報変更点分析部133の出力、ならびにテスト項目格納領域124に格納されているテスト項目を用いて、修正が必要となるテスト項目のみを生成する。そして変更点テスト項目生成部134は、テスト項目格納領域124に格納されるテスト項目を更新する。
この変形例2によれば、入力情報6に変更がわずかな場合にテスト項目生成装置100の処理を減少させることができる。
テスト項目生成装置100が実行するプログラムは不図示のROMに格納されるとしたが、プログラムはRAM103や不図示のフラッシュメモリに格納されていてもよい。また、テスト項目生成装置100がインタフェース104を用いて、必要なときにインタフェース104が利用可能な媒体を介して、他の装置からプログラムが読み込まれてもよい。ここで媒体とは、例えば入出力インタフェースに着脱可能な記憶媒体、または通信媒体、すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。また、プログラムにより実現される機能の一部または全部がハードウエア回路やFPGAにより実現されてもよい。
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。
上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
100 … テスト項目生成装置
111 … 対応情報部
112 … 特定情報部
113 … 順序情報部
114 … テスト項目生成部
124 … テスト項目格納領域
201 … 第1コア
202 … 第2コア
203 … 共有資源
212 … 動作検証モード部
213 … モード切替部
215 … テスト実行データ格納領域

Claims (5)

  1. 複数のタスクを実行する複数のCPUコア、および前記複数のCPUコアがアクセスする共有資源を備える演算装置におけるテスト項目を生成するテスト項目生成方法は、
    コンピュータが、前記複数のタスクのうち、前記共有資源にアクセスするタスクを特定することと、
    コンピュータが、前記複数のタスクを、実行されるCPUコアごとに分類することと、
    コンピュータが、前記分類された複数のタスクのCPUコア内における実行順番を特定することと、
    コンピュータが、前記特定されたCPUコア内における前記複数のタスクの実行順番に適合し、かつ異なるCPUコアでそれぞれ実行される前記共有資源にアクセスする2以上のタスクの実行順番が互いに入れ替えられたタスク実行順列を複数生成することにより、前記テスト項目を生成することとを備えるテスト項目生成方法。
  2. 請求項1に記載のテスト項目生成方法において、
    前記テスト項目の生成では、異なるCPUコアでそれぞれ実行され、かつ前記共有資源にアクセスするタスクの実行順番の全ての組み合わせについて、前記タスク実行順列を生成する、テスト項目生成方法。
  3. 請求項1に記載のテスト項目生成方法において、
    前記テスト項目の生成は、
    同一のCPUコアにおいて実行されるタスクを前記実行順番に並べた実行系列を、前記複数のタスクの全てに基づき複数生成することと
    前記複数の実行系列の順列を生成することと、
    前記順列のそれぞれについて、前記実行系列を構成する先頭または末尾のタスクを前記実行系列から分離させることにより前記実行系列を展開し、前記展開された実行系列および前記分離されたタスクの前記実行順番を保ったまま他の実行系列および他のタスクとの順番をすべて入れ替えて生成される、1または複数の展開列を生成することと、
    前記展開列のそれぞれについて、前記実行系列が展開できなくなるまで前記展開列の生成を繰り返すことと、
    前記繰り返しにより生成された複数の、前記実行系列の展開ができない前記展開列のそれぞれを前記タスク実行順列とすることと、を備えるテスト項目生成方法。
  4. 請求項1に記載のテスト項目生成方法により生成されたテスト項目と、前記テスト項目を確認するチェックロジックとが格納される記憶部を備える演算装置。
  5. 請求項4に記載の演算装置において、
    前記テスト項目を構成する複数のタスク実行順列のそれぞれを順次実行する動作検証モード部と、
    前記動作検証モード部を動作させるモード切替部とをさらに備える演算装置。
JP2016161716A 2016-08-22 2016-08-22 テスト項目生成方法、演算装置 Active JP6637394B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016161716A JP6637394B2 (ja) 2016-08-22 2016-08-22 テスト項目生成方法、演算装置
PCT/JP2017/026374 WO2018037787A1 (ja) 2016-08-22 2017-07-20 テスト項目生成方法、演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016161716A JP6637394B2 (ja) 2016-08-22 2016-08-22 テスト項目生成方法、演算装置

Publications (2)

Publication Number Publication Date
JP2018032062A true JP2018032062A (ja) 2018-03-01
JP6637394B2 JP6637394B2 (ja) 2020-01-29

Family

ID=61246661

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016161716A Active JP6637394B2 (ja) 2016-08-22 2016-08-22 テスト項目生成方法、演算装置

Country Status (2)

Country Link
JP (1) JP6637394B2 (ja)
WO (1) WO2018037787A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112020004765T5 (de) 2019-11-29 2022-07-28 Hitachi Astemo, Ltd. Elektronische steuervorrichtung

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7493405B2 (ja) * 2020-07-21 2024-05-31 日立Astemo株式会社 テスト方法、演算装置
JP7706020B2 (ja) * 2022-06-09 2025-07-10 Astemo株式会社 検証システム及び検証方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11242614A (ja) * 1998-02-25 1999-09-07 Mitsubishi Electric Corp 並列プログラム用リアルタイム検証装置および方法
JP2011515000A (ja) * 2008-03-11 2011-05-12 ユニバーシティ・オブ・ワシントン 効率的な決定論的マルチプロセッシング(deterministicmultiprocessing)

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11242614A (ja) * 1998-02-25 1999-09-07 Mitsubishi Electric Corp 並列プログラム用リアルタイム検証装置および方法
JP2011515000A (ja) * 2008-03-11 2011-05-12 ユニバーシティ・オブ・ワシントン 効率的な決定論的マルチプロセッシング(deterministicmultiprocessing)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112020004765T5 (de) 2019-11-29 2022-07-28 Hitachi Astemo, Ltd. Elektronische steuervorrichtung
US12443455B2 (en) 2019-11-29 2025-10-14 Hitachi Astemo, Ltd. Electronic control device

Also Published As

Publication number Publication date
WO2018037787A1 (ja) 2018-03-01
JP6637394B2 (ja) 2020-01-29

Similar Documents

Publication Publication Date Title
JP5350428B2 (ja) 自動プログラム生成装置、方法及びコンピュータプログラム
CN112597718B (zh) 集成电路设计的验证方法、验证装置以及存储介质
US10592703B1 (en) Method and system for processing verification tests for testing a design under test
US10387124B2 (en) System and method for creating domain specific language
CN111178512A (zh) 器件运行神经网络的测试方法及装置
JP4414373B2 (ja) プログラムの検証プログラム、プログラムの検証装置、プログラムの検証方法
JP6637394B2 (ja) テスト項目生成方法、演算装置
JP2015219906A (ja) ソフトウェア確認方法およびプロセッサ
US7971163B2 (en) Property generating apparatus, property generating method and program
JP5056511B2 (ja) 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法
US11048844B1 (en) System and method for use in design verification
JP6903249B2 (ja) テストケース生成装置、テストケース生成方法、およびテストケース生成プログラム
CN116911219A (zh) 用于逻辑系统设计的仿真的方法、电子设备和存储介质
Jiang et al. Incremental development of fault prediction models
KR101728367B1 (ko) 워게임 시뮬레이션 장치 및 이를 이용한 워게임 시뮬레이션 방법
CN115828805A (zh) 分割逻辑系统设计的方法、设备及存储介质
JP5328447B2 (ja) 高位合成装置および高位合成方法、半導体集積回路の製造方法、制御プログラム、可読記憶媒体
JP6147094B2 (ja) 情報処理装置及び情報処理方法及びプログラム
CN120994251B (zh) 面向微结构冲突的指令生成方法、装置及指令生成器
CN115470737B (zh) 生成数据流图的方法、电子设备及存储介质
CN118350322B (zh) 仿真逻辑系统设计的方法、设备以及存储介质
JP7614976B2 (ja) キャッシュ模擬装置、命令セットシミュレータ、キャッシュ模擬方法およびキャッシュ模擬プログラム
KR102758477B1 (ko) 강화 학습 기반의 시스템 검증 방법 및 장치
JP4334278B2 (ja) シーケンシャルシステムを分析する方法及びプログラム
CN120994535A (zh) 生成方法、测试方法、生成器、电子设备和介质

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20170126

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170927

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181002

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: 20191210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191220

R150 Certificate of patent or registration of utility model

Ref document number: 6637394

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250