説明

検証システム及び検証装置

【課題】装置において実行されるプログラムの動作を検証する検証システム及び検証装置において、汎用性を広げるとともに検証をより簡単かつ正確に行うことができるようにする。
【解決手段】試験者は、UMLモデリングツール50(以下、ツール50)を介して、検証方法を表すテスト仕様を例えばシーケンス図の形式で視覚的に認識可能に作成することができる。ツール50を介して試験者により作成されたシーケンス図T20を表す情報は、ツール50におけるスクリプトの生成機能により、CANバスモニタ52が認識及び実行可能なテストスクリプトT22に変換される。CANバスモニタ52は、検証対象であるECU54の動作を監視し、そのECU54の実際の動作が、テストスクリプトT22が表すテスト仕様に合致するか否かを判断し、判断結果を表すテストレポートT24を外部に出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、装置において実行されるプログラムの動作を検証する検証システム及び検証装置に関する。
【背景技術】
【0002】
従来、装置において実行されるプログラムの動作を検証するシステムとして、例えば特許文献1に記載されたような検証システムが知られている。
特許文献1の検証システムは、検証対象のプログラム中に測定点を表す記述を埋め込み、ある測定点から他の測定点に至るまでの経過時間が設計値に合致しているか否か(許容範囲内か否か)を判別することで、そのプログラムの動作が正常か否かを検証するものである。
【特許文献1】特開2002−108656号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、特許文献1の検証システムでは、検証対象のプログラム中に測定点を表す記述を埋め込むようになっているため、例えばその記述の読み出し等に要する処理時間(オーバーヘッド)が生じる場合がある。このため、場合によっては、検証結果(ある測定点から他の測定点に至るまでの経過時間)においてそのオーバーヘッドを考慮する必要があり、検証が複雑なものとなっていた。また、検証結果が不正確なものとなるおそれがあった。
【0004】
また、プログラムの種類によっては、測定点を表す記述をそのまま使えない場合があり、汎用性の点で問題があった。
さらに言えば、装置のうち、特にネットワークに接続される通信装置においては、その通信装置においてやりとりされる信号(メッセージ)の内容が設計値(仕様)に合致しているか否かが問題となる。
【0005】
この点、上記特許文献1の検証システムでは、通信装置に搭載されるプログラム上のある測定点から他の測定点に至るまでの経過時間(言い換えると、通信装置におけるある処理に要する時間)が設計値に合致しているか否か(許容範囲内か否か)を検証することはできるものの、通信装置においてやりとりされる信号(メッセージ)の内容が設計値(仕様)に合致しているか否かを検証する点については考慮されていない。このため、特許文献1の検証システムは、ネットワーク上の通信装置に実装されるプログラムの検証には不向きであり、汎用性の改善が望まれていた。
【0006】
本発明は、こうした問題に鑑みなされたもので、装置において実行されるプログラムの動作を検証する検証システム及び検証装置において、汎用性を広げるとともに検証をより簡単かつ正確に行うことができるようにすることを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するためになされた請求項1に記載の発明は、検証対象のプログラム、を実装した装置(以下、検証対象装置と言う)の挙動を監視する監視装置を備え、その監視装置の監視結果に基づきプログラムの動作を検証する検証システムであって、モデル生成手段と、スクリプト変換手段と、スクリプト解釈手段と、合否判定手段と、判定結果出力手段と、を備えている。
【0008】
モデル生成手段は、検証対象装置が振る舞うべき挙動を表すモデル(以下、挙動モデルと言う)を使用者の入力に基づき生成する。言い換えれば、使用者は、検証対象装置が振る舞うべき挙動を、モデル形式で簡単に生成することができる。挙動モデルは、検証対象装置の検証(つまり、検証対象装置において実行されるプログラムの動作の検証)に用いられるものであり、挙動モデル通りに検証対象装置が動作すれば合格と判断され、挙動モデル通りに検証対象装置が動作しなければ不合格と判断されるように構成することができる。また、挙動モデルの形式としては、動作の流れを表すフロー図の形式、オブジェクト間のメッセージの流れを時系列的に表現したシーケンス図の形式など、種々の形式を適用することができる。使用者は、検証方法に応じて、挙動モデルの形式を適宜選択すれば良い。
【0009】
そして、検証対象装置が振る舞うべき挙動がモデルで表されることで、使用者や第三者にとって理解が容易となる。例えば、使用者や第三者にとって、プログラム列を解析して理解するような場合と比較すれば、モデルを理解するほうが簡単である。このため、検証の際の工数を削減できるようになる。
【0010】
次に、スクリプト変換手段は、モデル生成手段により生成された挙動モデルをスクリプトに変換する。スクリプトとは、機械語への変換作業を自動化或いは省略してコンピュータ上において簡単に実行できるようにした簡易プログラムである。
【0011】
そして、スクリプト変換手段により変換されて生成されたスクリプトは、スクリプト解釈手段が解釈する。
つまり、使用者にとって認識が容易な挙動モデルが、本検証システムにとって認識可能(本検証システムにおけるコンピュータにとって認識可能)なスクリプトに変換されて解釈されるようになっており、使用者がわざわざスクリプトを生成する必要がない。このため、使用者の手間を省くことができる。また、使用者自らがスクリプトを記述する場合と比較すれば、スクリプトの記述に誤りが生じる可能性を低減することができる。
【0012】
そして、合否判定手段が、監視装置の監視結果に基づく検証対象装置の実際の挙動がスクリプト解釈手段の解釈結果が表す挙動に合致するか否かに基づき、プログラムの動作の適否を判定し、判定結果出力手段が、合否判定手段の判定結果を表す情報を出力するようになっている。
【0013】
これによれば、使用者は、判定結果出力手段により出力される判定結果を参照することで、検証対象装置が振る舞うべき挙動通りにその検証対象装置が動作しているか否かについて、つまり、検証対象装置において実行されるプログラムの動作の適否について、容易に把握できるようになる。例えば、使用者自らが検証対象装置の動作ログを解析することでその検証対象装置の挙動の適否(プログラムの動作の適否)を検証する方法もあるが、そのような手間を省くことができる。
【0014】
このように、請求項1の検証システムによれば、装置において実行されるプログラムの動作を簡単に検証することができる。また、検証対象のプログラムを変更する(例えば検証対象のプログラムに検証処理のためのプログラムを埋め込む)必要がないため、検証を正確に行うことができるようになる。さらに、検証対象のプログラムの種類を気にしなくても良くなる。つまり、検証対象のプログラムの種類を問わず、検証が実行されるようになる。
【0015】
次に、請求項2の検証システムは、請求項1の検証システムにおいて、検証対象装置は、ネットワークに接続されてそのネットワーク上の通信機器との間で信号の送受信を行う装置であり、挙動モデルは、少なくとも検証対象装置において通信機器との間で送受信されるべき信号(以下、送受信信号と言う)の情報を含み、送受信信号の内容を表す論理名をその送受信信号のそれぞれについて記憶するデータベースを備え、モデル生成手段は、データベースを参照し、送受信信号の論理名を用いて挙動モデルを生成することを特徴としている。
【0016】
このような請求項2に記載の検証システムによれば、挙動モデルにおいて、検証対象装置において送受信されるべき送受信信号が、その送受信信号の内容を表す論理名で表されるようになる。このため、使用者や第三者にとって送受信信号の内容を把握し易くなり、ひいては挙動モデルの内容が分かりやすいものとなる。つまり、挙動モデルの可読性が向上する。したがって、使用者や第三者が挙動モデルの内容を確認したり検証したりするための工数(時間)を削減し得るようになり、ひいては検証のための工数を削減し得る。
【0017】
次に、請求項3の検証システムは、請求項2の検証システムにおいて、スクリプト変換手段は、データベースを参照し、送受信信号の論理名を用いてスクリプトを生成することを特徴としている。
【0018】
このような請求項3の検証システムによれば、スクリプトにおいて、検証対象装置において送受信されるべき送受信信号を表す記述(プログラム)が、その送受信信号の内容を表す論理名で表されるようになる。このため、使用者や第三者にとってスクリプトの内容が分かりやすいものとなる。つまり、スクリプトの可読性が向上する。したがって、使用者や第三者がスクリプトの内容を確認したり検証したりするための工数(時間)を削減し得るようになる。
【0019】
次に、請求項4の検証システムは、請求項1〜3の検証システムにおいて、モデル生成手段は、検証対象装置の動作環境についての条件(以下、環境条件と言う)を表すモデル(以下、条件モデルと言う)を使用者の入力に基づき生成する条件モデル生成手段を備え、スクリプト変換手段は、条件モデル生成手段により生成された条件モデルをスクリプトに変換する条件スクリプト変換手段を備えている。そして、監視装置は、条件スクリプト変換手段により変換されて生成されたスクリプトに基づき環境条件を再現する条件再現手段を備え、その条件再現手段によりその環境条件が再現された際の検証対象装置の挙動を監視することを特徴としている。
【0020】
具体的に、動作環境としては、装置のCPUの負荷や、ネットワークのトラフィック量(通信量)等を挙げることができる。本請求項4の検証システムでは、そのような動作環境について所望の条件を設定し、その設定した条件下で装置が振る舞うべき挙動を検証できるようになる。このため、種々の動作環境下において、装置が振る舞うべき挙動を検証することができる。言い換えれば、種々の条件下においてプログラムの動作を検証できるようになる。このため、プログラムの動作をより精密に検証し得るようになる。
【0021】
次に、請求項5の発明は、検証対象のプログラム、を実装した装置(以下、検証対象装置と言う)と接続され、その検証対象装置におけるプログラムの動作を検証する検証装置であって、検証対象装置の挙動を監視する監視手段と、検証対象装置が振る舞うべき挙動を表すモデル(以下、挙動モデルと言う)を使用者の入力に基づき生成するモデル生成手段と、モデル生成手段により生成された挙動モデルをスクリプトに変換するスクリプト変換手段と、スクリプト変換手段により変換されて生成されたスクリプトを解釈するスクリプト解釈手段と、監視手段の監視結果に基づく検証対象装置の実際の挙動が、スクリプト解釈手段の解釈結果が表す挙動に合致するか否かに基づき、プログラムの動作の適否を判定する合否判定手段と、合否判定手段の判定結果を表す情報を出力する判定結果出力手段と、を備えていることを特徴としている。
【0022】
このような検証装置によれば、請求項1について述べた効果と同じ効果を得ることができる。
【発明を実施するための最良の形態】
【0023】
以下に、本発明の実施形態を図面に基づき説明する。
[第1実施形態]
まず、第1実施形態について説明する。
【0024】
図1は、第1実施形態の検証システム1の概略構成図である。
第1実施形態の検証システム1は、テスト対象通信装置14に実装されるプログラム(ソフトウエア)の動作を検証するためのものである。テスト対象通信装置14は、図示しないネットワークに接続され、そのネットワーク上の機器と通信可能に構成されている。
【0025】
検証システム1は、具体的に、テスト対象通信装置14と通信可能に接続されてそのテスト対象通信装置14の動作(及びネットワークの状態)を監視するパーソナルコンピュータ(以下、PCと記載する)12と、そのPC12と通信可能に接続されるPC10とを備えている。
【0026】
PC10は、CPUや主記憶装置等(何れも図示省略)が筐体に内蔵されたパーソナルコンピュータ本体10aと、キーボード、マウス等から構成される入力装置10bと、ディスプレイ10cと、を中心に構成される。尚、パーソナルコンピュータ本体10a内部の構成については周知であるため、ここでは詳細な説明を省略する。また、他のPCについても詳細な説明は省略することとする。
【0027】
PC12は、具体的に、テスト対象通信装置14において送受信される信号を監視したり、テスト対象通信装置14において実行される各種処理の状態について監視したりする。
【0028】
次に、PC10は、テスト対象通信装置14が振る舞うべき挙動を表す図面(例えばシーケンス図)を、使用者が入力装置10bを介して描画するための設計図面描画ツール40と、その設計図面描画ツール40を介して入力された図面から、PC12が認識可能なスクリプトを生成するテストスクリプト生成ツール42とを備えている。この設計図面描画ツール40及びテストスクリプト生成ツール42は、具体的には、PC10上で動作するアプリケーションである。PC10において、テストスクリプト生成ツール42により生成されたスクリプト(以下、テストスクリプトとも記載する)T2は、PC12に出力される。
【0029】
PC12は、PC10においてテストスクリプト生成ツール42により生成されたテストスクリプトT2を解釈(認識)するテストスクリプト解釈ツール44を備えている。このテストスクリプト解釈ツール44は、具体的にはPC12上で動作するアプリケーションである。
【0030】
本検証システム1の概略について、図2を用いてさらに説明する。
図2は、本検証システム1における検証の流れ(検証方法)を表す概念図である。尚、図1と同じ構成を表すブロックについては、図1と同じ符号を付している。
【0031】
まず、検証を進める主体である試験者は、設計図面描画ツール40を用い、テスト対象通信装置14が振る舞うべき挙動(以下、テスト仕様とも記載する)を入力する。
本実施形態では、テスト仕様として、例えば、テスト対象通信装置14において実行されるべき通信手順(より具体的に、テスト対象通信装置14において送受信されるべき信号の内容、及び送受信のタイミング)が入力される。例えば、信号の内容及び信号のやりとりを視覚的に記述したシーケンス図の形式でテスト仕様が記述される。尚、この点については図4において後述する。
【0032】
設計図面描画ツール40を用いて使用者により入力されたテスト仕様を表す図面(図2における設計図面T10)は、設計図面描画ツール40により外部に出力される。具体的には、設計図面T10はディスプレイ10cに表示される。
【0033】
設計図面描画ツール40によりディスプレイ10cに表示された設計図面T10は、第三者(確認者)によりその内容(妥当性等)がチェックされる。
設計図面T10は、確認者によりチェックされた後、テストスクリプト生成ツール42に入力される。具体的に、試験者或いは確認者が、PC10の入力装置10bを介して所定の指令を入力することにより、設計図面T10がテストスクリプト生成ツール42に入力される。つまり、設計図面T10を表すデータが、設計図面描画ツール40からテストスクリプト生成ツール42に渡される。
【0034】
テストスクリプト生成ツール42は、入力された設計図面T10を表すスクリプト(以下、テストスクリプトと記載する)T2を生成し、外部に出力する。具体的に、テストスクリプトT2をディスプレイ10cに表示させる。設計図面T10をコンピュータ(PC10)が認識可能な形態に置き換えたものがテストスクリプトT2である。テストスクリプトT2は、より具体的に、機械語への変換作業を自動化或いは省略してコンピュータ上において簡単に実行できるようにした簡易プログラムである。
【0035】
テストスクリプト生成ツール42により生成されたテストスクリプトT2は、テストスクリプト解釈ツール44に入力される。
テストスクリプト解釈ツール44は、通信監視装置46(図1におけるPC12に相当)と連携するプログラム(アプリケーション)である。言い換えると、通信監視装置46上で動作するアプリケーションである。
【0036】
通信監視装置46は、テスト対象通信装置14及びそのテスト対象通信装置14が接続されるネットワークの状態を監視する。より具体的に、テスト対象通信装置14において送受信される信号(メッセージ)や、ネットワーク上のトラフィック(通信量)を監視する。そして、通信監視装置46は、テスト対象通信装置14における通信ログT16を外部に出力する。具体的に、通信ログT16は、その通信監視装置46が備えるディスプレイに表示される。
【0037】
一方、テストスクリプト解釈ツール44は、通信監視装置46の監視結果及びテストスクリプトT2に基づき、テスト対象通信装置14の実際の動作、言い換えると、テスト対象通信装置14に実装されるプログラムの動作が、テストスクリプトT2が表すテスト仕様に合致しているか否かを判断する。例えば、テスト対象通信装置14において送受信される信号(メッセージ)の内容や送受信の時間(タイミングや期間)が、テスト仕様に合致しているか否かを判断する。
【0038】
そして、テストスクリプト解釈ツール44は、テスト対象通信装置14の実際の動作がテストスクリプトT2が表すテスト仕様に合致しているか否かを表すテストレポートT14を、外部に出力する。具体的に、テストレポートT14は、テストスクリプト解釈ツール44が実装される装置(ここでは、通信監視装置46)が備えるディスプレイに表示される。
【0039】
ここで、本検証システム1を適用したより具体的な実施形態について、図3を用いて説明する。図3は、本検証システム1を車両のネットワークに適用した例を表す図面である。
【0040】
図3では、具体的に、車内LANとしてのCAN(Controller Area Network)に接続される電子制御装置(以下、ECUと記載する)54を検証対象としている(言い換えると、ECU54に実装されるプログラムを検証対象としている)。
【0041】
次に、UML(Unified Modeling Language)モデリングツール50は、図1或いは図2の設計図面描画ツール40に相当するものであり、試験者は、UMLモデリングツール50を介して、テスト仕様を表す図面を入力する。より具体的に、図示しないコンピュータにUMLモデリングツール50がインストールされ、試験者は、そのコンピュータにおける入力装置を用いてテスト仕様を表す図面を入力できる。
【0042】
UMLは、オブジェクト指向モデリング概念とその表記を標準化したものであり、システムのモデリングを行うためのツールである。UMLを用いたモデリングにおいて生成される図の種類としては様々なものがあり、例えば、システムに対してどのようなアクター(システムの外部にあってシステムに作用するもの)が存在するのかを記述したりそれぞれのアクターがどのような作用をしそれに対してシステムがどう応答をするのかを記述したユースケース図、システムの静的な構造を記述したクラス図、システムにおけるオブジェクト間での信号(メッセージ)のやりとりを記述したシーケンス図、などがある。
【0043】
本例では、シーケンス図の形式により、ECU54において送受信されるべき信号(メッセージ)の内容や送受信の時間(タイミングや期間)がテスト仕様として表されるようになっている。UMLモデリングツール50を介して生成されたシーケンス図T20は、外部に視認可能に出力される。具体的に、UMLモデリングツール50が実装される図示しないコンピュータにおけるディスプレイに表示される。そして、シーケンス図T20の内容(妥当性等)が、確認者によりチェックされる。
【0044】
ここで、UMLモデリングツール50を介して試験者により入力されたテスト仕様(シーケンス図)に基づきそのテスト仕様(シーケンス図)をスクリプトに変換する機能は、UMLモデリングツール50に追加される拡張機能(アドオン)として提供される。つまり、UMLモデリングツール50により生成されたテスト仕様(シーケンス図)は、そのUMLモデリングツール50が実装される図示しないコンピュータ上において、スクリプトに変換される。
【0045】
UMLモデリングツール50の拡張機能により生成されたスクリプト(以下、テストスクリプトとも記載する)T22は、外部に視認可能に出力される。具体的に、UMLモデリングツール50が実装される図示しないコンピュータにおけるディスプレイに表示される。
【0046】
次に、CANバスモニタ52は、ECU54及びCANの状態を監視するものであり、図2における通信監視装置46、或いは図1におけるPC12に相当する。テストスクリプトT22は、そのUMLモデリングツール50からCANバスモニタ52に入力される。
【0047】
CANバスモニタ52には、スクリプトインタプリタが内蔵(インストール)されている。スクリプトインタプリタは、所定のプログラム言語で記述されたソースコードを、コンピュータが実行できる形式(オブジェクトコード)に変換しながら実行するソフトウエアである。つまり、スクリプトを解釈して実行するツールである。
【0048】
そして、CANバスモニタ52は、ECU54やCANの状態の監視結果、及びテストスクリプトT22の内容に基づき、ECU54の実際の動作(ECU54に実装されるプログラムの動作)が、テストスクリプトT22が表すテスト仕様に合致するか否かを判断する。そして、CANバスモニタ52は、判断結果を表すテストレポートT24を、外部に視認可能に出力する。例えば、所定のディスプレイ上に表示させる。尚、CANバスモニタ52は、ECU54における通信ログT26を外部に出力するようになっている。
【0049】
次に、本実施形態の作用について、図4,5を用いて説明する。
本検証システム1において、ECU54の動作(ECU54に実装されるプログラムの動作)を検証する場合、まず、その検証方法を表すテスト仕様が定められる。本例では、図4(a)に示すように、「CANバスモニタ52がECU54にメッセージAを送信してから10ms以内に、そのCANバスモニタ52がECU54からメッセージBを受信した場合、テスト合格」、となるようなテスト仕様が定められたものとする。
【0050】
試験者は、図4(a)に示すテスト仕様を表す図面(例えばシーケンス図)を、UMLモデリングツール50を介して作成(入力)する。
図4(b)に、同図(a)のテスト仕様を表現したシーケンス図T20の具体例を示す。図4(b)のシーケンス図T20では、CANバスモニタ52からECU54に送信されるメッセージAが、CANバスモニタ52からECU54に向かう矢印及び記号「A」で表され、また、ECU54からCANバスモニタ52に送信されるメッセージBが、ECU54からCANバスモニタ52に向かう矢印及び記号「B」で表されている。また、CANバスモニタ52において、メッセージAが送信されてからメッセージBが受信されるまでの間隔を10msec未満とする旨の条件が記述されている。
【0051】
次に、図4(b)のシーケンス図T20は、UMLモデリングツール50のアドオン(テストスクリプトを生成する拡張機能)により、テストスクリプトT22に変換される。図4(c)に、テストスクリプトT22の具体例を示す。
【0052】
図4(c)のテストスクリプトT22のプログラム列のうち、1,2行目は、サンプルテストである旨が記述(宣言)されたものである。
3〜8行目は、「Aを出力してから10msec以内にメッセージBを受信した場合に合格と判定する」旨、及び「Aを出力してから10msec以内にメッセージBを受信できなかった場合に不合格と判定する」旨、が記述されたものである。
【0053】
以上、図4に示すように、ECU54の動作(ECU54に実装されるプログラムの動作)の検証に際しては、例えばそのECU54において実現されるべき通信(通信手順)が予め定められるようになっている。そして、ECU54における実際の動作(通信手順)が、その実現されるべき通信手順に合致するか否かが検証される。
【0054】
ここで、図5に示すが、本実施形態では、例えばECU54が接続されるCAN上に所望の通信負荷を与え、その通信負荷の下でのECU54の動作を検証することができるようになっている。
【0055】
ここでは、例えばCAN上の通信負荷を30%に設定する場合を想定する。
試験者は、テスト仕様を入力する場合と同様に、UMLモデリングツール50を介して、「通信負荷30%」という条件を表すシーケンス図T40を生成する。本例では、シーケンス図T40において、矢印にて信号がやりとりされる旨が表されるとともに、「通信負荷30%」である旨のコメントが付記される。
【0056】
そして、UMLモデリングツール50のアドオン(テストスクリプトを生成する拡張機能)により、シーケンス図T40を表すテストスクリプトT42が生成される。より具体的に、テストスクリプトT42は、図4のテストスクリプトT22において、通信負荷を30%にする旨の記述(論理)が反映(追加)されたものである。尚、テストスクリプトT42の具体的な記載については省略する。
【0057】
ここで、図5に示すフローチャートは、テストスクリプトT42に基づき、CANバスモニタ52において実行される処理を表すフローチャートである。CANバスモニタ52は、テストスクリプトT42を解釈し、例えば「通信負荷30%」という条件を表す部分の記述に基づき、図5のフローチャートに示す処理を実行する。この処理は、CANバスモニタ52において、テストスクリプトT42の内容が解釈された時点で開始される。
【0058】
この処理では、まずS110において、テストスクリプトT42に含まれるテスト仕様(テストスクリプトT42のうち、テストスクリプトT22に相当する部分)の内容を解析し、そのテスト仕様において用いられていない信号の種類を算出する。そして、使用されていない信号の中から何れかを選択する。例えば、信号の種類として信号A〜Eがあり、そのうち、信号A,Bがテスト仕様において用いられており、残りの信号C〜Eが用いられていないとする。この場合、信号C〜Eの中から何れかを選択する。
【0059】
次に、S120に進み、選択した信号をネットワーク(CAN)に送出する。例えば、信号C〜Eのうち信号CをS110において選択したとすると、S120では、その信号CをCANに送出する。
【0060】
S120の後はS130に進み、予め定められた期間の間待機する。
次に、S140に進み、CAN上の通信負荷が30%未満か否かを判定し、30%未満であると判定すると(S140:YES)、S150に移行する。
【0061】
S150では、待機期間(S130における待機期間)を所定間隔だけ短くする。そして、再びS120に戻る。つまり、S120に戻って信号Cを送出した後、S130に進み、前述のS150で所定間隔だけ短く設定された期間の間待機する。
【0062】
そして、S140でCAN上の通信負荷が30%未満でない、つまり30%以上であると判定すると(S140:YES)、そのままS120に戻る。
このようにして、通信負荷が30%以上になるまで信号Cの送出間隔が徐々に狭められ、通信負荷が30%に達すると、その際の送出間隔での信号Cの送出が続けられることとなる。尚、S130の待機期間は、初期設定では、通信負荷が30%未満となるように十分に大きな値となっている。
【0063】
CANバスモニタ52は、図5のフローチャートに示すような処理を実行して通信負荷が30%となるような環境を実現した後、図3,4にて前述したようにECU54の動作を検証する。
【0064】
つまり、CANバスモニタ52は、ECU54やCANの状態の監視結果、及びテストスクリプトT42の内容に基づき、ECU54の実際の動作(ECU54に実装されるプログラムの動作)が、テストスクリプトT42が表すテスト仕様に合致するか否かを判断するとともに、判断結果を表すテストレポートT24を、外部に視認可能に出力する。
【0065】
以上説明したように、本第1実施形態によれば、試験者は、検証対象(例えばECU54)の動作を検証するための検証方法を表すテスト仕様を、例えばシーケンス図の形式で作成することができる。このため、試験者は、テスト仕様を簡単に作成することができる。また、テスト仕様の内容が、試験者或いは第三者にとって視覚的に分かりやすいものとなるため、テスト仕様の内容(妥当性等)の確認作業等の時間を削減し得るようになる。
【0066】
また、検証対象(例えばECU54)において送受信される信号の種類の適否や送受信タイミングも検証することができ便利である。
また、テスト仕様に基づき試験者により作成されたシーケンス図が、コンピュータにおいて認識可能なスクリプトに変換され、そのスクリプトがコンピュータ上で実行されることで、検証が進められるようになっているため、試験者がわざわざスクリプトを新たに生成する必要がない。したがって、検証に要する工数を大幅に削減し得るようになる。
【0067】
また、検証対象(ECU54)が接続されるネットワーク(CAN)上の例えば通信負荷といったような条件もテスト仕様に含めることができ、所望の条件下で検証が実行されるようにできるため、検証対象の検証をより精密に行うことができる。
【0068】
また、検証対象(ECU54)に実装されるプログラムを書き換えたり、そのプログラムに検証のための処理を埋め込んだりする必要がないため、精密な検証を行うことができる。例えば、検証対象(ECU54)に実装されるプログラムの検証に際し、そのプログラムに検証のための処理を埋め込むと、その検証のための処理自体の処理時間が必要となったり新たな負荷が生じたりするため、検証対象のプログラムの動作に影響が出るおそれもあるが、本第1実施形態の検証システム1によれば、そのような問題を回避することができる。
【0069】
尚、本第1実施形態において、設計図面描画ツール40、UMLモデリングツール50がモデル生成手段及び条件モデル生成手段に相当し、シーケンス図T20が挙動モデルに相当し、テストスクリプト生成ツール42及びUMLモデリングツール50のアドオン(テストスクリプトを生成する拡張機能)がスクリプト変換手段及び条件スクリプト変換手段に相当し、テストスクリプト解釈ツール44及びCANバスモニタ52がスクリプト解釈手段、合否判定手段、判定結果出力手段、条件再現手段、監視手段に相当し、特に、図5のフローチャートに示す処理が条件再現手段に相当している。
[第2実施形態]
次に、第2実施形態の検証システム1について、第1実施形態の検証システム1と異なる点を中心に説明する。
【0070】
図6は、第2実施形態の検証システム1の概念図である。
第2実施形態の検証システム1は、第1実施形態の検証システム1と比較して、XML(Extensibe Markup Language)ファイルを扱う点が異なっている。尚、XMLは、文書の意味や構造、データの意味や構造を記述するためのマークアップ言語の1つである。XMLを用いて書かれた文書はテキストファイルとなる。つまり、XMLファイルはテキストファイルである。
【0071】
第1実施形態と異なる点をより具体的に説明する。
第1に、XMLファイルを扱うCANバスモニタ64が用いられる点が異なっている。CANバスモニタ64は、XMLパーサ(XML文書をアプリケーションが利用しやすい形式に変換するソフトウエア)を備えている。
【0072】
第2に、設計図面描画ツール40として、試験者により入力(生成)された図面(テスト仕様を表す例えばシーケンス図)をXMLに変換する機能を有するUMLモデリングツール60が用いられる点が異なっている。
【0073】
第3に、テストスクリプト生成ツール42として、UMLモデリングツール60により生成されたXMLファイルをCANバスモニタ64の仕様に合致したXMLファイルに変換するXML変換プログラム62が用いられる点が異なっている。
【0074】
尚、UMLモデリングツール60及びXML変換プログラム62は図1におけるPC10に実装され、CANバスモニタ64は図1におけるPC12に相当し、ECU54は図1におけるテスト対象通信装置14に相当する。
【0075】
図6において、試験者は、UMLモデリングツール60を介して、テスト仕様を入力する。より具体的に、テスト仕様を表すシーケンス図を作成する。
UMLモデリングツール60を介して試験者により生成されたシーケンス図T30は、外部に視認可能に出力される。
【0076】
また、UMLモデリングツール60は、試験者により入力されたテスト仕様(シーケンス図T30)をXMLファイルT32に変換して出力する。具体的に、XMLファイルT32がXML変換プログラム62に入力される(渡される)。
【0077】
XML変換プログラム62は、UMLモデリングツール60から受け取ったXMLファイルT32を、さらに、CANバスモニタ64の仕様に合致したXMLファイルT34に変換する。
【0078】
XML変換プログラム62により生成されたXMLファイルT34は、CANバスモニタ64に入力される。
CANバスモニタ64は、ECU54やCANの状態の監視結果、及びXMLファイルT34の内容に基づき、ECU54の実際の動作(ECU54に実装されるプログラムの動作)が、XMLファイルT34が表すテスト仕様に合致するか否かを判断する。そして、CANバスモニタ64は、判断結果を表すテストレポートT36を、外部に視認可能に出力する。また、CANバスモニタ64は、ECU54における通信ログT38を外部に出力するようになっている。
【0079】
このような第2実施形態によっても、第1実施形態と同様の効果を得ることができる。特に、XMLファイルを扱うようになっているため、試験者は、テキストエディタを用いてそのXMLファイルの中身を読むことができ、また、テキストエディタを用いてXMLファイルを編集することもできる。このため、場合によっては、試験者にとって検証作業が進めやすくなる。
[第3実施形態]
次に、第3実施形態の検証システム1について、第1実施形態の検証システム1と異なる点を中心に説明する。
【0080】
図7は、第3実施形態の検証システム1の概念図である。尚、第3実施形態では、テストスクリプト生成機能72はUMLモデリングツール70が有する機能(UMLモデリングツール70の拡張機能)であるが、便宜上、別ブロックで記載している。また、テスト機能74は監視ソフトウエア76が有する機能であるが、便宜上別ブロックで記載している。
【0081】
UMLモデリングツール70及びテストスクリプト生成機能72は図1におけるPC10に実装され、テスト機能74及び監視ソフトウエア76は図1におけるPC12に実装され、ECU54は図1におけるテスト対象通信装置14に相当する。
【0082】
第3実施形態の検証システム1は、第1実施形態の検証システム1と比較して、CANデータベース(以下、DBとも記載する)80を備えている点が異なっている。CANDB80は、CAN上でやりとりされる信号のそれぞれについて、その信号の物理値を、論理名に対応付けたデータベースである。尚、論理名は、信号の内容・性質等を端的に表すように付されている。
【0083】
そして、UMLモデリングツール70は、試験者の入力に基づくシーケンス図T50の描画において、例えば信号を表す物理値が試験者により入力されると、CANDB80を参照し、その物理値で入力された信号を論理名で表すようになっている。つまり、シーケンス図T50上においては、信号は、その信号の内容・性質等を表す論理名で表されるようになっている。
【0084】
UMLモデリングツール70により生成されたシーケンス図T50を表す情報はテストスクリプト生成機能72に渡され、テストスクリプト生成機能72は、そのシーケンス図T50を表す情報を、監視ソフトウエア76が有するテスト機能74にて認識可能なテストスクリプトT52に変換する。テストスクリプト生成機能72は、そのテストスクリプトT52の生成において、CANDB80を参照し、信号を論理名で記述するようになっている。
【0085】
テストスクリプトT52は、監視ソフトウエア76のテスト機能74に渡される。テスト機能74は、監視ソフトウエア76によるECU54、CAN上の監視結果、及びテストスクリプトT52の内容に基づき、ECU54の実際の動作(ECU54に実装されるプログラムの動作)が、テストスクリプトT52が表すテスト仕様に合致するか否かを判断し、判断結果を表すテストレポートT54を出力する。また、監視ソフトウエア76は、ECU54における通信ログT56を出力する。
【0086】
このように、本第3実施形態においては、テスト仕様を表すシーケンス図T50、及びシーケンス図T50を変換したテストスクリプトT52において、信号が論理名で記述されるようになっている。このため、試験者或いは第三者(確認者)にとって可読性が向上する。したがって、試験者或いは第三者(確認者)は、シーケンス図T50及びテストスクリプトT52の内容を把握し易くなり、ひいては、その内容の確認、チェック等に要する時間を削減し得る。
【0087】
ところで、上記第1〜第3実施形態の検証システム1では、以下の変形例1,2のように構成しても良い。
〈変形例1〉
まず、変形例1について図8を用いて説明する。
【0088】
図8の変形例1では、PC20が、例えば第1実施形態に示すような検証システム1の機能を備えている。言い換えると、PC20は、第1実施形態のPC10,12の両方の機能を備えている。
【0089】
具体的に、PC20は、テスト対象通信装置14と接続され、そのテスト対象通信装置14の動作を監視する。また、PC20は、設計図面描画ツール40、テストスクリプト生成ツール42、テストスクリプト解釈ツール44を備えている。
【0090】
このような構成の検証システム1では、試験者により、PC20上でテスト仕様が作成され(言い換えると、テスト仕様を表すシーケンス図が作成され)、その作成されたテスト仕様(シーケンス図)は、PC20上で、そのPC20が認識可能なテストスクリプトに変換される。PC20は、テスト対象通信装置14の実際の動作が、そのテストスクリプトが表すテスト仕様に合致するか否かを判断する。
【0091】
このように、第1実施形態で説明した検証システム1の構成を、1台のコンピュータで実現することもできる。これによれば、コンピュータを複数台用いる場合と比較して、コストや設置スペースを節約することができる。
〈変形例2〉
次に、変形例2について図9を用いて説明する。
【0092】
図9の変形例2の検証システム1は、設計図面描画ツール40を備えたPC30と、テストスクリプト生成ツール42を備えたPC32と、テストスクリプト解釈ツール44を備えたPC34と、テスト対象通信装置14の動作を監視する通信監視装置36とを備えている。つまり、各機能毎に、専用のコンピュータが設けられている。
【0093】
このような本変形例2では、試験者は、PC30を用いて、テスト仕様を表す図面(例えばシーケンス図)を描画する。PC30において描画されたシーケンス図T6を表す情報は、PC30からPC32に出力される。
【0094】
PC32は、PC30から入力されたシーケンス図T6を表す情報をコンピュータが認識可能なテストスクリプトT4に変換する。PC32にて変換されたテストスクリプトT4は、PC32からPC34に出力される。
【0095】
PC34は、PC32から入力されたテストスクリプトT4を解釈する。
通信監視装置36は、テスト対象通信装置14及びテスト対象通信装置14が接続されるネットワークの状態を監視し、その監視結果を、PC34に出力する。
【0096】
そして、PC34は、テストスクリプトT4の解釈結果、及び通信監視装置36から入力された監視結果に基づき、テスト対象通信装置14の実際の動作が、テストスクリプトT4が表すテスト仕様に合致するか否かを判断する。
【0097】
このような本変形例2では、各機能毎に、専用のコンピュータが設けられているため、処理負荷が各コンピュータに分散される。よって、処理に要する時間を短縮することができる。
【0098】
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の技術範囲内において種々の形態をとることができる。
例えば、上記実施形態において、設計図面描画ツール40を介して出力される設計図面や、テストスクリプト生成ツール42を介して出力されるテストスクリプトは、印刷出力されるようにしても良い。また、テストレポートや通信ログも印刷出力されるようにしても良い。
【0099】
また、上記実施形態では、テスト仕様がシーケンス図の形式で表されるようになっているが、テスト仕様を表す際のモデルの形式はどのようなものでも良い。
【図面の簡単な説明】
【0100】
【図1】第1実施形態の検証システム1のハードウエア構成を表す概略図である。
【図2】検証システム1における検証の流れ(検証方法)を表す概念図である。
【図3】検証システム1を車両のネットワークに適用した例を表す図面である。
【図4】検証システム1の作用を表す図面である。
【図5】検証システム1の作用を表し、特に、通信負荷の設定について説明した図面である。
【図6】第2実施形態の検証システム1を表す概念図である。
【図7】第3実施形態の検証システム1を表す概念図である。
【図8】変形例1のハードウエア構成を表す図面である。
【図9】変形例2のハードウエア構成を表す図面である。
【符号の説明】
【0101】
1…検証システム、10a…パーソナルコンピュータ本体、10b…入力装置、10c…ディスプレイ、14…テスト対象通信装置、36…通信監視装置、40…設計図面描画ツール、42…テストスクリプト生成ツール、44…テストスクリプト解釈ツール、46…通信監視装置、50…UMLモデリングツール、50…モデリングツール、52…CANバスモニタ、60…UMLモデリングツール、62…XML変換プログラム、64…CANバスモニタ、70…UMLモデリングツール、72…テストスクリプト生成機能、74…テスト機能、76…監視ソフトウエア。

【特許請求の範囲】
【請求項1】
検証対象のプログラム、を実装した装置(以下、検証対象装置と言う)の挙動を監視する監視装置を備え、その監視装置の監視結果に基づき前記プログラムの動作を検証する検証システムであって、
前記検証対象装置が振る舞うべき挙動を表すモデル(以下、挙動モデルと言う)を使用者の入力に基づき生成するモデル生成手段と、
前記モデル生成手段により生成された前記挙動モデルをスクリプトに変換するスクリプト変換手段と、
前記スクリプト変換手段により変換されて生成されたスクリプトを解釈するスクリプト解釈手段と、
前記監視装置の監視結果に基づく前記検証対象装置の実際の挙動が、前記スクリプト解釈手段の解釈結果が表す挙動に合致するか否かに基づき、前記プログラムの動作の適否を判定する合否判定手段と、
前記合否判定手段の判定結果を表す情報を出力する判定結果出力手段と、
を備えていることを特徴とする検証システム。
【請求項2】
請求項1に記載の検証システムにおいて、
前記検証対象装置は、ネットワークに接続されてそのネットワーク上の通信機器との間で信号の送受信を行う装置であり、
前記挙動モデルは、少なくとも前記検証対象装置において前記通信機器との間で送受信されるべき信号(以下、送受信信号と言う)の情報を含み、
前記送受信信号の内容を表す論理名をその送受信信号のそれぞれについて記憶するデータベースを備え、
前記モデル生成手段は、前記データベースを参照し、前記送受信信号の論理名を用いて前記挙動モデルを生成することを特徴とする検証システム。
【請求項3】
請求項2に記載の検証システムにおいて、
前記スクリプト変換手段は、前記データベースを参照し、前記送受信信号の論理名を用いてスクリプトを生成することを特徴とする検証システム。
【請求項4】
請求項1ないし請求項3の何れか1項に記載の検証システムにおいて、
前記モデル生成手段は、前記検証対象装置の動作環境についての条件(以下、環境条件と言う)を表すモデル(以下、条件モデルと言う)を使用者の入力に基づき生成する条件モデル生成手段を備え、
前記スクリプト変換手段は、前記条件モデル生成手段により生成された前記条件モデルをスクリプトに変換する条件スクリプト変換手段を備え、
前記監視装置は、前記条件スクリプト変換手段により変換されて生成されたスクリプトに基づき前記環境条件を再現する条件再現手段を備え、その条件再現手段によりその環境条件が再現された際の前記検証対象装置の挙動を監視することを特徴とする検証システム。
【請求項5】
検証対象のプログラム、を実装した装置(以下、検証対象装置と言う)と接続され、その検証対象装置における前記プログラムの動作を検証する検証装置であって、
前記検証対象装置の挙動を監視する監視手段と、
前記検証対象装置が振る舞うべき挙動を表すモデル(以下、挙動モデルと言う)を使用者の入力に基づき生成するモデル生成手段と、
前記モデル生成手段により生成された前記挙動モデルをスクリプトに変換するスクリプト変換手段と、
前記スクリプト変換手段により変換されて生成されたスクリプトを解釈するスクリプト解釈手段と、
前記監視手段の監視結果に基づく前記検証対象装置の実際の挙動が、前記スクリプト解釈手段の解釈結果が表す挙動に合致するか否かに基づき、プログラムの動作の適否を判定する合否判定手段と、
前記合否判定手段の判定結果を表す情報を出力する判定結果出力手段と、
を備えていることを特徴とする検証装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2010−15240(P2010−15240A)
【公開日】平成22年1月21日(2010.1.21)
【国際特許分類】
【出願番号】特願2008−172423(P2008−172423)
【出願日】平成20年7月1日(2008.7.1)
【出願人】(000004260)株式会社デンソー (27,639)
【Fターム(参考)】