(57)【特許請求の範囲】
【請求項１】
複数の制御処理を含む第１のプログラムと前記複数の制御処理の少なくとも一部が変更された複数の制御処理を含む第２のプログラムとの各々について、前記複数の制御処理の各々を、前記複数の制御処理の並行処理を実現する並行性処理と、前記複数の制御処理による機能を実現する機能逐次処理とに分割し、前記複数の制御処理の各々が前記並行性処理と前記機能逐次処理とに分割された前記第１のプログラムを第１の分割済プログラムとして出力するとともに、前記複数の制御処理の各々が前記並行性処理と前記機能逐次処理とに分割された前記第２のプログラムを第２の分割済プログラムとして出力する分割部と、
前記第２の分割済プログラムについて機能の欠陥が機能的欠陥として検出された場合に、前記第１の分割済プログラムと前記第２の分割済プログラムとの間で異なる機能逐次処理を前記機能的欠陥の原因と推定し、前記第２の分割済プログラムについて並行処理に起因する欠陥が並行性欠陥として検出された場合に、前記第１の分割済プログラムと前記第２の分割済プログラムとの間で異なる並行性処理を前記並行性欠陥の原因と推定する原因推定部と
を備えた動作検証装置。
【請求項２】
前記動作検証装置は、
前記第１の分割済プログラムと前記第２の分割済プログラムとの等価性を検査し、前記第１の分割済プログラムと前記第２の分割済プログラムとの間で異なる差異部分と、前記第１の分割済プログラムと前記第２の分割済プログラムとの間で同等の同等部分とを等価性検査結果として出力する等価性検査部と、
前記等価性検査結果に基づいて、前記第２の分割済プログラムについて前記機能的欠陥あるいは前記並行性欠陥を検出する欠陥検出部と
を備えた請求項１に記載の動作検証装置。
【請求項３】
前記動作検証装置は、
前記並行性処理に前記並行性処理を実現する命令が対応付けられた並行処理対応表を記憶する記憶部を備え、
前記分割部は、
前記記憶部に記憶された前記並行処理対応表から前記命令の一覧を取得し、前記複数の制御処理から前記命令の一覧のうちいずれかの命令を含む制御処理を、前記命令を含む前記並行性処理と前記命令を含まない前記機能逐次処理とに分割する請求項１または２に記載の動作検証装置。
【請求項４】
前記記憶部は、
プログラムの実行環境ごとに、前記並行性処理に前記命令が対応付けられた前記並行処理対応表を記憶し、
前記分割部は、
前記並行処理対応表から、前記第１のプログラムと前記第２のプログラムとの実行環境が提供する前記命令の一覧を取得する請求項３に記載の動作検証装置。
【請求項５】
前記動作検証装置は、
前記並行性処理に前記並行性処理のパラメータごとの命令が対応付けられた並行処理対応表を記憶する記憶部を備え、
前記分割部は、
前記並行処理対応表から前記命令の一覧を取得し、前記複数の制御処理から前記命令の一覧のうちいずれかの命令を含む制御処理を、前記命令を含む前記並行性処理と前記命令を含まない前記機能逐次処理とに分割する請求項１または２に記載の動作検証装置。
【請求項６】
前記第２のプログラムに加えた変更は、前記複数の制御処理のうち少なくともいずれかの処理内容の変更、新たな制御処理の追加による変更、あるいは、前記複数の制御処理のうち少なくともいずれかの削除による変更である請求項１から５のいずれか１項に記載の動作検証装置。
【請求項７】
分割部が、複数の制御処理を含む第１のプログラムと前記複数の制御処理の少なくとも一部が変更された複数の制御処理を含む第２のプログラムとの各々について、前記複数の制御処理の各々を、前記複数の制御処理の並行処理を実現する並行性処理と、前記複数の制御処理による機能を実現する機能逐次処理とに分割し、前記複数の制御処理の各々が前記並行性処理と前記機能逐次処理とに分割された前記第１のプログラムを第１の分割済プログラムとして出力するとともに、前記複数の制御処理の各々が前記並行性処理と前記機能逐次処理とに分割された前記第２のプログラムを第２の分割済プログラムとして出力し、
原因推定部が、前記第２の分割済プログラムについて機能の欠陥が機能的欠陥として検出された場合に、前記第１の分割済プログラムと前記第２の分割済プログラムとの間で異なる機能逐次処理を前記機能的欠陥の原因と推定し、前記第２の分割済プログラムについて並行処理に起因する欠陥が並行性欠陥として検出された場合に、前記第１の分割済プログラムと前記第２の分割済プログラムとの間で異なる並行性処理を前記並行性欠陥の原因と推定する動作検証方法。
【請求項８】
複数の制御処理を含む第１のプログラムと前記複数の制御処理の少なくとも一部が変更された複数の制御処理を含む第２のプログラムとの各々について、前記複数の制御処理の各々を、前記複数の制御処理の並行処理を実現する並行性処理と、前記複数の制御処理による機能を実現する機能逐次処理とに分割し、前記複数の制御処理の各々が前記並行性処理と前記機能逐次処理とに分割された前記第１のプログラムを第１の分割済プログラムとして出力するとともに、前記複数の制御処理の各々が前記並行性処理と前記機能逐次処理とに分割された前記第２のプログラムを第２の分割済プログラムとして出力する分割処理と、
前記第２の分割済プログラムについて機能の欠陥が機能的欠陥として検出された場合に、前記第１の分割済プログラムと前記第２の分割済プログラムとの間で異なる機能逐次処理を前記機能的欠陥の原因と推定し、前記第２の分割済プログラムについて並行処理に起因する欠陥が並行性欠陥として検出された場合に、前記第１の分割済プログラムと前記第２の分割済プログラムとの間で異なる並行性処理を前記並行性欠陥の原因と推定する原因推定処理と
をコンピュータに実行させる動作検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動作検証装置、動作検証方法および動作検証プログラムに関する。
【背景技術】
【０００２】
制御装置に搭載される制御ソフトウェアは、多機能化および付加価値向上に応えるための制御機能の電子化により、大規模化および複雑化が急速に進んでいる。さらに、制御装置の派生機種あるいは仕向け地の違いによる制御ソフトウェアのバリエーションが、今後急増していくことが見込まれる。このような状況下で収益力を維持および強化するには、制御ソフトウェア開発の生産性向上に取り組む必要がある。具体的な施策には、ソフトウェアの実行環境の導入による、差分および派生開発への移行がある。実行環境とは、ソフトウェアの実行における、通信処理、タイマ処理、スケジューラ、ＯＳ（オペレーティングシステム）、あるいはミドルウェアといった環境である。さらに、具体的な施策には、差分および派生開発の運用において、ソフトウェアの品質確保および作業効率化を実現するためのソフトウェア開発手法およびソフトウェア開発ツールの適用が考えられる。【０００３】
従来の制御ソフトウェアの典型的な構成は、個々の制御機能に実行の優先度を設けて、この優先度に従って周期実行していくというシングルタスク構成が一般的であった。しかし、ソフトウェアの実行環境を導入すると、従来の周期実行にイベントでトリガされる非周期実行を混在させることが可能になり、マルチタスク構成に近くなる。
また、差分および派生開発への移行あるいは運用において、ソフトウェアの変更前後での影響範囲分析（Ｉｍｐａｃｔ  Ａｎａｌｙｓｉｓ）、および影響範囲に応じた十分なテストが求められる。この影響範囲分析およびテストの具体例としては、産業分野ごとの機能安全規格である航空分野のＤＯ−１７８Ｂや自動車分野のＩＳＯ２６２６２で求められる影響範囲分析およびテストがある。【０００４】
そこで、ソフトウェアの実行環境の導入あるいはソフトウェア開発手法およびツールの適用に関する要求事項を以下のように明確化する。
（１）新たな実行環境への移行前後、あるいは実行環境への移行後に日々開発していくソフトウェアのバージョン間といった２つのソフトウェアの間で、論理的に演算内容を変更していない同等部分および変更した差異部分を特定すること。
（２）同等部分および差異部分のそれぞれに適した手法を用いて、２つのソフトウェアの間で機能的な欠陥あるいは並行性に関する欠陥が新たに発生したかどうか検出すること。また、欠陥が発生した場合は除去すること。【０００５】
非特許文献１には、従来の検証およびテスト技術として、シングルタスク構成の２つのソフトウェアの間で論理的に演算内容を変更したかどうか判定する等価性検査が開示されている。以降、このようなソフトウェアが持つ性質を等価性と呼ぶ。
また、特許文献１および非特許文献２には、機能的な欠陥を検出するための入力値を自動的に作成するテストケース生成技術が開示されている。また、特許文献２および特許文献３では、排他制御しない状態での共有変数の更新およびソフトウェアの変更前後で、共有変数に設定する値が異なるといった並行性に関する欠陥を検出する並行処理監視部が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２７６５５６号公報
【特許文献２】特開２０１４−０３８４６７号公報
【特許文献３】国際公開第２０１３／０７２９７７号
【非特許文献】
【０００７】
【非特許文献１】Ｒｕｐａｋ  Ｍａｊｕｍｄａｒ，“Ｃｏｍｐｏｓｉｔｉｏｎａｌ  Ｅｑｕｉｖａｌｅｎｃｅ  Ｃｈｅｃｋｉｎｇ  ｆｏｒ  Ｍｏｄｅｌｓ  ａｎｄ  Ｃｏｄｅ  ｏｆ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍｓ，”５２ｎｄ  ＩＥＥＥ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｄｅｃｉｓｉｏｎ  ａｎｄ  Ｃｏｎｔｒｏｌ，Ｄｅｃｅｍｂｅｒ  ２０１３．
【非特許文献２】橋本祐介，中島  震，“ソフトウェアモデル検査とテストケース生成の統合ツールチェイン”，ソフトウェアエンジニアリングシンポジウム２０１１，２０１１．
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来では、マルチタスク構成のプログラムが変更された場合に、変更前後の２つのプログラムの等価性を判定できず、欠陥原因の推定に膨大な作業量を要するという課題があった。【０００９】
本発明では、並行処理を含んだ制御処理の内容を複数の逐次処理として扱えるまで分割することで、マルチタスク構成のプログラムを変更した場合でも変更後のプログラムの欠陥原因を自動的に推定することを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係る動作検証装置は、
複数の制御処理を含む第１のプログラムと前記複数の制御処理の少なくとも一部が変更された複数の制御処理を含む第２のプログラムとの各々について、前記複数の制御処理の各々を、前記複数の制御処理の並行処理を実現する並行性処理と、前記複数の制御処理による機能を実現する機能逐次処理とに分割し、前記複数の制御処理の各々が前記並行性処理と前記機能逐次処理とに分割された前記第１のプログラムを第１の分割済プログラムとして出力するとともに、前記複数の制御処理の各々が前記並行性処理と前記機能逐次処理とに分割された前記第２のプログラムを第２の分割済プログラムとして出力する分割部と、
前記第２の分割済プログラムについて機能の欠陥が機能的欠陥として検出された場合に、前記第１の分割済プログラムと前記第２の分割済プログラムとの間で異なる機能逐次処理を前記機能的欠陥の原因と推定し、前記第２の分割済プログラムについて並行処理に起因する欠陥が並行性欠陥として検出された場合に、前記第１の分割済プログラムと前記第２の分割済プログラムとの間で異なる並行性処理を前記並行性欠陥の原因と推定する原因推定部とを備えた。
【発明の効果】
【００１１】
本発明に係る動作検証装置では、分割部が、変更前の第１のプログラムと変更後の第２のプログラムとの各々について、複数の制御処理の各々を、並行処理を実現する並行性処理と、機能を実現する機能逐次処理とに分割する。そして、分割部は、複数の制御処理の各々が並行性処理と機能逐次処理とに分割された第１のプログラムを第１の分割済プログラムとして出力する。また、分割部は、複数の制御処理の各々が並行性処理と機能逐次処理とに分割された第２のプログラムを第２の分割済プログラムとして出力する。また、原因推定部が、第２の分割済プログラムについて機能的欠陥が検出された場合に、第１の分割済プログラムと第２の分割済プログラムとの間で異なる機能逐次処理を機能的欠陥の原因と推定する。また、原因推定部が、第２の分割済プログラムについて欠陥が並行性欠陥として検出された場合に、第１の分割済プログラムと第２の分割済プログラムとの間で異なる並行性処理を並行性欠陥の原因と推定する。よって、本発明に係る動作検証装置によれば、マルチタスク構成のプログラムを変更した場合でも変更後のプログラムの欠陥原因を自動的に推定することができる。
【図面の簡単な説明】
【００１２】
【図１】制御ソフトウェアの全体構成を表すソフトウェアアーキテクチャを示す図。
【図２】実施の形態１に係る動作検証装置１００の構成図。
【図３】本実施の形態に係る動作検証方法６１０および動作検証プログラム６２０の動作検証処理Ｓ１００を示すフロー図。
【図４】実施の形態１に係る並行処理対応表１６３の例。
【図５】実施の形態１に係る変更前実装物１６１および変更後実装物１６２の例。
【図６】実施の形態１に係る分割処理Ｓ１１０を示すフロー図。
【図７】実施の形態１に係る変更前分割済実装物１１１および変更後分割済実装物１１２の例。
【図８】実施の形態１に係る等価性検査処理Ｓ１２０を示すフロー図。
【図９】実施の形態１に係る等価性検査結果１２１の例。
【図１０】実施の形態１に係る欠陥検出処理Ｓ３０を示すフロー図。
【図１１】実施の形態１に係る機能的欠陥１３１と並行性欠陥１４１との各々の例。
【図１２】実施の形態１に係る原因推定処理Ｓ１５０を示すフロー図。
【図１３】実施の形態１に係る機能的欠陥原因１５１と並行性欠陥原因１５２との各々の例。
【図１４】実施の形態１の変形例に係る動作検証装置１００の構成図。
【図１５】実施の形態２に係る並行処理対応表１６３ａの例。
【図１６】実施の形態２に係る並行処理対応表１６３ｂの例。
【図１７】実施の形態３に係る等価性検査結果１２１ａの例。
【図１８】実施の形態３に係る等価性検査結果１２１ｂの例。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。
【００１４】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１を用いて、本実施の形態に係る動作検証装置１００の動作検証の対象となる制御システムの構成について説明する。
制御システムは、制御ソフトウェアとハードウェアとで構成される制御装置と、センサ、アクチュエータ、あるいは外部装置といった制御対象とを、デジタル信号線あるいはアナログ信号線で接続したシステムである。なお、図１に示した制御システムの接続関係は代表的なものであり、制御システムの接続関係はこれに限らない。
【００１５】
図１に示した制御ソフトウェアの全体構成を表すソフトウェアアーキテクチャについて説明する。
制御システムは、機能要求を実現するアプリケーションと、アプリケーションを実行する環境である実行環境と、ドライバとで構成される。
アプリケーションは、周期実行と非周期実行が混在する複数の制御処理で構成される。
ドライバは、レジスタアクセスといったＩ／Ｏ処理と、制御処理よりも優先度が高い割込み処理とで構成される。
実行環境は、スケジューリングを行うタイマ処理と、通信を行う通信処理とで構成される。
制御システムは、アプリケーションと、実行環境およびドライバとの間でデータをやり取りしながら、時々刻々と制御演算を進めていく。
【００１６】
図２を用いて、本実施の形態に係る動作検証装置１００の構成について説明する。
図２に示すように、動作検証装置１００は、コンピュータである。
動作検証装置１００は、プロセッサ９１０、記憶装置９２０、入力インタフェース９３０、出力インタフェース９４０、および通信装置９５０といったハードウェアを備える。記憶装置９２０は、メモリ９２１と補助記憶装置９２２とを含む。
【００１７】
動作検証装置１００は、機能構成として、分割部１１０と、等価性検査部１２０と、欠陥検出部３０と、原因推定部１５０と、記憶部１６０とを備える。欠陥検出部３０は、テスト実行部１３０と、並行処理監視部１４０とを備える。記憶部１６０には、変更前実装物１６１、変更後実装物１６２、並行処理対応表１６３、変更前機能仕様１６４、および変更後機能仕様１６５が記憶される。
分割部１１０と、等価性検査部１２０と、テスト実行部１３０と、並行処理監視部１４０と、原因推定部１５０のそれぞれの機能は、ソフトウェアで実現される。
記憶部１６０は、メモリ９２１により実現される。また、記憶部１６０は、補助記憶装置９２２のみ、あるいは、メモリ９２１および補助記憶装置９２２で実現されてもよい。記憶部１６０の実現方法は任意である。
【００１８】
プロセッサ９１０は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。プロセッサ９１０は、演算処理を行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。プロセッサ９１０の具体例は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００１９】
メモリ９２１は、データを一時的に記憶する記憶装置である。メモリ９２１の具体例は、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００２０】
補助記憶装置９２２は、データを保管する記憶装置である。補助記憶装置９２２の具体例は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。また、補助記憶装置９２２は、ＳＤ（登録商標）（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカード、ＣＦ（ＣｏｍｐａｃｔＦｌａｓｈ）、ＮＡＮＤフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）といった可搬記憶媒体であってもよい。
【００２１】
入力インタフェース９３０は、マウス、キーボード、タッチパネルといった入力装置と接続されるポートである。入力インタフェース９３０は、具体的には、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）端子である。なお、入力インタフェース９３０は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）と接続されるポートであってもよい。
【００２２】
出力インタフェース９４０は、ディスプレイといった表示機器のケーブルが接続されるポートである。出力インタフェース９４０は、具体的には、ＵＳＢ端子またはＨＤＭＩ（登録商標）（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）端子である。ディスプレイは、具体的には、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）である。
【００２３】
通信装置９５０は、ネットワークを介して他の装置と通信を行う。
通信装置９５０は、レシーバとトランスミッタとを有する。通信装置９５０は、有線または無線で、ＬＡＮ、インターネット、あるいは電話回線といった通信網に接続している。通信装置９５０は、具体的には、通信チップまたはＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。通信装置９５０は、データを通信する通信部である。レシーバは、データを受信する受信部である。トランスミッタは、データを送信する送信部である。
【００２４】
補助記憶装置９２２には、分割部１１０と、等価性検査部１２０と、テスト実行部１３０と、並行処理監視部１４０と、原因推定部１５０のそれぞれの機能を実現するプログラムが記憶されている。分割部１１０と、等価性検査部１２０と、テスト実行部１３０と、並行処理監視部１４０と、原因推定部１５０のそれぞれの機能を実現するプログラムを動作検証プログラム６２０ともいう。このプログラムは、メモリ９２１にロードされ、プロセッサ９１０に読み込まれ、プロセッサ９１０によって実行される。また、補助記憶装置９２２はＯＳを記憶している。補助記憶装置９２２にされているＯＳの少なくとも一部がメモリ９２１にロードされる。プロセッサ９１０はＯＳを実行しながら、動作検証プログラム６２０を実行する。
【００２５】
動作検証装置１００は、１つのプロセッサ９１０のみを備えていてもよいし、複数のプロセッサ９１０を備えていてもよい。複数のプロセッサ９１０が、分割部１１０と、等価性検査部１２０と、テスト実行部１３０と、並行処理監視部１４０と、原因推定部１５０のそれぞれの機能を実現するプログラムを連携して実行してもよい。
【００２６】
分割部１１０と、等価性検査部１２０と、テスト実行部１３０と、並行処理監視部１４０と、原因推定部１５０のそれぞれの処理の結果を示す情報、データ、信号値、および変数値は、動作検証装置１００の補助記憶装置９２２、メモリ９２１、または、プロセッサ９１０内のレジスタまたはキャッシュメモリに記憶される。
【００２７】
分割部１１０と、等価性検査部１２０と、テスト実行部１３０と、並行処理監視部１４０と、原因推定部１５０のそれぞれの機能を実現するプログラムは、可搬記録媒体に記憶されてもよい。可搬記録媒体とは、具体的には、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）である。
なお、動作検証プログラムプロダクトとは、動作検証プログラム６２０が記録された記憶媒体および記憶装置である。動作検証プログラムプロダクトは、外観に関わらず、コンピュータ読み取り可能なプログラムをロードしているものを指す。
【００２８】
＊＊＊機能の説明＊＊＊
分割部１１０は、ソフトウェアの変更前実装物１６１、ソフトウェアの変更後実装物１６２、および並行処理対応表１６３を読み込む。
変更前実装物１６１は、複数の制御処理を含む第１のプログラム６１の例である。変更後実装物１６２は、第１のプログラム６１の複数の制御処理の少なくとも一部が変更された複数の制御処理を含む第２のプログラム６２の例である。
分割部１１０は、並行処理を含んだ制御処理の内容を、タスクのコンテキストスイッチが起きない複数の逐次処理になるまで分割する。分割部１１０は、分割することにより、変更前分割済実装物１１１および変更後分割済実装物１１２を作成し、等価性検査部１２０に出力する。変更前分割済実装物１１１は、第１の分割済プログラム７１の例である。変更後分割済実装物１１２は、第２の分割済プログラム７２の例である。
分割部１１０は、並行処理と逐次処理の分割、あるいは並行逐次分割部ともいう。
【００２９】
等価性検査部１２０は、分割部１１０から、変更前分割済実装物１１１および変更後分割済実装物１１２を取得し、等価性検査結果１２１を出力する。等価性検査結果１２１は、変更前分割済実装物１１１と変更後分割済実装物１１２における同等部分と差異部分である。
【００３０】
テスト実行部１３０は、変更前機能仕様１６４と変更後機能仕様と等価性検査結果１２１とを取得し、テストケース生成およびテスト実行をし、機能的欠陥１３１を出力する。
また、並行処理監視部１４０は、等価性検査結果１２１を取得し、並行性欠陥１４１を出力する。
【００３１】
原因推定部１５０は、欠陥が新たに発生したことを検出した結果として機能的欠陥１３１および並行性欠陥１４１を取得するとともに、並行処理対応表１６３を取得する。そして、原因推定部１５０は、欠陥を含んだ制御処理の内容、変更前分割済実装物１１１および変更後分割済実装物１１２、ならびに並行処理対応表１６３に記載の並行処理ＡＰＩを照合し、機能的欠陥原因１５１および並行性欠陥原因１５２を推定する。
【００３２】
＊＊＊動作の説明＊＊＊
図３を用いて、本実施の形態に係る動作検証方法６１０および動作検証プログラム６２０の動作検証処理Ｓ１００について説明する。
動作検証処理Ｓ１００は、分割処理Ｓ１１０と、等価性検査処理Ｓ１２０と、欠陥検出処理Ｓ３０と、原因推定処理Ｓ１５０とを有する。欠陥検出処理Ｓ３０は、テスト実行処理Ｓ１３０と、並行処理監視処理Ｓ１４０とを有する。
【００３３】
まず、図４を用いて、本実施の形態に係る並行処理対応表１６３の例について説明する。並行処理対応表１６３では、並行性処理６３１に、並行性処理６３１を実現する命令３２が対応付けられている。より詳しくは、並行処理対応表１６３では、プログラムの実行環境ごとに、並行性処理６３１に命令３２が対応付けられている。並行性処理６３１とは、複数の制御処理の並行処理を実現する一般的な並行処理種別である。並行性処理６３１を実現する命令３２とは、並行性処理６３１を実現する並行処理ＡＰＩ６３２である。ＡＰＩは、Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅの略語である。すなわち、並行処理対応表１６３は、並行性処理６３１と、実装環境に固有の並行処理ＡＰＩ６３２の対応規則を定義した表である。並行性処理６３１には、セマフォ取得、セマフォ解放、ミューテックスロック、およびミューテックスアンロックといった種別がある。実装環境に固有の並行処理ＡＰＩ６３２には、関数あるいはメソッドのシグネチャが設定される。並行処理対応表１６３では、並行性処理６３１と、実装環境に固有の並行処理ＡＰＩ６３２とが対応付けられている。
【００３４】
また、図５を用いて、本実施の形態に係る変更前実装物１６１および変更後実装物１６２の例について説明する。図５では、変更前実装物１６１と変更後実装物１６２について、共通の例を示している。変更前実装物１６１は、複数の制御処理６３を含む。複数の制御処理６３は、具体的には、演算集合、分岐、合流、およびループといった処理である。変更後実装物１６２は、変更前実装物１６１の複数の制御処理６３の少なくとも一部が変更された複数の制御処理を含む。なお、複数の制御処理６３は、演算集合とは別に、並行処理を含んでいてもよい。
変更前実装物１６１と変更後実装物１６２との各々には、並行性処理６３１を含まない制御処理と、並行性処理６３１を含む制御処理とがある。具体的には、変更前実装物１６１と変更後実装物１６２との各々に含まれる演算集合には、並行処理ＡＰＩ６３２を含まない演算集合と、並行処理ＡＰＩ６３２を含む演算集合とがある。図５では、並行処理ＡＰＩを含む演算集合として、セマフォ取得を含む演算集合と、セマフォ解放を含む演算集合とがある。
ここで、変更前と変更後の違いは、演算集合、並行処理、分岐、合流、あるいはループといった複数の制御処理の内容の一部または全部が変更されていることである。
【００３５】
＜分割処理Ｓ１１０＞
図６を用いて、本実施の形態に係る分割処理Ｓ１１０について説明する。
分割処理Ｓ１１０において、分割部１１０は、複数の制御処理６３の各々を、複数の制御処理の並行処理を実現する並行性処理３２１と、複数の制御処理６３による機能を実現する機能逐次処理３２０とに分割する。分割部１１０は、複数の制御処理６３の各々が並行性処理３２１と機能逐次処理３２０とに分割された変更前実装物１６１を変更前分割済実装物１１１として出力する。また、分割部１１０は、複数の制御処理６３の各々が並行性処理３２１と機能逐次処理３２０とに分割された変更後実装物１６２を変更後分割済実装物１１２として出力する。なお、上述したように、変更前実装物１６１は、第１のプログラム６１の例である。変更後実装物１６２は、第２のプログラム６２の例である。また、変更前分割済実装物１１１は、第１の分割済プログラム７１の例である。変更後分割済実装物１１２は、第２の分割済プログラム７２の例である。
なお、以下の図６の説明では処理対象データが変更前実装物１６１の場合を示しているが、処理対象データが変更後実装物１６２の場合も図６と同様の処理である。
【００３６】
ステップＳ１１１において、分割部１１０は、記憶部１６０から、検証対象のソフトウェアにおける変更前実装物１６１と、並行処理対応表１６３とを取得する。分割部１１０は、記憶部１６０に記憶された並行処理対応表１６３から命令３２である並行処理ＡＰＩ６３２の一覧を取得する。分割部１１０は、並行処理対応表１６３から、検証対象のウェアである変更前実装物１６１の実行環境が提供する並行処理ＡＰＩ６３２の一覧を取得する。
ステップＳ１１２において、分割部１１０は、複数の制御処理６３から、並行処理ＡＰＩ６３２の一覧のうちいずれかの並行処理ＡＰＩ６３２を含む制御処理を特定する。具体的には、分割部１１０は、並行処理ＡＰＩ６３２の一覧と、変更前実装物１６１を構成する演算集合とを照合し、演算集合に並行処理ＡＰＩ６３２が含まれるか否かを判定する。演算集合に並行処理ＡＰＩ６３２が含まれる場合、処理はステップＳ１１３に進む。演算集合に並行処理ＡＰＩ６３２が含まれない場合、処理はステップＳ１１４に進む。
【００３７】
分割部１１０は、複数の制御処理６３から並行処理ＡＰＩ６３２の一覧のうちいずれかの並行処理ＡＰＩ６３２を含む制御処理を、並行処理ＡＰＩ６３２を含む並行性処理３２１と並行処理ＡＰＩ６３２を含まない機能逐次処理３２０とに分割する。具体的には、以下の通りである。
ステップＳ１１３において、分割部１１０は、並行処理ＡＰＩ６３２を含んだ演算集合の中身を、並行処理ＡＰＩ使用処理である並行性処理３２１と、並行処理ＡＰＩ使用処理を含まない部分的な演算集合とに分割する。分割した個々の部分的な演算集合は、タスクのコンテキストスイッチが起きない逐次処理に変換しているので、これを機能逐次処理３２０と呼ぶ。機能逐次処理３２０は、分割により逐次処理に変換された分割逐次処理ともいう。
ステップＳ１１４において、分割部１１０は、並行処理ＡＰＩを含まない演算集合を通常逐次処理３１０とする。並行処理ＡＰＩを含まない演算集合はそもそもタスクのコンテキストスイッチが起きないので、これ以上変換せずに通常逐次処理３１０と呼ぶ。分割部１１０は、並行処理ＡＰＩ６３２を含んだすべての演算集合を分割した結果を変更前分割済実装物１１１とする。
【００３８】
図７は、本実施の形態に係る変更前分割済実装物１１１および変更後分割済実装物１１２の例である。図７では、変更前分割済実装物１１１と変更後分割済実装物１１２について、共通の例を示している。
変更前分割済実装物１１１では、並行処理ＡＰＩ６３２を含まない演算集合は通常逐次処理３１０となる。また、並行処理ＡＰＩ６３２を含んだ演算集合は、具体的には、機能逐次処理３２０と、並行性処理６３１であるセマフォ取得処理と、機能逐次処理３２０とに分割される。
【００３９】
ステップＳ１１５において、分割部１１０は、全ての演算集合について処理が完了したかを判定し、全ての演算集合について処理が完了した場合は処理を終了する。分割部１１０は、処理していない演算集合がある場合は、ステップＳ１１２に戻り、演算集合の分割処理を繰り返す。
なお、分割部１１０は、変更前分割済実装物１１１と同様の処理により、変更後分割済実装物１１２を生成する。
【００４０】
＜等価性検査処理Ｓ１２０＞
図８を用いて、本実施の形態に係る等価性検査処理Ｓ１２０について説明する。
等価性検査処理Ｓ１２０において、等価性検査部１２０は、変更前分割済実装物１１１と変更後分割済実装物１１２との等価性を検査する。等価性検査部１２０は、変更前分割済実装物１１１と変更後分割済実装物１１２との間で異なる差異部分２１２と、変更前分割済実装物１１１と変更後分割済実装物１１２との間で同等の同等部分２１１とを等価性検査結果１２１として出力する。
ステップＳ１２１において、等価性検査部１２０は、変更前分割済実装物１１１と変更後分割済実装物１１２とを取得する。具体的には、等価性検査部１２０は、分割部１１０から出力された変更前分割済実装物１１１と変更後分割済実装物１１２とを取得する。
ステップＳ１２２において、等価性検査部１２０は、等価性検査を用いて、変更前分割済実装物１１１と変更後分割済実装物１１２との等価性を検査し、等価性検査結果１２１を出力する。具体的には、等価性検査部１２０は、等価性検査を用いて、変更前分割済実装物１１１と変更後分割済実装物１１２との同等部分２１１と差異部分２１２とを等価性検査結果１２１として出力する。
【００４１】
図９を用いて、本実施の形態に係る等価性検査結果１２１の例について説明する。図９では、黒い三角付きの四角で表された処理は、変更前分割済実装物１１１と変更後分割済実装物１１２との差異部分２１２を示している。また、単なる四角で表された処理は、変更前分割済実装物１１１と変更後分割済実装物１１２との同等部分２１１を示している。
【００４２】
＜欠陥検出処理Ｓ３０＞
図１０を用いて、本実施の形態に係る欠陥検出処理Ｓ３０について説明する。
欠陥検出処理Ｓ３０において、欠陥検出部３０は、等価性検査結果１２１に基づいて、変更後分割済実装物１１２の機能的欠陥１３１あるいは並行性欠陥１４１を検出する。
機能的欠陥判定処理Ｓ１３０において、テスト実行部１３０は、変更前機能仕様１６４と変更後機能仕様１６５と等価性検査結果１２１とを取得し、テストケースを生成する。テスト実行部１３０は、テストケースを実行し、機能的欠陥１３１を出力する。機能的欠陥１３１とは、変更後分割済実装物１１２について機能の欠陥が検出された箇所である。
並行処理監視処理Ｓ１４０において、並行処理監視部１４０は、等価性検査結果１２１を取得し、並行性欠陥１４１を出力する。並行性欠陥１４１とは、変更後分割済実装物１１２について並行処理に起因する欠陥が検出された箇所である。
【００４３】
図１１は、本実施の形態に係る機能的欠陥１３１と並行性欠陥１４１との各々の例を示す図である。
機能的欠陥１３１と並行性欠陥１４１との各々は、検証内容５１１に対して、変更後に発生した欠陥５１０である。あるいは、機能的欠陥１３１と並行性欠陥１４１との各々は、検証内容５１１に対して、変更後に欠陥５１０が発生した欠陥箇所でもよい。機能的欠陥１３１の具体例としては、「特定の入力に対して要求として期待する出力」という検証内容に対して、「出力信号１と出力信号２の少なくとも一つが期待と異なる」という欠陥がある。並行性欠陥１４１の具体例としては、「解除されない待ち状態、すなわちデッドロックに陥らない」という検証内容に対して、「出力信号１と出力信号２の少なくとも一つが出力されない」という欠陥がある。
【００４４】
＜原因推定処理Ｓ１５０＞
図１２を用いて、本実施の形態に係る欠陥の原因推定処理Ｓ１５０について説明する。
原因推定処理Ｓ１５０において、原因推定部１５０は、変更後分割済実装物１１２について機能的欠陥１３１が検出された場合に、変更前分割済実装物１１１と変更後分割済実装物１１２との間で異なる機能逐次処理３２０を機能的欠陥１３１の原因と推定する。また、原因推定部１５０は、変更後分割済実装物１１２について並行性欠陥１４１が検出された場合に、変更前分割済実装物１１１と変更後分割済実装物１１２との間で異なる並行性処理３２１を並行性欠陥１４１の原因と推定する。機能的欠陥１３１の原因は、機能的欠陥原因１５１という。並行性欠陥１４１の原因は、並行性欠陥原因１５２という。機能的欠陥原因１５１と並行性欠陥原因１５２とを合わせて欠陥原因５２０ともいう。
【００４５】
ステップＳ１５１において、原因推定部１５０は、機能的欠陥１３１または並行性欠陥１４１から、原因推定の対象とする入力信号と出力信号の組を特定する。図１１の例では、「特定の入力に対して要求として期待する出力」という検証内容に対して、「出力信号１と出力信号２の少なくとも一つが期待と異なる」という機能的欠陥１３１が得られている。このとき、原因推定部１５０は、変更前分割済実装物１１１と変更後分割済実装物１１２とを照合し、入力信号１、入力信号２、出力信号１、および出力信号２の組が原因推定対象であると特定する。また、図１１の例では、「解除されない待ち状態、すなわちデッドロックに陥らない」という検証内容に対して、「出力信号１と出力信号２の少なくとも一つが出力されない」という並行性欠陥１４１が得られている。このとき、原因推定部１５０は、変更前分割済実装物１１１と変更後分割済実装物１１２とを照合し、入力信号１、入力信号２、出力信号１、および出力信号２の組が原因推定対象であると特定する。なお、図１１で示した検証内容と欠陥は一例であり、テストケースの生成およびテスト実行を実施するテスト実行処理Ｓ１３０、あるいは並行処理監視部機能を実施する並行処理監視処理Ｓ１４０で扱うことができる検証内容と欠陥であればどのようなものであってもよい。
【００４６】
ステップＳ１５２において、原因推定部１５０は、原因推定対象とする入力信号と出力信号の間の演算集合、分岐、合流、あるいはループといった制御処理を連結した複数のパスを特定する。図９の変更後分割済実装物１１２の例では、パス１とパス２とが特定される。
ステップＳ１５３において、原因推定部１５０は、欠陥が機能的欠陥１３１と並行性欠陥１４１とのどちらかを判定する。欠陥が機能的欠陥１３１である場合は、処理はステップＳ１５４に進む。欠陥が並行性欠陥１４１である場合は、処理はステップＳ１５５に進む。
【００４７】
ステップＳ１５４において、原因推定部１５０は、機能的欠陥の原因推定であるため、いずれかのパス上にある機能逐次処理３２０または通常逐次処理３１０の差異部分に加えた変更が機能的欠陥原因１５１であると推定する。図９の変更後分割済実装物１１２の例では、原因推定部１５０は、黒い三角付きの四角で表された機能逐次処理３２０に加えた変更が機能的欠陥原因１５１であると推定する。
ステップＳ１５５において、原因推定部１５０は、並行性欠陥の原因調査であるため、いずれかのパス上にある並行処理ＡＰＩ使用処理の差異部分に加えた変更が並行性欠陥原因１５２であると推定する。図９の変更後分割済実装物１１２の例では、原因推定部１５０は、黒い三角付きの四角で表されたセマフォ取得に加えた変更が並行性欠陥原因１５２であると推定する。
【００４８】
図１３は、本実施の形態に係る機能的欠陥原因１５１と並行性欠陥原因１５２との例を示す図である。
ここで、ソフトウェア、すなわちプログラムにおいて、機能逐次処理または通常逐次処理の差異部分に加えた変更とは、プログラムに含まれる制御処理の一部または全部を変更することである。また、制御処理とは、演算集合、分岐、合流、あるいはループといった処理である。また、並行処理ＡＰＩ使用処理の差異部分に加えた変更とは、使用している並行処理ＡＰＩは変更せずに、引数に関する処理および戻り値に関する処理の一部または全部を変更することである。
【００４９】
＊＊＊他の構成＊＊＊
本実施の形態では、分割部１１０と、等価性検査部１２０と、テスト実行部１３０と、並行処理監視部１４０と、原因推定部１５０の機能がソフトウェアで実現される。しかし、変形例として、分割部１１０と、等価性検査部１２０と、テスト実行部１３０と、並行処理監視部１４０と、原因推定部１５０の機能がハードウェアで実現されてもよい。
【００５０】
図１４を用いて、本実施の形態の変形例に係る動作検証装置１００の構成について説明する。
図１４に示すように、動作検証装置１００は、処理回路９０９、入力インタフェース９３０、出力インタフェース９４０、および通信装置９５０といったハードウェアを備える。
【００５１】
処理回路９０９は、分割部１１０と、等価性検査部１２０と、テスト実行部１３０と、並行処理監視部１４０と、原因推定部１５０の機能および記憶部１６０を実現する専用の電子回路である。処理回路９０９は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ、ＡＳＩＣ、または、ＦＰＧＡである。ＧＡは、Ｇａｔｅ  Ａｒｒａｙの略語である。ＡＳＩＣは、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略語である。ＦＰＧＡは、Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略語である。
【００５２】
分割部１１０と、等価性検査部１２０と、テスト実行部１３０と、並行処理監視部１４０と、原因推定部１５０の機能は、１つの処理回路９０９で実現されてもよいし、複数の処理回路９０９に分散して実現されてもよい。
【００５３】
別の変形例として、分割部１１０と、等価性検査部１２０と、テスト実行部１３０と、並行処理監視部１４０と、原因推定部１５０の機能がソフトウェアとハードウェアの組合せで実現されてもよい。すなわち、動作検証装置１００の一部の機能が専用のハードウェアで実現され、残りの機能がソフトウェアで実現されてもよい。
【００５４】
動作検証装置１００のプロセッサ９１０、記憶装置９２０、および、処理回路９０９を、総称して「プロセッシングサーキットリ」という。つまり、動作検証装置１００の構成が図２および図１４のいずれに示した構成であっても、分割部１１０と、等価性検査部１２０と、テスト実行部１３０と、並行処理監視部１４０と、原因推定部１５０の機能および記憶部１６０は、プロセッシングサーキットリにより実現される。
【００５５】
「部」を「工程」または「手順」または「処理」に読み替えてもよい。また、「部」の機能をファームウェアで実現してもよい。
【００５６】
＊＊＊本実施の形態の効果の説明＊＊＊
本実施の形態に係る動作検証装置１００では、セマフォ取得およびセマフォ解放といった並行処理を含んだ制御処理を、演算内容を全く変えずにタスクのコンテキストスイッチが起きない複数の逐次処理になるまで分割する。これにより、本実施の形態に係る動作検証装置１００によれば、等価性検査をマルチタスク構成に適用可能となる。よって、本実施の形態に係る動作検証装置１００によれば、差分および派生開発への移行あるいは運用において、品質確保および作業効率化のキーとなる影響範囲分析の適用範囲をシングルタスク構成からマルチタスク構成のソフトウェアに広げることで、あらゆる制御ソフトウェア開発の生産性向上を実現することができる。
【００５７】
本実施の形態に係る動作検証装置１００によれば、機能的欠陥および並行性欠陥を検出した後に膨大な作業量を要していた原因推定において、その欠陥の原因がどの逐次処理の変更または並行処理の変更にあるか推定することができる。よって、本実施の形態に係る動作検証装置１００によれば、欠陥の原因となるソフトウェアの変更箇所を自動的に推定することができる。したがって、本実施の形態に係る動作検証装置１００によれば、検証およびテストに要する作業量を大幅に圧縮することができる。
【００５８】
実施の形態２．
本実施の形態では、主に、実施の形態１と異なる点について説明する。なお、実施の形態１で説明した構成と同様の構成には、同一の符号を付し、その説明を省略する。
実施の形態１では、一般的な並行性処理と実装環境に固有の並行処理ＡＰＩとの対応が一対一である場合について説明した。実施の形態２では、一般的な並行性処理と実装環境に固有の並行処理ＡＰＩの対応が一対多である場合について説明する。
【００５９】
図１５および図１６は、本実施の形態に係る並行処理対応表１６３ａ，１６３ｂの例を示す図である。
本実施の形態に係る並行処理対応表１６３ａ，１６３ｂは、並行性処理３２１の種別に、並行性処理３２１のパラメータごとの命令が対応付けられている。並行処理対応表１６３ａ，１６３ｂは、一つの並行性処理について、機能的には同じだが使用するときの並行処理パラメータが異なる複数の並行処理ＡＰＩが対応する。図１５の並行処理対応表１６３ａでは、並行性処理のセマフォ取得について、３つの並行処理パラメータ「取得できるまで待機」「取得できるまでポーリングで確認」「取得できるまでタイムアウト付きで待機」のそれぞれに対して実行環境Ａの並行処理ＡＰＩを一つ対応付けている。また、図１６の並行処理対応表１６３ｂでは、図１５と同様に、セマフォ取得について３つの並行処理パラメータのそれぞれに対して実行環境Ｂの並行処理ＡＰＩを一つ対応付けている。
【００６０】
そして、分割部１１０は、並行処理対応表１６３ａ，１６３ｂから並行処理ＡＰＩ６３２の一覧を取得する。分割部１１０は、複数の制御処理のうち、並行処理ＡＰＩ６３２の一覧のうちいずれかの並行処理ＡＰＩ６３２を含む制御処理を、並行処理ＡＰＩ６３２を含む並行性処理３２１と並行処理ＡＰＩ６３２を含まない機能逐次処理３１０とに分割する。具体的には、実施の形態１の図６を用いて説明した分割処理Ｓ１１０において、分割部１１０は、並行性処理が同じで並行処理パラメータだけが異なる並行処理ＡＰＩを使用している制御処理を、同一の並行処理ＡＰＩ使用処理と識別する。具体的には、ステップＳ１１３において、分割部１１０は、並行処理ＡＰＩを含んだ演算集合の中身を、並行処理ＡＰＩ使用処理と、並行処理ＡＰＩ使用処理を含まない部分的な演算集合とに分割する。このとき、分割部１１０は、並行性処理が同じで並行処理パラメータだけが異なる並行処理ＡＰＩを使用している制御処理を、同一の並行処理ＡＰＩ使用処理と識別する。
【００６１】
本実施の形態では、実施の形態１の図１２を用いて説明した原因推定処理Ｓ１５０において、並行処理ＡＰＩ使用処理の差異部分に加えた変更とは、使用する並行処理ＡＰＩ、引数に関する処理、および戻り値に関する処理の一部または全部を変更することとする。
【００６２】
本実施の形態に係る動作検証装置１００によれば、実施の形態１と同様の効果を得ることができる。
【００６３】
実施の形態３．
本実施の形態では、主に、実施の形態１と異なる点について説明する。なお、実施の形態１で説明した構成と同様の構成には、同一の符号を付し、その説明を省略する。
実施の形態１では、並行性処理３２１の差異部分に加えた変更は、使用している並行処理ＡＰＩは変更せずに引数に関する処理および戻り値に関する処理の一部または全部を変更する場合を説明した。実施の形態３では、並行性処理３２１加えた変更が、使用する並行処理ＡＰＩの追加あるいは削除である場合について説明する。
【００６４】
図１７および図１８は、本実施の形態に係る等価性検査結果１２１ａ，１２１ｂの例を示す図である。
図１７は、変更により使用する並行処理ＡＰＩを追加した場合の等価性検査結果１２１ａの例を示している。追加した並行処理ＡＰＩを使用する処理は、変更後分割済実装物１１２にだけ存在する。
また、図１８は、変更により使用している並行処理ＡＰＩを削除した場合の等価性検査結果１２１ｂの例を示している。削除した並行処理ＡＰＩを使用する処理は、変更前分割済実装物１１１にだけ存在する。
【００６５】
そして、実施の形態１で図１２を用いて説明した原因推定処理Ｓ１５０において、原因推定部１５０は、原因調査の対象として特定した変更前分割済実装物１１１のパスと変更後分割済実装物１１２のパス同士を比較する。使用する並行処理ＡＰＩを追加した場合は、原因推定部１５０は、変更後分割済実装物１１２のいずれかのパス上にある制御処理の差異部分を欠陥原因と推定する。また、原因推定部１５０は、使用している並行処理ＡＰＩを削除した場合は変更前分割済実装物１１１のいずれかのパス上にある制御処理の差異部分を欠陥原因と推定する。
【００６６】
本実施の形態に係る動作検証装置１００によれば、実施の形態１と同様の効果を得ることができる。
【００６７】
実施の形態１から３では、分割部１１０と、等価性検査部１２０と、テスト実行部１３０と、並行処理監視部１４０と、原因推定部１５０が各々独立した機能ブロックである。しかし、上述した実施の形態のような構成でなくてもよく、動作検証装置１００の構成は任意である。動作検証装置１００の機能ブロックは、上述した実施の形態で説明した機能を実現することができれば、任意である。これらの機能ブロックを、他のどのような組み合わせ、あるいは任意のブロック構成で、動作検証装置１００を構成しても構わない。
また、動作検証装置１００は、１つの装置でなく、複数の装置から構成されたシステムでもよい。
【００６８】
実施の形態１から３について説明したが、これらの実施の形態のうち、複数の部分を組み合わせて実施しても構わない。あるいは、これらの実施の形態のうち、１つの部分を実施しても構わない。その他、これらの実施の形態を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
なお、上述した実施の形態は、本質的に好ましい例示であって、本発明、その適用物および用途の範囲を制限することを意図するものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【００６９】
３０  欠陥検出部、３２  命令、６１  第１のプログラム、６２  第２のプログラム、６３  複数の制御処理、７１  第１の分割済プログラム、７２  第２の分割済プログラム、１００  動作検証装置、１１０  分割部、１１１  変更前分割済実装物、１１２  変更後分割済実装物、１２０  等価性検査部、１２１，１２１ａ，１２１ｂ  等価性検査結果、１３０  テスト実行部、１３１  機能的欠陥、１４０  並行処理監視部、１４１  並行性欠陥、１５０  原因推定部、１５１  機能的欠陥原因、１５２  並行性欠陥原因、１６０  記憶部、１６１  変更前実装物、１６２  変更後実装物、１６３，１６３ａ，１６３ｂ  並行処理対応表、１６４  変更前機能仕様、１６５  変更後機能仕様、２１１  同等部分、２１２  差異部分、３２０  機能逐次処理、３２１  並行性処理、３１０  通常逐次処理、５１０  欠陥、５１１  検証内容、５２０  欠陥原因、６１０  動作検証方法、６２０  動作検証プログラム、９０９  処理回路、９１０  プロセッサ、９２０  記憶装置、９２１  メモリ、９２２  補助記憶装置、９３０  入力インタフェース、９４０  出力インタフェース、９５０  通信装置、Ｓ１００  動作検証処理、Ｓ１１０  分割処理、Ｓ１２０  等価性検査処理、Ｓ３０  欠陥検出処理、Ｓ１３０  テスト実行処理、Ｓ１４０  並行処理監視処理、Ｓ１５０  原因推定処理。
【図１】
0006571897.tif 000002
【図２】
0006571897.tif 000003
【図３】
0006571897.tif 000004
【図４】
0006571897.tif 000005
【図５】
0006571897.tif 000006
【図６】
0006571897.tif 000007
【図７】
0006571897.tif 000008
【図８】
0006571897.tif 000009
【図９】
0006571897.tif 000010
【図１０】
0006571897.tif 000011
【図１１】
0006571897.tif 000012
【図１２】
0006571897.tif 000013
【図１３】
0006571897.tif 000014
【図１４】
0006571897.tif 000015
【図１５】
0006571897.tif 000016
【図１６】
0006571897.tif 000017
【図１７】
0006571897.tif 000018
【図１８】
0006571897.tif 000019