JP6571897B2 - 動作検証装置、動作検証方法および動作検証プログラム - Google Patents

動作検証装置、動作検証方法および動作検証プログラム Download PDF

Info

Publication number
JP6571897B2
JP6571897B2 JP2019500100A JP2019500100A JP6571897B2 JP 6571897 B2 JP6571897 B2 JP 6571897B2 JP 2019500100 A JP2019500100 A JP 2019500100A JP 2019500100 A JP2019500100 A JP 2019500100A JP 6571897 B2 JP6571897 B2 JP 6571897B2
Authority
JP
Japan
Prior art keywords
program
divided
processing
concurrency
defect
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.)
Active
Application number
JP2019500100A
Other languages
English (en)
Other versions
JPWO2018150504A1 (ja
Inventor
誠 磯田
誠 磯田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP6571897B2 publication Critical patent/JP6571897B2/ja
Publication of JPWO2018150504A1 publication Critical patent/JPWO2018150504A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/362Software debugging
    • G06F11/3632Software debugging of specific synchronisation aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • 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/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3816Instruction alignment, e.g. cache line crossing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、動作検証装置、動作検証方法および動作検証プログラムに関する。
制御装置に搭載される制御ソフトウェアは、多機能化および付加価値向上に応えるための制御機能の電子化により、大規模化および複雑化が急速に進んでいる。さらに、制御装置の派生機種あるいは仕向け地の違いによる制御ソフトウェアのバリエーションが、今後急増していくことが見込まれる。このような状況下で収益力を維持および強化するには、制御ソフトウェア開発の生産性向上に取り組む必要がある。具体的な施策には、ソフトウェアの実行環境の導入による、差分および派生開発への移行がある。実行環境とは、ソフトウェアの実行における、通信処理、タイマ処理、スケジューラ、OS(オペレーティングシステム)、あるいはミドルウェアといった環境である。さらに、具体的な施策には、差分および派生開発の運用において、ソフトウェアの品質確保および作業効率化を実現するためのソフトウェア開発手法およびソフトウェア開発ツールの適用が考えられる。
従来の制御ソフトウェアの典型的な構成は、個々の制御機能に実行の優先度を設けて、この優先度に従って周期実行していくというシングルタスク構成が一般的であった。しかし、ソフトウェアの実行環境を導入すると、従来の周期実行にイベントでトリガされる非周期実行を混在させることが可能になり、マルチタスク構成に近くなる。
また、差分および派生開発への移行あるいは運用において、ソフトウェアの変更前後での影響範囲分析(Impact Analysis)、および影響範囲に応じた十分なテストが求められる。この影響範囲分析およびテストの具体例としては、産業分野ごとの機能安全規格である航空分野のDO−178Bや自動車分野のISO26262で求められる影響範囲分析およびテストがある。
そこで、ソフトウェアの実行環境の導入あるいはソフトウェア開発手法およびツールの適用に関する要求事項を以下のように明確化する。
(1)新たな実行環境への移行前後、あるいは実行環境への移行後に日々開発していくソフトウェアのバージョン間といった2つのソフトウェアの間で、論理的に演算内容を変更していない同等部分および変更した差異部分を特定すること。
(2)同等部分および差異部分のそれぞれに適した手法を用いて、2つのソフトウェアの間で機能的な欠陥あるいは並行性に関する欠陥が新たに発生したかどうか検出すること。また、欠陥が発生した場合は除去すること。
非特許文献1には、従来の検証およびテスト技術として、シングルタスク構成の2つのソフトウェアの間で論理的に演算内容を変更したかどうか判定する等価性検査が開示されている。以降、このようなソフトウェアが持つ性質を等価性と呼ぶ。
また、特許文献1および非特許文献2には、機能的な欠陥を検出するための入力値を自動的に作成するテストケース生成技術が開示されている。また、特許文献2および特許文献3では、排他制御しない状態での共有変数の更新およびソフトウェアの変更前後で、共有変数に設定する値が異なるといった並行性に関する欠陥を検出する並行処理監視部が開示されている。
特開2008−276556号公報 特開2014−038467号公報 国際公開第2013/072977号
Rupak Majumdar,"Compositional Equivalence Checking for Models and Code of Control Systems,"52nd IEEE Conference on Decision and Control,December 2013. 橋本祐介,中島 震,"ソフトウェアモデル検査とテストケース生成の統合ツールチェイン",ソフトウェアエンジニアリングシンポジウム2011,2011.
従来では、マルチタスク構成のプログラムが変更された場合に、変更前後の2つのプログラムの等価性を判定できず、欠陥原因の推定に膨大な作業量を要するという課題があった。
本発明では、並行処理を含んだ制御処理の内容を複数の逐次処理として扱えるまで分割することで、マルチタスク構成のプログラムを変更した場合でも変更後のプログラムの欠陥原因を自動的に推定することを目的とする。
本発明に係る動作検証装置は、
複数の制御処理を含む第1のプログラムと前記複数の制御処理の少なくとも一部が変更された複数の制御処理を含む第2のプログラムとの各々について、前記複数の制御処理の各々を、前記複数の制御処理の並行処理を実現する並行性処理と、前記複数の制御処理による機能を実現する機能逐次処理とに分割し、前記複数の制御処理の各々が前記並行性処理と前記機能逐次処理とに分割された前記第1のプログラムを第1の分割済プログラムとして出力するとともに、前記複数の制御処理の各々が前記並行性処理と前記機能逐次処理とに分割された前記第2のプログラムを第2の分割済プログラムとして出力する分割部と、
前記第2の分割済プログラムについて機能の欠陥が機能的欠陥として検出された場合に、前記第1の分割済プログラムと前記第2の分割済プログラムとの間で異なる機能逐次処理を前記機能的欠陥の原因と推定し、前記第2の分割済プログラムについて並行処理に起因する欠陥が並行性欠陥として検出された場合に、前記第1の分割済プログラムと前記第2の分割済プログラムとの間で異なる並行性処理を前記並行性欠陥の原因と推定する原因推定部とを備えた。
本発明に係る動作検証装置では、分割部が、変更前の第1のプログラムと変更後の第2のプログラムとの各々について、複数の制御処理の各々を、並行処理を実現する並行性処理と、機能を実現する機能逐次処理とに分割する。そして、分割部は、複数の制御処理の各々が並行性処理と機能逐次処理とに分割された第1のプログラムを第1の分割済プログラムとして出力する。また、分割部は、複数の制御処理の各々が並行性処理と機能逐次処理とに分割された第2のプログラムを第2の分割済プログラムとして出力する。また、原因推定部が、第2の分割済プログラムについて機能的欠陥が検出された場合に、第1の分割済プログラムと第2の分割済プログラムとの間で異なる機能逐次処理を機能的欠陥の原因と推定する。また、原因推定部が、第2の分割済プログラムについて欠陥が並行性欠陥として検出された場合に、第1の分割済プログラムと第2の分割済プログラムとの間で異なる並行性処理を並行性欠陥の原因と推定する。よって、本発明に係る動作検証装置によれば、マルチタスク構成のプログラムを変更した場合でも変更後のプログラムの欠陥原因を自動的に推定することができる。
制御ソフトウェアの全体構成を表すソフトウェアアーキテクチャを示す図。 実施の形態1に係る動作検証装置100の構成図。 本実施の形態に係る動作検証方法610および動作検証プログラム620の動作検証処理S100を示すフロー図。 実施の形態1に係る並行処理対応表163の例。 実施の形態1に係る変更前実装物161および変更後実装物162の例。 実施の形態1に係る分割処理S110を示すフロー図。 実施の形態1に係る変更前分割済実装物111および変更後分割済実装物112の例。 実施の形態1に係る等価性検査処理S120を示すフロー図。 実施の形態1に係る等価性検査結果121の例。 実施の形態1に係る欠陥検出処理S30を示すフロー図。 実施の形態1に係る機能的欠陥131と並行性欠陥141との各々の例。 実施の形態1に係る原因推定処理S150を示すフロー図。 実施の形態1に係る機能的欠陥原因151と並行性欠陥原因152との各々の例。 実施の形態1の変形例に係る動作検証装置100の構成図。 実施の形態2に係る並行処理対応表163aの例。 実施の形態2に係る並行処理対応表163bの例。 実施の形態3に係る等価性検査結果121aの例。 実施の形態3に係る等価性検査結果121bの例。
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。
実施の形態1.
***構成の説明***
図1を用いて、本実施の形態に係る動作検証装置100の動作検証の対象となる制御システムの構成について説明する。
制御システムは、制御ソフトウェアとハードウェアとで構成される制御装置と、センサ、アクチュエータ、あるいは外部装置といった制御対象とを、デジタル信号線あるいはアナログ信号線で接続したシステムである。なお、図1に示した制御システムの接続関係は代表的なものであり、制御システムの接続関係はこれに限らない。
図1に示した制御ソフトウェアの全体構成を表すソフトウェアアーキテクチャについて説明する。
制御システムは、機能要求を実現するアプリケーションと、アプリケーションを実行する環境である実行環境と、ドライバとで構成される。
アプリケーションは、周期実行と非周期実行が混在する複数の制御処理で構成される。
ドライバは、レジスタアクセスといったI/O処理と、制御処理よりも優先度が高い割込み処理とで構成される。
実行環境は、スケジューリングを行うタイマ処理と、通信を行う通信処理とで構成される。
制御システムは、アプリケーションと、実行環境およびドライバとの間でデータをやり取りしながら、時々刻々と制御演算を進めていく。
図2を用いて、本実施の形態に係る動作検証装置100の構成について説明する。
図2に示すように、動作検証装置100は、コンピュータである。
動作検証装置100は、プロセッサ910、記憶装置920、入力インタフェース930、出力インタフェース940、および通信装置950といったハードウェアを備える。記憶装置920は、メモリ921と補助記憶装置922とを含む。
動作検証装置100は、機能構成として、分割部110と、等価性検査部120と、欠陥検出部30と、原因推定部150と、記憶部160とを備える。欠陥検出部30は、テスト実行部130と、並行処理監視部140とを備える。記憶部160には、変更前実装物161、変更後実装物162、並行処理対応表163、変更前機能仕様164、および変更後機能仕様165が記憶される。
分割部110と、等価性検査部120と、テスト実行部130と、並行処理監視部140と、原因推定部150のそれぞれの機能は、ソフトウェアで実現される。
記憶部160は、メモリ921により実現される。また、記憶部160は、補助記憶装置922のみ、あるいは、メモリ921および補助記憶装置922で実現されてもよい。記憶部160の実現方法は任意である。
プロセッサ910は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。プロセッサ910は、演算処理を行うIC(Integrated Circuit)である。プロセッサ910の具体例は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
メモリ921は、データを一時的に記憶する記憶装置である。メモリ921の具体例は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)である。
補助記憶装置922は、データを保管する記憶装置である。補助記憶装置922の具体例は、HDD(Hard Disk Drive)である。また、補助記憶装置922は、SD(登録商標)(Secure Digital)メモリカード、CF(CompactFlash)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital Versatile Disk)といった可搬記憶媒体であってもよい。
入力インタフェース930は、マウス、キーボード、タッチパネルといった入力装置と接続されるポートである。入力インタフェース930は、具体的には、USB(Universal Serial Bus)端子である。なお、入力インタフェース930は、LAN(Local Area Network)と接続されるポートであってもよい。
出力インタフェース940は、ディスプレイといった表示機器のケーブルが接続されるポートである。出力インタフェース940は、具体的には、USB端子またはHDMI(登録商標)(High Definition Multimedia Interface)端子である。ディスプレイは、具体的には、LCD(Liquid Crystal Display)である。
通信装置950は、ネットワークを介して他の装置と通信を行う。
通信装置950は、レシーバとトランスミッタとを有する。通信装置950は、有線または無線で、LAN、インターネット、あるいは電話回線といった通信網に接続している。通信装置950は、具体的には、通信チップまたはNIC(Network Interface Card)である。通信装置950は、データを通信する通信部である。レシーバは、データを受信する受信部である。トランスミッタは、データを送信する送信部である。
補助記憶装置922には、分割部110と、等価性検査部120と、テスト実行部130と、並行処理監視部140と、原因推定部150のそれぞれの機能を実現するプログラムが記憶されている。分割部110と、等価性検査部120と、テスト実行部130と、並行処理監視部140と、原因推定部150のそれぞれの機能を実現するプログラムを動作検証プログラム620ともいう。このプログラムは、メモリ921にロードされ、プロセッサ910に読み込まれ、プロセッサ910によって実行される。また、補助記憶装置922はOSを記憶している。補助記憶装置922にされているOSの少なくとも一部がメモリ921にロードされる。プロセッサ910はOSを実行しながら、動作検証プログラム620を実行する。
動作検証装置100は、1つのプロセッサ910のみを備えていてもよいし、複数のプロセッサ910を備えていてもよい。複数のプロセッサ910が、分割部110と、等価性検査部120と、テスト実行部130と、並行処理監視部140と、原因推定部150のそれぞれの機能を実現するプログラムを連携して実行してもよい。
分割部110と、等価性検査部120と、テスト実行部130と、並行処理監視部140と、原因推定部150のそれぞれの処理の結果を示す情報、データ、信号値、および変数値は、動作検証装置100の補助記憶装置922、メモリ921、または、プロセッサ910内のレジスタまたはキャッシュメモリに記憶される。
分割部110と、等価性検査部120と、テスト実行部130と、並行処理監視部140と、原因推定部150のそれぞれの機能を実現するプログラムは、可搬記録媒体に記憶されてもよい。可搬記録媒体とは、具体的には、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital Versatile Disc)である。
なお、動作検証プログラムプロダクトとは、動作検証プログラム620が記録された記憶媒体および記憶装置である。動作検証プログラムプロダクトは、外観に関わらず、コンピュータ読み取り可能なプログラムをロードしているものを指す。
***機能の説明***
分割部110は、ソフトウェアの変更前実装物161、ソフトウェアの変更後実装物162、および並行処理対応表163を読み込む。
変更前実装物161は、複数の制御処理を含む第1のプログラム61の例である。変更後実装物162は、第1のプログラム61の複数の制御処理の少なくとも一部が変更された複数の制御処理を含む第2のプログラム62の例である。
分割部110は、並行処理を含んだ制御処理の内容を、タスクのコンテキストスイッチが起きない複数の逐次処理になるまで分割する。分割部110は、分割することにより、変更前分割済実装物111および変更後分割済実装物112を作成し、等価性検査部120に出力する。変更前分割済実装物111は、第1の分割済プログラム71の例である。変更後分割済実装物112は、第2の分割済プログラム72の例である。
分割部110は、並行処理と逐次処理の分割、あるいは並行逐次分割部ともいう。
等価性検査部120は、分割部110から、変更前分割済実装物111および変更後分割済実装物112を取得し、等価性検査結果121を出力する。等価性検査結果121は、変更前分割済実装物111と変更後分割済実装物112における同等部分と差異部分である。
テスト実行部130は、変更前機能仕様164と変更後機能仕様と等価性検査結果121とを取得し、テストケース生成およびテスト実行をし、機能的欠陥131を出力する。
また、並行処理監視部140は、等価性検査結果121を取得し、並行性欠陥141を出力する。
原因推定部150は、欠陥が新たに発生したことを検出した結果として機能的欠陥131および並行性欠陥141を取得するとともに、並行処理対応表163を取得する。そして、原因推定部150は、欠陥を含んだ制御処理の内容、変更前分割済実装物111および変更後分割済実装物112、ならびに並行処理対応表163に記載の並行処理APIを照合し、機能的欠陥原因151および並行性欠陥原因152を推定する。
***動作の説明***
図3を用いて、本実施の形態に係る動作検証方法610および動作検証プログラム620の動作検証処理S100について説明する。
動作検証処理S100は、分割処理S110と、等価性検査処理S120と、欠陥検出処理S30と、原因推定処理S150とを有する。欠陥検出処理S30は、テスト実行処理S130と、並行処理監視処理S140とを有する。
まず、図4を用いて、本実施の形態に係る並行処理対応表163の例について説明する。並行処理対応表163では、並行性処理631に、並行性処理631を実現する命令32が対応付けられている。より詳しくは、並行処理対応表163では、プログラムの実行環境ごとに、並行性処理631に命令32が対応付けられている。並行性処理631とは、複数の制御処理の並行処理を実現する一般的な並行処理種別である。並行性処理631を実現する命令32とは、並行性処理631を実現する並行処理API632である。APIは、Application Program Interfaceの略語である。すなわち、並行処理対応表163は、並行性処理631と、実装環境に固有の並行処理API632の対応規則を定義した表である。並行性処理631には、セマフォ取得、セマフォ解放、ミューテックスロック、およびミューテックスアンロックといった種別がある。実装環境に固有の並行処理API632には、関数あるいはメソッドのシグネチャが設定される。並行処理対応表163では、並行性処理631と、実装環境に固有の並行処理API632とが対応付けられている。
また、図5を用いて、本実施の形態に係る変更前実装物161および変更後実装物162の例について説明する。図5では、変更前実装物161と変更後実装物162について、共通の例を示している。変更前実装物161は、複数の制御処理63を含む。複数の制御処理63は、具体的には、演算集合、分岐、合流、およびループといった処理である。変更後実装物162は、変更前実装物161の複数の制御処理63の少なくとも一部が変更された複数の制御処理を含む。なお、複数の制御処理63は、演算集合とは別に、並行処理を含んでいてもよい。
変更前実装物161と変更後実装物162との各々には、並行性処理631を含まない制御処理と、並行性処理631を含む制御処理とがある。具体的には、変更前実装物161と変更後実装物162との各々に含まれる演算集合には、並行処理API632を含まない演算集合と、並行処理API632を含む演算集合とがある。図5では、並行処理APIを含む演算集合として、セマフォ取得を含む演算集合と、セマフォ解放を含む演算集合とがある。
ここで、変更前と変更後の違いは、演算集合、並行処理、分岐、合流、あるいはループといった複数の制御処理の内容の一部または全部が変更されていることである。
<分割処理S110>
図6を用いて、本実施の形態に係る分割処理S110について説明する。
分割処理S110において、分割部110は、複数の制御処理63の各々を、複数の制御処理の並行処理を実現する並行性処理321と、複数の制御処理63による機能を実現する機能逐次処理320とに分割する。分割部110は、複数の制御処理63の各々が並行性処理321と機能逐次処理320とに分割された変更前実装物161を変更前分割済実装物111として出力する。また、分割部110は、複数の制御処理63の各々が並行性処理321と機能逐次処理320とに分割された変更後実装物162を変更後分割済実装物112として出力する。なお、上述したように、変更前実装物161は、第1のプログラム61の例である。変更後実装物162は、第2のプログラム62の例である。また、変更前分割済実装物111は、第1の分割済プログラム71の例である。変更後分割済実装物112は、第2の分割済プログラム72の例である。
なお、以下の図6の説明では処理対象データが変更前実装物161の場合を示しているが、処理対象データが変更後実装物162の場合も図6と同様の処理である。
ステップS111において、分割部110は、記憶部160から、検証対象のソフトウェアにおける変更前実装物161と、並行処理対応表163とを取得する。分割部110は、記憶部160に記憶された並行処理対応表163から命令32である並行処理API632の一覧を取得する。分割部110は、並行処理対応表163から、検証対象のウェアである変更前実装物161の実行環境が提供する並行処理API632の一覧を取得する。
ステップS112において、分割部110は、複数の制御処理63から、並行処理API632の一覧のうちいずれかの並行処理API632を含む制御処理を特定する。具体的には、分割部110は、並行処理API632の一覧と、変更前実装物161を構成する演算集合とを照合し、演算集合に並行処理API632が含まれるか否かを判定する。演算集合に並行処理API632が含まれる場合、処理はステップS113に進む。演算集合に並行処理API632が含まれない場合、処理はステップS114に進む。
分割部110は、複数の制御処理63から並行処理API632の一覧のうちいずれかの並行処理API632を含む制御処理を、並行処理API632を含む並行性処理321と並行処理API632を含まない機能逐次処理320とに分割する。具体的には、以下の通りである。
ステップS113において、分割部110は、並行処理API632を含んだ演算集合の中身を、並行処理API使用処理である並行性処理321と、並行処理API使用処理を含まない部分的な演算集合とに分割する。分割した個々の部分的な演算集合は、タスクのコンテキストスイッチが起きない逐次処理に変換しているので、これを機能逐次処理320と呼ぶ。機能逐次処理320は、分割により逐次処理に変換された分割逐次処理ともいう。
ステップS114において、分割部110は、並行処理APIを含まない演算集合を通常逐次処理310とする。並行処理APIを含まない演算集合はそもそもタスクのコンテキストスイッチが起きないので、これ以上変換せずに通常逐次処理310と呼ぶ。分割部110は、並行処理API632を含んだすべての演算集合を分割した結果を変更前分割済実装物111とする。
図7は、本実施の形態に係る変更前分割済実装物111および変更後分割済実装物112の例である。図7では、変更前分割済実装物111と変更後分割済実装物112について、共通の例を示している。
変更前分割済実装物111では、並行処理API632を含まない演算集合は通常逐次処理310となる。また、並行処理API632を含んだ演算集合は、具体的には、機能逐次処理320と、並行性処理631であるセマフォ取得処理と、機能逐次処理320とに分割される。
ステップS115において、分割部110は、全ての演算集合について処理が完了したかを判定し、全ての演算集合について処理が完了した場合は処理を終了する。分割部110は、処理していない演算集合がある場合は、ステップS112に戻り、演算集合の分割処理を繰り返す。
なお、分割部110は、変更前分割済実装物111と同様の処理により、変更後分割済実装物112を生成する。
<等価性検査処理S120>
図8を用いて、本実施の形態に係る等価性検査処理S120について説明する。
等価性検査処理S120において、等価性検査部120は、変更前分割済実装物111と変更後分割済実装物112との等価性を検査する。等価性検査部120は、変更前分割済実装物111と変更後分割済実装物112との間で異なる差異部分212と、変更前分割済実装物111と変更後分割済実装物112との間で同等の同等部分211とを等価性検査結果121として出力する。
ステップS121において、等価性検査部120は、変更前分割済実装物111と変更後分割済実装物112とを取得する。具体的には、等価性検査部120は、分割部110から出力された変更前分割済実装物111と変更後分割済実装物112とを取得する。
ステップS122において、等価性検査部120は、等価性検査を用いて、変更前分割済実装物111と変更後分割済実装物112との等価性を検査し、等価性検査結果121を出力する。具体的には、等価性検査部120は、等価性検査を用いて、変更前分割済実装物111と変更後分割済実装物112との同等部分211と差異部分212とを等価性検査結果121として出力する。
図9を用いて、本実施の形態に係る等価性検査結果121の例について説明する。図9では、黒い三角付きの四角で表された処理は、変更前分割済実装物111と変更後分割済実装物112との差異部分212を示している。また、単なる四角で表された処理は、変更前分割済実装物111と変更後分割済実装物112との同等部分211を示している。
<欠陥検出処理S30>
図10を用いて、本実施の形態に係る欠陥検出処理S30について説明する。
欠陥検出処理S30において、欠陥検出部30は、等価性検査結果121に基づいて、変更後分割済実装物112の機能的欠陥131あるいは並行性欠陥141を検出する。
機能的欠陥判定処理S130において、テスト実行部130は、変更前機能仕様164と変更後機能仕様165と等価性検査結果121とを取得し、テストケースを生成する。テスト実行部130は、テストケースを実行し、機能的欠陥131を出力する。機能的欠陥131とは、変更後分割済実装物112について機能の欠陥が検出された箇所である。
並行処理監視処理S140において、並行処理監視部140は、等価性検査結果121を取得し、並行性欠陥141を出力する。並行性欠陥141とは、変更後分割済実装物112について並行処理に起因する欠陥が検出された箇所である。
図11は、本実施の形態に係る機能的欠陥131と並行性欠陥141との各々の例を示す図である。
機能的欠陥131と並行性欠陥141との各々は、検証内容511に対して、変更後に発生した欠陥510である。あるいは、機能的欠陥131と並行性欠陥141との各々は、検証内容511に対して、変更後に欠陥510が発生した欠陥箇所でもよい。機能的欠陥131の具体例としては、「特定の入力に対して要求として期待する出力」という検証内容に対して、「出力信号1と出力信号2の少なくとも一つが期待と異なる」という欠陥がある。並行性欠陥141の具体例としては、「解除されない待ち状態、すなわちデッドロックに陥らない」という検証内容に対して、「出力信号1と出力信号2の少なくとも一つが出力されない」という欠陥がある。
<原因推定処理S150>
図12を用いて、本実施の形態に係る欠陥の原因推定処理S150について説明する。
原因推定処理S150において、原因推定部150は、変更後分割済実装物112について機能的欠陥131が検出された場合に、変更前分割済実装物111と変更後分割済実装物112との間で異なる機能逐次処理320を機能的欠陥131の原因と推定する。また、原因推定部150は、変更後分割済実装物112について並行性欠陥141が検出された場合に、変更前分割済実装物111と変更後分割済実装物112との間で異なる並行性処理321を並行性欠陥141の原因と推定する。機能的欠陥131の原因は、機能的欠陥原因151という。並行性欠陥141の原因は、並行性欠陥原因152という。機能的欠陥原因151と並行性欠陥原因152とを合わせて欠陥原因520ともいう。
ステップS151において、原因推定部150は、機能的欠陥131または並行性欠陥141から、原因推定の対象とする入力信号と出力信号の組を特定する。図11の例では、「特定の入力に対して要求として期待する出力」という検証内容に対して、「出力信号1と出力信号2の少なくとも一つが期待と異なる」という機能的欠陥131が得られている。このとき、原因推定部150は、変更前分割済実装物111と変更後分割済実装物112とを照合し、入力信号1、入力信号2、出力信号1、および出力信号2の組が原因推定対象であると特定する。また、図11の例では、「解除されない待ち状態、すなわちデッドロックに陥らない」という検証内容に対して、「出力信号1と出力信号2の少なくとも一つが出力されない」という並行性欠陥141が得られている。このとき、原因推定部150は、変更前分割済実装物111と変更後分割済実装物112とを照合し、入力信号1、入力信号2、出力信号1、および出力信号2の組が原因推定対象であると特定する。なお、図11で示した検証内容と欠陥は一例であり、テストケースの生成およびテスト実行を実施するテスト実行処理S130、あるいは並行処理監視部機能を実施する並行処理監視処理S140で扱うことができる検証内容と欠陥であればどのようなものであってもよい。
ステップS152において、原因推定部150は、原因推定対象とする入力信号と出力信号の間の演算集合、分岐、合流、あるいはループといった制御処理を連結した複数のパスを特定する。図9の変更後分割済実装物112の例では、パス1とパス2とが特定される。
ステップS153において、原因推定部150は、欠陥が機能的欠陥131と並行性欠陥141とのどちらかを判定する。欠陥が機能的欠陥131である場合は、処理はステップS154に進む。欠陥が並行性欠陥141である場合は、処理はステップS155に進む。
ステップS154において、原因推定部150は、機能的欠陥の原因推定であるため、いずれかのパス上にある機能逐次処理320または通常逐次処理310の差異部分に加えた変更が機能的欠陥原因151であると推定する。図9の変更後分割済実装物112の例では、原因推定部150は、黒い三角付きの四角で表された機能逐次処理320に加えた変更が機能的欠陥原因151であると推定する。
ステップS155において、原因推定部150は、並行性欠陥の原因調査であるため、いずれかのパス上にある並行処理API使用処理の差異部分に加えた変更が並行性欠陥原因152であると推定する。図9の変更後分割済実装物112の例では、原因推定部150は、黒い三角付きの四角で表されたセマフォ取得に加えた変更が並行性欠陥原因152であると推定する。
図13は、本実施の形態に係る機能的欠陥原因151と並行性欠陥原因152との例を示す図である。
ここで、ソフトウェア、すなわちプログラムにおいて、機能逐次処理または通常逐次処理の差異部分に加えた変更とは、プログラムに含まれる制御処理の一部または全部を変更することである。また、制御処理とは、演算集合、分岐、合流、あるいはループといった処理である。また、並行処理API使用処理の差異部分に加えた変更とは、使用している並行処理APIは変更せずに、引数に関する処理および戻り値に関する処理の一部または全部を変更することである。
***他の構成***
本実施の形態では、分割部110と、等価性検査部120と、テスト実行部130と、並行処理監視部140と、原因推定部150の機能がソフトウェアで実現される。しかし、変形例として、分割部110と、等価性検査部120と、テスト実行部130と、並行処理監視部140と、原因推定部150の機能がハードウェアで実現されてもよい。
図14を用いて、本実施の形態の変形例に係る動作検証装置100の構成について説明する。
図14に示すように、動作検証装置100は、処理回路909、入力インタフェース930、出力インタフェース940、および通信装置950といったハードウェアを備える。
処理回路909は、分割部110と、等価性検査部120と、テスト実行部130と、並行処理監視部140と、原因推定部150の機能および記憶部160を実現する専用の電子回路である。処理回路909は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、または、FPGAである。GAは、Gate Arrayの略語である。ASICは、Application Specific Integrated Circuitの略語である。FPGAは、Field−Programmable Gate Arrayの略語である。
分割部110と、等価性検査部120と、テスト実行部130と、並行処理監視部140と、原因推定部150の機能は、1つの処理回路909で実現されてもよいし、複数の処理回路909に分散して実現されてもよい。
別の変形例として、分割部110と、等価性検査部120と、テスト実行部130と、並行処理監視部140と、原因推定部150の機能がソフトウェアとハードウェアの組合せで実現されてもよい。すなわち、動作検証装置100の一部の機能が専用のハードウェアで実現され、残りの機能がソフトウェアで実現されてもよい。
動作検証装置100のプロセッサ910、記憶装置920、および、処理回路909を、総称して「プロセッシングサーキットリ」という。つまり、動作検証装置100の構成が図2および図14のいずれに示した構成であっても、分割部110と、等価性検査部120と、テスト実行部130と、並行処理監視部140と、原因推定部150の機能および記憶部160は、プロセッシングサーキットリにより実現される。
「部」を「工程」または「手順」または「処理」に読み替えてもよい。また、「部」の機能をファームウェアで実現してもよい。
***本実施の形態の効果の説明***
本実施の形態に係る動作検証装置100では、セマフォ取得およびセマフォ解放といった並行処理を含んだ制御処理を、演算内容を全く変えずにタスクのコンテキストスイッチが起きない複数の逐次処理になるまで分割する。これにより、本実施の形態に係る動作検証装置100によれば、等価性検査をマルチタスク構成に適用可能となる。よって、本実施の形態に係る動作検証装置100によれば、差分および派生開発への移行あるいは運用において、品質確保および作業効率化のキーとなる影響範囲分析の適用範囲をシングルタスク構成からマルチタスク構成のソフトウェアに広げることで、あらゆる制御ソフトウェア開発の生産性向上を実現することができる。
本実施の形態に係る動作検証装置100によれば、機能的欠陥および並行性欠陥を検出した後に膨大な作業量を要していた原因推定において、その欠陥の原因がどの逐次処理の変更または並行処理の変更にあるか推定することができる。よって、本実施の形態に係る動作検証装置100によれば、欠陥の原因となるソフトウェアの変更箇所を自動的に推定することができる。したがって、本実施の形態に係る動作検証装置100によれば、検証およびテストに要する作業量を大幅に圧縮することができる。
実施の形態2.
本実施の形態では、主に、実施の形態1と異なる点について説明する。なお、実施の形態1で説明した構成と同様の構成には、同一の符号を付し、その説明を省略する。
実施の形態1では、一般的な並行性処理と実装環境に固有の並行処理APIとの対応が一対一である場合について説明した。実施の形態2では、一般的な並行性処理と実装環境に固有の並行処理APIの対応が一対多である場合について説明する。
図15および図16は、本実施の形態に係る並行処理対応表163a,163bの例を示す図である。
本実施の形態に係る並行処理対応表163a,163bは、並行性処理321の種別に、並行性処理321のパラメータごとの命令が対応付けられている。並行処理対応表163a,163bは、一つの並行性処理について、機能的には同じだが使用するときの並行処理パラメータが異なる複数の並行処理APIが対応する。図15の並行処理対応表163aでは、並行性処理のセマフォ取得について、3つの並行処理パラメータ「取得できるまで待機」「取得できるまでポーリングで確認」「取得できるまでタイムアウト付きで待機」のそれぞれに対して実行環境Aの並行処理APIを一つ対応付けている。また、図16の並行処理対応表163bでは、図15と同様に、セマフォ取得について3つの並行処理パラメータのそれぞれに対して実行環境Bの並行処理APIを一つ対応付けている。
そして、分割部110は、並行処理対応表163a,163bから並行処理API632の一覧を取得する。分割部110は、複数の制御処理のうち、並行処理API632の一覧のうちいずれかの並行処理API632を含む制御処理を、並行処理API632を含む並行性処理321と並行処理API632を含まない機能逐次処理310とに分割する。具体的には、実施の形態1の図6を用いて説明した分割処理S110において、分割部110は、並行性処理が同じで並行処理パラメータだけが異なる並行処理APIを使用している制御処理を、同一の並行処理API使用処理と識別する。具体的には、ステップS113において、分割部110は、並行処理APIを含んだ演算集合の中身を、並行処理API使用処理と、並行処理API使用処理を含まない部分的な演算集合とに分割する。このとき、分割部110は、並行性処理が同じで並行処理パラメータだけが異なる並行処理APIを使用している制御処理を、同一の並行処理API使用処理と識別する。
本実施の形態では、実施の形態1の図12を用いて説明した原因推定処理S150において、並行処理API使用処理の差異部分に加えた変更とは、使用する並行処理API、引数に関する処理、および戻り値に関する処理の一部または全部を変更することとする。
本実施の形態に係る動作検証装置100によれば、実施の形態1と同様の効果を得ることができる。
実施の形態3.
本実施の形態では、主に、実施の形態1と異なる点について説明する。なお、実施の形態1で説明した構成と同様の構成には、同一の符号を付し、その説明を省略する。
実施の形態1では、並行性処理321の差異部分に加えた変更は、使用している並行処理APIは変更せずに引数に関する処理および戻り値に関する処理の一部または全部を変更する場合を説明した。実施の形態3では、並行性処理321加えた変更が、使用する並行処理APIの追加あるいは削除である場合について説明する。
図17および図18は、本実施の形態に係る等価性検査結果121a,121bの例を示す図である。
図17は、変更により使用する並行処理APIを追加した場合の等価性検査結果121aの例を示している。追加した並行処理APIを使用する処理は、変更後分割済実装物112にだけ存在する。
また、図18は、変更により使用している並行処理APIを削除した場合の等価性検査結果121bの例を示している。削除した並行処理APIを使用する処理は、変更前分割済実装物111にだけ存在する。
そして、実施の形態1で図12を用いて説明した原因推定処理S150において、原因推定部150は、原因調査の対象として特定した変更前分割済実装物111のパスと変更後分割済実装物112のパス同士を比較する。使用する並行処理APIを追加した場合は、原因推定部150は、変更後分割済実装物112のいずれかのパス上にある制御処理の差異部分を欠陥原因と推定する。また、原因推定部150は、使用している並行処理APIを削除した場合は変更前分割済実装物111のいずれかのパス上にある制御処理の差異部分を欠陥原因と推定する。
本実施の形態に係る動作検証装置100によれば、実施の形態1と同様の効果を得ることができる。
実施の形態1から3では、分割部110と、等価性検査部120と、テスト実行部130と、並行処理監視部140と、原因推定部150が各々独立した機能ブロックである。しかし、上述した実施の形態のような構成でなくてもよく、動作検証装置100の構成は任意である。動作検証装置100の機能ブロックは、上述した実施の形態で説明した機能を実現することができれば、任意である。これらの機能ブロックを、他のどのような組み合わせ、あるいは任意のブロック構成で、動作検証装置100を構成しても構わない。
また、動作検証装置100は、1つの装置でなく、複数の装置から構成されたシステムでもよい。
実施の形態1から3について説明したが、これらの実施の形態のうち、複数の部分を組み合わせて実施しても構わない。あるいは、これらの実施の形態のうち、1つの部分を実施しても構わない。その他、これらの実施の形態を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
なお、上述した実施の形態は、本質的に好ましい例示であって、本発明、その適用物および用途の範囲を制限することを意図するものではなく、必要に応じて種々の変更が可能である。
30 欠陥検出部、32 命令、61 第1のプログラム、62 第2のプログラム、63 複数の制御処理、71 第1の分割済プログラム、72 第2の分割済プログラム、100 動作検証装置、110 分割部、111 変更前分割済実装物、112 変更後分割済実装物、120 等価性検査部、121,121a,121b 等価性検査結果、130 テスト実行部、131 機能的欠陥、140 並行処理監視部、141 並行性欠陥、150 原因推定部、151 機能的欠陥原因、152 並行性欠陥原因、160 記憶部、161 変更前実装物、162 変更後実装物、163,163a,163b 並行処理対応表、164 変更前機能仕様、165 変更後機能仕様、211 同等部分、212 差異部分、320 機能逐次処理、321 並行性処理、310 通常逐次処理、510 欠陥、511 検証内容、520 欠陥原因、610 動作検証方法、620 動作検証プログラム、909 処理回路、910 プロセッサ、920 記憶装置、921 メモリ、922 補助記憶装置、930 入力インタフェース、940 出力インタフェース、950 通信装置、S100 動作検証処理、S110 分割処理、S120 等価性検査処理、S30 欠陥検出処理、S130 テスト実行処理、S140 並行処理監視処理、S150 原因推定処理。

Claims (8)

  1. 複数の制御処理を含む第1のプログラムと前記複数の制御処理の少なくとも一部が変更された複数の制御処理を含む第2のプログラムとの各々について、前記複数の制御処理の各々を、前記複数の制御処理の並行処理を実現する並行性処理と、前記複数の制御処理による機能を実現する機能逐次処理とに分割し、前記複数の制御処理の各々が前記並行性処理と前記機能逐次処理とに分割された前記第1のプログラムを第1の分割済プログラムとして出力するとともに、前記複数の制御処理の各々が前記並行性処理と前記機能逐次処理とに分割された前記第2のプログラムを第2の分割済プログラムとして出力する分割部と、
    前記第2の分割済プログラムについて機能の欠陥が機能的欠陥として検出された場合に、前記第1の分割済プログラムと前記第2の分割済プログラムとの間で異なる機能逐次処理を前記機能的欠陥の原因と推定し、前記第2の分割済プログラムについて並行処理に起因する欠陥が並行性欠陥として検出された場合に、前記第1の分割済プログラムと前記第2の分割済プログラムとの間で異なる並行性処理を前記並行性欠陥の原因と推定する原因推定部と
    を備えた動作検証装置。
  2. 前記動作検証装置は、
    前記第1の分割済プログラムと前記第2の分割済プログラムとの等価性を検査し、前記第1の分割済プログラムと前記第2の分割済プログラムとの間で異なる差異部分と、前記第1の分割済プログラムと前記第2の分割済プログラムとの間で同等の同等部分とを等価性検査結果として出力する等価性検査部と、
    前記等価性検査結果に基づいて、前記第2の分割済プログラムについて前記機能的欠陥あるいは前記並行性欠陥を検出する欠陥検出部と
    を備えた請求項1に記載の動作検証装置。
  3. 前記動作検証装置は、
    前記並行性処理に前記並行性処理を実現する命令が対応付けられた並行処理対応表を記憶する記憶部を備え、
    前記分割部は、
    前記記憶部に記憶された前記並行処理対応表から前記命令の一覧を取得し、前記複数の制御処理から前記命令の一覧のうちいずれかの命令を含む制御処理を、前記命令を含む前記並行性処理と前記命令を含まない前記機能逐次処理とに分割する請求項1または2に記載の動作検証装置。
  4. 前記記憶部は、
    プログラムの実行環境ごとに、前記並行性処理に前記命令が対応付けられた前記並行処理対応表を記憶し、
    前記分割部は、
    前記並行処理対応表から、前記第1のプログラムと前記第2のプログラムとの実行環境が提供する前記命令の一覧を取得する請求項3に記載の動作検証装置。
  5. 前記動作検証装置は、
    前記並行性処理に前記並行性処理のパラメータごとの命令が対応付けられた並行処理対応表を記憶する記憶部を備え、
    前記分割部は、
    前記並行処理対応表から前記命令の一覧を取得し、前記複数の制御処理から前記命令の一覧のうちいずれかの命令を含む制御処理を、前記命令を含む前記並行性処理と前記命令を含まない前記機能逐次処理とに分割する請求項1または2に記載の動作検証装置。
  6. 前記第2のプログラムに加えた変更は、前記複数の制御処理のうち少なくともいずれかの処理内容の変更、新たな制御処理の追加による変更、あるいは、前記複数の制御処理のうち少なくともいずれかの削除による変更である請求項1から5のいずれか1項に記載の動作検証装置。
  7. 分割部が、複数の制御処理を含む第1のプログラムと前記複数の制御処理の少なくとも一部が変更された複数の制御処理を含む第2のプログラムとの各々について、前記複数の制御処理の各々を、前記複数の制御処理の並行処理を実現する並行性処理と、前記複数の制御処理による機能を実現する機能逐次処理とに分割し、前記複数の制御処理の各々が前記並行性処理と前記機能逐次処理とに分割された前記第1のプログラムを第1の分割済プログラムとして出力するとともに、前記複数の制御処理の各々が前記並行性処理と前記機能逐次処理とに分割された前記第2のプログラムを第2の分割済プログラムとして出力し、
    原因推定部が、前記第2の分割済プログラムについて機能の欠陥が機能的欠陥として検出された場合に、前記第1の分割済プログラムと前記第2の分割済プログラムとの間で異なる機能逐次処理を前記機能的欠陥の原因と推定し、前記第2の分割済プログラムについて並行処理に起因する欠陥が並行性欠陥として検出された場合に、前記第1の分割済プログラムと前記第2の分割済プログラムとの間で異なる並行性処理を前記並行性欠陥の原因と推定する動作検証方法。
  8. 複数の制御処理を含む第1のプログラムと前記複数の制御処理の少なくとも一部が変更された複数の制御処理を含む第2のプログラムとの各々について、前記複数の制御処理の各々を、前記複数の制御処理の並行処理を実現する並行性処理と、前記複数の制御処理による機能を実現する機能逐次処理とに分割し、前記複数の制御処理の各々が前記並行性処理と前記機能逐次処理とに分割された前記第1のプログラムを第1の分割済プログラムとして出力するとともに、前記複数の制御処理の各々が前記並行性処理と前記機能逐次処理とに分割された前記第2のプログラムを第2の分割済プログラムとして出力する分割処理と、
    前記第2の分割済プログラムについて機能の欠陥が機能的欠陥として検出された場合に、前記第1の分割済プログラムと前記第2の分割済プログラムとの間で異なる機能逐次処理を前記機能的欠陥の原因と推定し、前記第2の分割済プログラムについて並行処理に起因する欠陥が並行性欠陥として検出された場合に、前記第1の分割済プログラムと前記第2の分割済プログラムとの間で異なる並行性処理を前記並行性欠陥の原因と推定する原因推定処理と
    をコンピュータに実行させる動作検証プログラム。
JP2019500100A 2017-02-16 2017-02-16 動作検証装置、動作検証方法および動作検証プログラム Active JP6571897B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/005633 WO2018150504A1 (ja) 2017-02-16 2017-02-16 動作検証装置、動作検証方法および動作検証プログラム

Publications (2)

Publication Number Publication Date
JP6571897B2 true JP6571897B2 (ja) 2019-09-04
JPWO2018150504A1 JPWO2018150504A1 (ja) 2019-11-07

Family

ID=63169775

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019500100A Active JP6571897B2 (ja) 2017-02-16 2017-02-16 動作検証装置、動作検証方法および動作検証プログラム

Country Status (4)

Country Link
US (1) US20190317806A1 (ja)
EP (1) EP3564820B1 (ja)
JP (1) JP6571897B2 (ja)
WO (1) WO2018150504A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112021002403T5 (de) 2020-07-03 2023-03-09 Hitachi Astemo, Ltd. Fahrzeugsteuervorrichtung

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230244549A1 (en) * 2021-12-13 2023-08-03 Nvidia Corporation Application programming interface to cause graph code to wait on a semaphore
JP2024048916A (ja) * 2022-09-28 2024-04-09 株式会社オートネットワーク技術研究所 情報処理システム、情報処理方法およびコンピュータプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11282722A (ja) * 1998-03-31 1999-10-15 Hitachi Software Eng Co Ltd プログラム検証方法
WO2001022228A1 (en) * 1999-09-17 2001-03-29 Nortel Networks Limited System and method for producing a verification system for verifying procedure interfaces
JP4414373B2 (ja) * 2005-06-30 2010-02-10 富士通株式会社 プログラムの検証プログラム、プログラムの検証装置、プログラムの検証方法
JP4712583B2 (ja) * 2006-03-20 2011-06-29 富士通株式会社 ソフトウェア検証プログラム、ソフトウェア検証装置、ソフトウェア検証方法
JP4924188B2 (ja) 2007-04-27 2012-04-25 トヨタ自動車株式会社 クロス検証装置
WO2013072977A1 (ja) 2011-11-18 2013-05-23 株式会社日立製作所 情報処理装置、プログラム及び情報処理方法
JP2014038467A (ja) 2012-08-15 2014-02-27 Nec Corp 一貫性破壊検出装置、一貫性破壊検出プログラム、及び一貫性破壊検出方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112021002403T5 (de) 2020-07-03 2023-03-09 Hitachi Astemo, Ltd. Fahrzeugsteuervorrichtung

Also Published As

Publication number Publication date
EP3564820B1 (en) 2021-01-06
JPWO2018150504A1 (ja) 2019-11-07
EP3564820A1 (en) 2019-11-06
WO2018150504A1 (ja) 2018-08-23
EP3564820A4 (en) 2020-02-26
US20190317806A1 (en) 2019-10-17

Similar Documents

Publication Publication Date Title
US9612937B2 (en) Determining relevant events in source code analysis
US8887146B2 (en) System for inspecting information processing unit to which software update is applied
JP6571897B2 (ja) 動作検証装置、動作検証方法および動作検証プログラム
US8499288B2 (en) User interface analysis management
JP6289778B2 (ja) テストケース生成装置及びテストケース生成プログラム
US9477576B2 (en) Using application state data and additional code to resolve deadlocks
US20100153693A1 (en) Code execution with automated domain switching
US20160239400A1 (en) Embedding and executing trace functions in code to gather trace data
US20090083736A1 (en) Virtualized computer, monitoring method of the virtualized computer and a computer readable medium thereof
JP6023317B2 (ja) 情報処理装置、および、情報処理方法
US8079026B2 (en) Job definition verification system, and method and program thereof
US20200019451A1 (en) Helping a hardware accelerator using software
US9092333B2 (en) Fault isolation with abstracted objects
US9442826B2 (en) Kernel functionality checker
CN108845837B (zh) 一种检测windows系统运行模式的方法及电子设备
US20100077383A1 (en) Simulation method and storage medium for storing program
JP5757167B2 (ja) 判定作業支援システム、判定作業支援方法、及びプログラム
US20140250330A1 (en) System level architecture verification of a transactional execution
JP2009098907A (ja) デバッグ装置及びデバッグ方法
US20220308912A1 (en) Setting changing device, setting changing method, and computer readable medium
KR102202633B1 (ko) 오류 처리 프로세서 및 이를 이용한 오류 처리 방법
US11080122B2 (en) Software-invisible interrupt for a microprocessor
JP5949391B2 (ja) 実行条件検査装置、実行条件検査システム、実行条件検査方法およびプログラム
Vostokov Elementary Diagnostics Patterns
JP2007034864A (ja) 入出力装置の診断方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190325

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190325

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190403

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190611

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190628

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190808

R150 Certificate of patent or registration of utility model

Ref document number: 6571897

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250