(57)【要約】      （修正有）【課題】テスト対象が外部環境と接続されている場合においても、テスト対象のテストケースを生成するテストケース生成システムおよびテストケース生成方法を提供する。【解決手段】実機１Ａは、テストケース生成装置４Ａで生成されたテストケースに基づいてテストされる。コントローラ２Ａは、実機１Ａの動作時にログデータを取集してテストケース生成装置４Ａに出力する。テストケース生成装置４Ａは、実機１Ａの動作時にログデータを実機１Ａから取得し、実機１Ａの動作を示すログデータに基づいて実機１Ａのテストケースを生成する。【選択図】図１
2019219980.tif 000002
【特許請求の範囲】
【請求項１】
外的要因によりテスト結果が影響を受ける開いた系であるテスト対象の動作を示すログデータを前記テスト対象から取得し、
前記テスト対象のログデータに基づいて前記テスト対象のテストケースを生成するテストケース生成システム。
【請求項２】
前記テスト対象を動作させるために用いられるシステム構成情報に基づいて前記ログデータを取得するデータ取得部と、
前記データ取得部から取得したログデータに基づいて前記テスト対象のテストケースを生成するテストケース生成部と、
前記生成されたテストケースを出力するテストケース出力部とを備える請求項１に記載のテストケース生成システム。
【請求項３】
前記テストケース生成部は、
前記ログデータで与えられる時系列データを状態遷移データに変換するデータ加工部と、
前記状態遷移データを前記テスト対象で過去に実施済みの過去テストケースと比較するデータ比較部と、
前記状態遷移データに一致しない過去テストケースを未実施テストケースとして特定するテストケース出力準備部とを備える請求項２に記載のテストケース生成システム。
【請求項４】
前記テストケース生成部は、
前記ログデータで与えられる時系列データを状態遷移データに変換するデータ加工部と、
前記状態遷移データを前記テスト対象の想定内の動作を示す想定内テストケースと比較するデータ比較部と、
前記想定内テストケースに一致しない前記状態遷移データを想定外遷移データとして出力するテストケース出力準備部とを備える請求項２に記載のテストケース生成システム。
【請求項５】
前記想定外遷移データに基づいて前記テスト対象の故障を診断する故障診断部と、
前記テスト対象の故障時に前記テスト対象を通常動作からフェールセーフ動作に切り替えるモード切替部とを備える請求項４に記載のテストケース生成システム。
【請求項６】
前記テスト対象である実機に設けられたコントローラと、
前記実機のテストケースを生成するテストケース生成装置とを備え、
前記コントローラと前記テストケース生成装置とは別個に設けられている請求項１に記載のテストケース生成システム。
【請求項７】
前記テスト対象である実機に設けられたコントローラと、
前記実機のテストケースを生成するテストケース生成装置とを備え、
前記テストケース生成装置は前記コントローラに内蔵されている請求項１に記載のテストケース生成システム。
【請求項８】
前記テスト対象である実機に設けられたコントローラと、
前記実機のテストケースを生成するテストケース生成装置とを備え、
前記テストケース生成装置は、前記実機の動作を示すログデータを複数の実機から取得する請求項１に記載のテストケース生成システム。
【請求項９】
プロセッサを備えるテストケース生成方法であって、
前記プロセッサは、
外的要因によりテスト結果が影響を受ける開いた系であるテスト対象の動作情報を前記テスト対象から取得し、
前記テスト対象の動作情報に基づいて前記テスト対象のテストケースを生成するテストケース生成方法。
【請求項１０】
前記プロセッサは、前記テスト対象の動作情報を前記テスト対象のログデータから取得する請求項９に記載のテストケース生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テストケース生成システムおよびテストケース生成方法に関する。
【背景技術】
【０００２】
大規模化するソフトウェアを効率的にテストするため、人手によるテスト設計が行われている。しかし、人手によるテスト設計では、実施漏れのテストケースによる不具合の恐れがある。そこで、特許文献１によれば、テスト設計を自動化する技術が提案されている。
【０００３】
特許文献１に開示された技術では、テスト項目と動作条件、環境条件、判定条件等の内容は、これらの生成規則と経験則を予め管理・記憶しておくことにより、被テスト製品の製品規格から得られるデータが与えられると、上記の規則によって自動的にテスト項目、テスト条件（プライマリテスト仕様）の決定が行われる。そして、ここで生成されたプライマリテスト仕様に対し、過去に不良となった試験項目、動作条件、判定条件とその原因と対策結果の来歴データを用いることによって、最適化処理を施し、より精度が高く効率の良い最適化されたテスト仕様を生成する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−２４０７４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示された技術では、テスト対象として主に半導体装置が想定されている。一般に半導体装置は閉じた系を形成しているため、テスト項目と動作条件、環境条件、判定条件等を生成規則と経験則から自動で生成することが可能となっている。
【０００６】
しかしながら、例えば、車載ネットワークに接続された電子制御装置（ＥＣＵ：Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）のように、外部環境と接続されたテスト対象においては、外部環境を完全に記述することはできない。このため、テスト項目、テスト条件を自動生成するために用いた環境条件の生成規則と経験則が、テストを実際に行う環境と一致した環境条件を前提としていることを保障できない。従って、外的要因により影響を受ける開いた系をテスト対象とする場合、特許文献１に開示された技術を適用できなかった。
【０００７】
本発明は、上記事情に鑑みなされたものであり、その目的は、テスト対象が外部環境と接続されている場合においても、テスト対象のテストケースを生成可能なテストケース生成システムおよびテストケース生成方法を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、第１の観点に係るテストケース生成システムは、外的要因によりテスト結果が影響を受ける開いた系であるテスト対象の動作を示すログデータを前記テスト対象から取得し、前記テスト対象のログデータに基づいて前記テスト対象のテストケースを生成する。
【発明の効果】
【０００９】
本発明によれば、テスト対象が外部環境と接続されている場合においても、テスト対象のテストケースを生成することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、第１実施形態に係るテストケース生成システムの構成を示すブロック図である。
【図２】図２は、図１のコントローラの構成を示すブロック図である。
【図３】図３は、図１のテストケース生成装置の構成を示すブロック図である。
【図４】図４は、図３のテストケース生成部の構成を示すブロック図である。
【図５】図５は、図４の過去テストケース保存部に保存された過去テストケースの内容の一例を示す図である。
【図６】図６は、図４のテストケース出力準備部に保存されたテスト実施情報の一例を示す図である。
【図７】図７は、図１のコントローラおよびテストケース生成装置のハードウェア構成を示すブロック図である。
【図８】図８は、第２実施形態に係るテストケース生成システムに適用されるテストケース生成部の構成を示すブロック図である。
【図９】図９は、図８のテストケース出力準備部に保存されたテスト実施情報および想定外遷移データの一例を示す図である。
【図１０】図１０は、第３実施形態に係るテストケース生成システムの構成を示すブロック図である。
【図１１】図１１は、図１０のコントローラの構成を示すブロック図である。
【図１２】図１２は、図１１のコントローラのハードウェア構成を示すブロック図である。
【図１３】図１３は、第４実施形態に係るテストケース生成システムの構成を示すブロック図である。
【図１４】図１４は、図１３のテストケース生成システムに適用されるテストケース生成装置の構成を示すブロック図である。
【図１５】図１５は、第５実施形態に係るテストケース生成システムに適用されるテストケース生成装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１１】
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また、実施形態の中で説明されている諸要素およびその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１２】
図１は、第１実施形態に係るテストケース生成システムの構成を示すブロック図である。なお、以下の説明では、テスト対象となる実機として車両を例にとる。
図１において、実機１Ａは、コントローラ２Ａ、通信ネットワーク３Ａ、テストケース生成装置４Ａ、センサ５Ａおよびアクチュエータ６Ａを備える。
【００１３】
実機１Ａは、例えば、自動車である。実機１Ａは、実機１Ａの制御機能を内部に有する。コントローラ２Ａは、例えば、ＥＣＵである。コントローラ２Ａは、実機１Ａを制御する。通信ネットワーク３Ａは、コントローラ２Ａに通信環境を提供し、車両制御システムを構成するコントローラ２Ａに対して数値、文字列、記号などのデータを入力または出力する。通信ネットワーク３Ａは、例えば、ＣＡＮ（Ｃｏｎｔｒｏｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＦｌｅｘＲａｙ、ＬＩＮ（Ｌｏｃａｌ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｎｅｔｗｏｒｋ）、Ｅｔｈｅｒｎｅｔ（登録商標）等である。テストケース生成装置４Ａは、実機１Ａのテストケースを生成する。なお、テストケース生成装置４Ａは、実機１Ａの外部に存在してもよい。センサ５Ａは、温度、圧力、速度などの物理量を測定する。アクチュエータ６Ａは、モータやシリンダなどである。センサ５Ａおよびアクチュエータ６Ａは、実機１Ａに対して複数存在してもよい。
【００１４】
実機１Ａは、テストケース生成装置４Ａで生成されたテストケースに基づいてテストされる。ここで、実機１Ａは、外的要因によりテスト結果が影響を受ける開いた系を構成することができる。この時、テストケース生成装置４Ａは、実機１Ａの動作情報を実機１Ａから取得し、実機１Ａの動作情報に基づいて実機１Ａのテストケースを生成する。実機１Ａの動作情報は、実機１Ａの動作を示すログデータから取得することができる。コントローラ２Ａは、実機１Ａの動作時にログデータを取集し、テストケース生成装置４Ａに出力することができる。
【００１５】
ここで、実機１Ａの動作情報は、実機１Ａの動作時の外的要因が反映された情報である。このため、テストケース生成装置４Ａは、実機１Ａの動作情報に基づいて実機１Ａのテストケースを生成することにより、実機１Ａの動作時の外的要因をテストケースに反映させることができる。従って、実機１Ａが外的要因により影響を受ける開いた系であっても、テストケースの生成時において、テストを実際に行う環境と一致した環境条件を保障することができ、実機１Ａのテスト漏れを防止することが可能となる。
【００１６】
図２は、図１のコントローラの構成を示すブロック図である。
図２において、コントローラ２Ａは、制御部２０１、システム構成情報保存部２０２、ログ取得部２０３、ログ出力部２０４、計測部２０１１および制御入力出力部２０１２を備える。計測部２０１１は、通信ネットワーク３Ａおよびセンサ５Ａと接続される。制御入力出力部２０１２は、通信ネットワーク３Ａおよびアクチュエータ５Ａと接続される。なお、計測部２０１１と制御入力出力部２０１２は、制御部２０１に対して複数存在してもよい。
【００１７】
制御部２０１は、コントローラ２Ａに与えられた制御変数の制御を達成するための操作変数の値を計算する。操作変数の値は、例えば、所望の出力を得るためのエンジンの燃料噴射量、所望の回転数を得るためのモータの界磁電流、所望の反応速度を得るための炉内温度である。計測部２０１１は、操作変数の値を計算するために制御変数の値を計測する。制御入力出力部２０１２は、操作変数の値を操作変数に与えるために制御入力として操作量を出力する。
【００１８】
計測部２０１１にて計測された制御変数の値は制御部２０１に渡される。制御部２０１は、計測部２０１１から渡された制御変数の値を基に操作変数の所望の値を計算する。操作変数の所望の値は制御入力出力部２０１２に渡され、制御変数の制御に使用される。
【００１９】
システム構成情報保存部２０２は、システム構成情報を保存する。システム構成情報は、実機１Ａを動作させるために用いられる情報である。システム構成情報は、コントローラ２Ａに固有の情報を含むことができる。システム構成情報は、例えば、制御変数、操作変数、その他必要な変数およびコントローラ２Ａの内部変数の格納場所を表すメモリアドレスなどが挙げられる。ログ取得部２０３は、制御部２０１における制御変数、操作変数またはその他の変数の値をログデータとして取得する。この時、ログ取得部２０３は、システム構成情報保存部２０２に保存されているシステム構成情報を参照することにより、取得すべきログデータを判断することができる。ログ出力部２０４は、ログ取得部２０３が取得したログデータをコントローラ２Ａの外部に出力する。
【００２０】
図３は、図１のテストケース生成装置の構成を示すブロック図である。
図３において、テストケース生成装置４Ａは、データ取得部４０１、テストケース生成部４０２Ａおよびテストケース出力部４０３を備える。
【００２１】
データ取得部４０１は、図２のコントローラ２Ａのログ出力部２０４より出力されたログデータを取得する。テストケース生成部４０２Ａは、データ取得部４０１で取得されたログデータに基づいて実機１Ａのテストケースを生成する。テストケース出力部４０３は、テストケース生成部４０２Ａで生成されたテストケースを出力する。
【００２２】
データ取得部４０１で取得されたログデータは、テストケース生成部４０２Ａに渡される。テストケース生成部４０２Ａは、例えば、ある変数の値の変化とその変化の前後のタイミングにおける制御変数と操作変数の値を組として保存するなどの方法で、テストケースに加工する。テストケース生成部４０２Ａで生成されたテストケースは、テストケース出力部４０３からテストケース生成システム４Ａの外部に出力される。なお、ログ出力部２０４とデータ取得部４０１の間の接続は、有線、無線を問わない。
【００２３】
図４は、図３のテストケース生成部の構成を示すブロック図である。
図４において、テストケース生成部４０２Ａは、データ加工部４０２１、過去テストケース保存部４０２２、データ比較部４０２３およびテストケース出力準備部４０２４を備える。
【００２４】
データ加工部４０２１は、データ取得部４０１で取得したデータを加工する。この時、データ加工部４０２１は、ログデータで与えられる時系列データを状態遷移データに変換することができる。状態遷移データは、実機１Ａの動作時にどの状態からどの状態に遷移したかを示すことができる。状態間の遷移には、遷移の条件を付すことができる。
【００２５】
過去テストケース保存部４０２２は、実機１Ａにて過去に実施済みの過去テストケースを保存する。過去テストケースは、実機１Ａでテストすべき全てのテストケースを含むことができる。実機１Ａでテストすべきテストケースは、実機１Ａの過去のトラブルの事例から判断することができる。データ比較部４０２３は、データ加工部４０２１で加工された加工データを過去テストケース保存部４０２２に保存されている過去テストケースと比較する。テストケース出力準備部４０２４は、テストケースを生成するため、データ比較部４０２３による比較結果を一時的に保存する。
【００２６】
データ取得部４０１からテストケース生成部４０２Ａに渡されたログデータは、データ加工部４０２１にてテストケースの生成に適した形式に加工され、データ比較部４０２３に渡される。データ比較部４０２３は、データ加工部４０２１から渡されたデータと、過去テストケース保存部４０２２内のデータを比較する。そして、データ加工部４０２１から渡されたデータが過去テストケース保存部４０２２に存在すれば、データ加工部４０２１から渡されたデータをテスト実施済みとしてテストケース出力準備部４０２４に保存する。データ加工部４０２１から渡されたデータが過去テストケース保存部４０２２に存在しなければ、データ加工部４０２１から渡されたデータをテスト未実施としてテストケース出力準備部４０２４に保存する。
【００２７】
図５は、図４の過去テストケース保存部に保存された過去テストケースの内容の一例を示す図である。
図５において、過去テストケース保存部４０２２には、過去テストケース４０２２Ａが保存される。過去テストケース４０２２Ａは、テストしなければならないコントローラ２Ａの状態遷移の一覧表である。過去テストケース４０２２Ａのそれぞれに対し、テストケース識別番号と事前状態と期待結果と遷移の条件が与えられる。
【００２８】
この第１実施形態では、コントローラ２Ａの操作変数と制御変数はともに、システムの起動ないし停止を表す状態変数とする。テストケース識別番号は、過去テストケース保存部４０２２内に保存されているそれぞれのテストケースを識別するための番号である。事前状態は、コントローラ２Ａが状態遷移を発生させる前の状態である。期待結果は、コントローラ２Ａが状態遷移を発生させた後の状態である。
【００２９】
例えば、テストケース識別番号１において、状態Ａを停止状態、状態Ｊを起動状態、遷移の条件Ｐを電源スイッチの投入のように規定することができる。一方、データ取得部４０１からテストケース生成部４０２Ａに渡されたログデータは、電源スイッチのオン・オフに応じた電圧値の時系列データである。このため、データ加工部４０２１は、電源スイッチのオン・オフに応じた電圧値の変化がログデータから確認できた場合、そのログデータから、状態Ａを停止状態、状態Ｊを起動状態、遷移の条件Ｐを電源スイッチの投入のように規定した状態遷移データを生成し、データ比較部４０２３に出力する。
【００３０】
この時、データ加工部４０２１は、ログデータを状態遷移データに変換することにより、データ加工部４０２１から出力されたデータのデータ形式と、過去テストケース保存部４０２２に保存されているデータのデータ形式を一致させることができる。このため、データ比較部４０２３は、データ加工部４０２１から出力されたデータと、過去テストケース保存部４０２２に保存されているデータとを比較することにより、過去テストケース保存部４０２２に保存されている過去テストケース４０２２Ａが、テスト対象である実機１Ａで実施されたかどうかを判断することができる。
【００３１】
図６は、図４のテストケース出力準備部に保存されたテスト実施情報の一例を示す図である。
図６において、テストケース出力準備部４０２４には、テスト実施情報４０２４Ａが保存される。テスト実施情報４０２４Ａでは、図５の過去テストケース保存部４０２２に保存されているテストケース識別番号それぞれに対し、実施済みまたは未実施を表すフラグが与えられる。テストケース出力準備部４０２４に保存されているフラグは、実機１Ａのテスト前にすべて未実施として初期化される。
【００３２】
データ比較部４０２３は、データ加工部４０２１から渡されたデータと、過去テストケース保存部４０２２内のデータを比較する。データ比較部４０２３は、データ加工部４０２１から渡されたデータが過去テストケース保存部４０２２に存在すれば、そのテストケース識別番号に対するテストケース出力準備部４０２４内のフラグを実施済みに書き換え、データ加工部４０２１から渡されたデータをテスト実施済みとしてテストケース出力準備部４０２４に保存する。
【００３３】
例えば、データ取得部４０１からテストケース生成部４０２Ａに渡されたログデータから、電源スイッチのオン・オフに応じた電圧値の変化が確認できたものとする。この時、データ加工部４０２１は、電源スイッチのオン・オフに応じた電圧値の変化から、状態Ａを停止状態、状態Ｊを起動状態、遷移の条件Ｐを電源スイッチの投入のように規定した状態遷移データを生成し、データ比較部４０２３に出力する。
【００３４】
データ比較部４０２３は、状態Ａを停止状態、状態Ｊを起動状態、遷移の条件Ｐを電源スイッチの投入のように規定された状態遷移データをデータ加工部４０２１から受け取ると、その状態遷移データが過去テストケース保存部４０２２に保存されているか判断する。そして、データ比較部４０２３は、データ加工部４０２１から受け取った状態遷移データが、過去テストケース４０２２Ａのテストケース識別番号１に該当することを確認すると、図６のテストケース識別番号１のフラグを実施済みに書き換える。
【００３５】
テストケース出力準備部４０２４は、実機１Ａのテスト終了後、テストケース出力準備部４０２４内のデータを走査する。そして、テストケース出力準備部４０２４は、フラグが未実施のままとなっているテストケース識別番号をテストケース出力部４０３に渡す。テストケース出力部４０３は、フラグが未実施のままとなっているテストケース識別番号に関して過去テストケース保存部４０２２を参照し、事前状態と期待結果と遷移の条件の組を未実施のテストケースとして出力する。
【００３６】
これにより、テストケース生成装置４Ａは、実機１Ａの動作状態を示すログデータに基づいて、過去テストケース保存部４０２２に保存されているテストケースのうち実施されていないテストケースを出力することができる。このため、テスト者はテストケースの実施漏れに気づくことが可能となるとともに、それを補完するテストを実行できる。すなわち、テスト中の実機４Ａから動作パターンを収集して未実施のテストケースを発見することができ、テストケースの実施漏れを防止することができる。この時、実機４Ａの動作が外部環境の影響を受ける場合においても、実機４Ａをテストすることができ、外部要因に左右されるテストにも適用することができる。また、テストケースを状態の変化として扱うことができ、通信の開始・終了テストにも使用することができる。
【００３７】
図７は、図１のコントローラおよびテストケース生成装置のハードウェア構成を示すブロック図である。
図７において、コントローラ２Ａには、プロセッサ１１、通信制御デバイス１２、通信インターフェース１３、主記憶デバイス１４、外部記憶デバイス１５および入出力インターフェース１７が設けられている。プロセッサ１１、通信制御デバイス１２、通信インターフェース１３、主記憶デバイス１４、外部記憶デバイス１５および入出力インターフェース１７は、内部バス１６を介して相互に接続されている。主記憶デバイス１４および外部記憶デバイス１５は、プロセッサ１１からアクセス可能である。
【００３８】
また、コントローラ２Ａの外部には、センサ２０およびアクチュエータ２１が設けられている。センサ２０およびアクチュエータ２１は、入出力インターフェース１７を介して内部バス１６に接続されている。
【００３９】
プロセッサ１１は、コントローラ２Ａ全体の動作制御を司るハードウェアである。主記憶デバイス１４は、例えば、ＳＲＡＭまたはＤＲＡＭなどの半導体メモリから構成することができる。主記憶デバイス１４には、プロセッサ１１が実行中のプログラムを格納したり、プロセッサ１１がプログラムを実行するためのワークエリアを設けたりすることができる。
【００４０】
通信制御デバイス１２は、外部との通信を制御する機能を有するハードウェアである。通信制御デバイス１２は、通信インターフェース１３を介してネットワーク１９に接続される。ネットワーク１９は、例えば、ＣＡＮ（Ｃｏｎｔｒｏｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＦｌｅｘＲａｙ、ＬＩＮ（Ｌｏｃａｌ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｎｅｔｗｏｒｋ）、Ｅｔｈｅｒｎｅｔ（登録商標）等の車載ネットワークである。
【００４１】
外部記憶デバイス１５は、大容量の記憶容量を有する記憶デバイスであり、例えば、ハードディスク装置、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）またはＮＡＮＤフラッシュメモリである。外部記憶デバイス１５は、各種プログラムの実行ファイルを保持することができる。外部記憶デバイス１５には、システム構成情報１５Ａおよびログ取得プログラム１５Ｂを格納することができる。システム構成情報１５Ａは、コントローラ２Ａに固有の情報である。コントローラ２Ａは、センサ２０からの入力に基づいてアクチュエータ２１を制御する。この時、プロセッサ１１は、例えば、センサ２０から入力される信号およびアクチュエータ２１に出力される信号をログデータ１４Ａとして主記憶デバイス１４に格納する。
【００４２】
また、プロセッサ１１は、システム構成情報１５Ａおよびログ取得プログラム１５Ｂを主記憶デバイス１４に読み出し、システム構成情報１５Ａを参照しつつログ取得プログラム１５Ｂを実行することにより、テストケースの生成に用いられるログデータ１４Ａを主記憶デバイス１４から読み出し、テストケース生成装置４Ａに出力する。
【００４３】
テストケース生成装置４Ａには、プロセッサ３１、主記憶デバイス３４、外部記憶デバイス３５および入出力インターフェース３７が設けられている。プロセッサ３１、主記憶デバイス３４、外部記憶デバイス３５および入出力インターフェース３７は、内部バス３６を介して相互に接続されている。主記憶デバイス３４および外部記憶デバイス３５は、プロセッサ３１からアクセス可能である。
【００４４】
外部記憶デバイス３５には、過去テストケース３５Ａおよびテストケース生成プログラム３５Ｂを格納することができる。過去テストケース３５Ａは、過去に実施済みのテストケースである。プロセッサ３１は、過去テストケース３５Ａおよびテストケース生成プログラム３５Ｂを主記憶デバイス３４に読み出し、過去テストケース３５Ａを参照しつつテストケース生成プログラム３５Ｂを実行する。この時、テストケース生成装置４Ａは、コントローラ２Ａから取得したログデータ１４Ａをログ加工データ３４Ａに加工する。この時、ログ加工データ３４Ａのデータ形式は、過去テストケース３５Ａのデータ形式と等しくすることができる。そして、テストケース生成装置４Ａは、ログ加工データ３４Ａを過去テストケース３５Ａと比較し、ログ加工データ３４Ａと等しい過去テストケース３５Ａが存在すれば、そのログ加工データ３４Ａをテスト実施済みとして外部記憶デバイス３５に保存する。
【００４５】
図８は、第２実施形態に係るテストケース生成システムに適用されるテストケース生成部の構成を示すブロック図である。
図８のテストケース生成装置は、図４のテストケース生成部４０２Ａの代わりにテストケース生成部４０２Ｂを備える。テストケース生成部４０２Ｂは、図４の構成に想定内テストケース保存部４０２５が追加されている。想定内テストケース保存部４０２５は、想定内テストケースを保存する。想定内テストケースは、実機１Ａの動作として想定される全てのテストケースを含むことができる。想定内テストケースのデータ形式は、過去テストケースのデータ形式と等しくすることができる。
【００４６】
データ比較部４０２３は、データ加工部４０２１から渡されたデータを、過去テストケース保存部４０２２内のデータと比較するだけでなく、想定内テストケース保存部４０２５内のデータと比較する。そして、データ加工部４０２１から渡されたデータが過去テストケース保存部４０２２に存在しなければ、データ加工部４０２１から渡されたデータをテスト未実施としてテストケース出力準備部４０２４に保存する。また、データ加工部４０２１から渡されたデータが想定内テストケース保存部４０２５に存在しなければ、データ加工部４０２１から渡されたデータを想定外遷移データとしてテストケース出力準備部４０２４に保存する。想定外遷移データは、実機１Ａが想定外の動作を実行したことを示すことができる。
【００４７】
図９は、図８のテストケース出力準備部に保存されたテスト実施情報および想定外遷移データの一例を示す図である。
図９において、テストケース出力準備部４０２４には、テスト実施情報４０２４Ａに加え、想定外遷移データ４０２４Ｂが保存される。想定外遷移データ４０２４Ｂは、加工済みログデータファイルＦ１、Ｆ２を備える。加工済みログデータファイルＦ１、Ｆ２は、データ加工部４０２１から渡されたデータのうち、想定内テストケース保存部４０２５に存在しないデータである。
【００４８】
これにより、設計時に設計者が想定し得ない実機１Ａの状態遷移を発見して開発に反映させ、設計の想定を拡張および修正することが可能となり、ユーザの使用中に実機１Ａが想定外の動作を起こすことを防止することができる。
【００４９】
図１０は、第３実施形態に係るテストケース生成システムの構成を示すブロック図である。
図１０において、実機１Ｂは、コントローラ２Ｂ、通信ネットワーク３Ｂ、テストケース生成装置４Ｂ、センサ５Ｂおよびアクチュエータ６Ｂを備える。コントローラ２Ｂは、テストケース生成装置４Ｂを備える。通信ネットワーク３Ｂ、センサ５Ｂおよびアクチュエータ６Ｂは、図１の通信ネットワーク３Ａ、センサ５Ａおよびアクチュエータ６Ａと同様に構成することができる。
【００５０】
テストケース生成装置４Ｂは、実機１Ｂの動作情報を実機１Ｂから取得し、実機１Ｂの動作情報に基づいて実機１Ｂのテストケースを生成する。実機１Ｂの動作情報は、実機１Ｂの動作を示すログデータから取得することができる。この時、コントローラ２Ｂは、実機１Ｂの動作時にログデータを取集し、テストケース生成装置４Ｂに出力することができる。
【００５１】
ここで、テストケース生成装置４Ｂをコントローラ２Ｂに内蔵することにより、コントローラ２Ｂからテストケース生成装置４Ｂにログデータを渡すための構成を簡易化することができる。コントローラ２Ｂからテストケース生成装置４Ｂにログデータを渡すための構成以外は、コントローラ２Ｂおよびテストケース生成装置４Ｂは、図１のコントローラ２Ａおよびテストケース生成装置４Ａと同様に構成することができる。
【００５２】
図１１は、図１０のコントローラの構成を示すブロック図である。
図１１において、コントローラ２Ｂは、制御部２０１、システム構成情報保存部２０２、ログ取得部２０３、計測部２０１１、制御入力出力部２０１２およびテストケース生成装置４Ｂを備える。テストケース生成装置４Ｂは、テストケース生成部４０２Ａおよびテストケース出力部４０３を備える。
【００５３】
ログ取得部２０３は、テストケース生成部４０２Ａに直接接続されている。この時、図２のログ出力部２０４と図３のデータ取得部４０１は省略することができ、図１の構成に比べて簡易化することができる。また、テストケースの生成に用いられるデータをコントローラ２Ｂ内部で処理し、通信速度を向上させることができ、より多くのログ情報を用いたテストケースを扱うことができる。
【００５４】
図１２は、図１１のコントローラのハードウェア構成を示すブロック図である。
図１２において、コントローラ２Ｂには、プロセッサ４１、通信制御デバイス４２、通信インターフェース４３、主記憶デバイス４４、外部記憶デバイス４５および入出力インターフェース４７が設けられている。プロセッサ４１、通信制御デバイス４２、通信インターフェース４３、主記憶デバイス４４、外部記憶デバイス４５および入出力インターフェース４７は、内部バス４６を介して相互に接続されている。主記憶デバイス４４および外部記憶デバイス４５は、プロセッサ４１からアクセス可能である。
【００５５】
また、コントローラ２Ｂの外部には、センサ５０およびアクチュエータ５１が設けられている。センサ５０およびアクチュエータ５１は、入出力インターフェース４７を介して内部バス４６に接続されている。
【００５６】
外部記憶デバイス４５には、システム構成情報４５Ａ、ログ取得プログラム４５Ｂ、過去テストケース４５Ｃおよびテストケース生成プログラム４５Ｄを格納することができる。コントローラ２Ｂは、センサ５０からの入力に基づいてアクチュエータ５１を制御する。この時、プロセッサ４１は、例えば、センサ５０から入力される信号およびアクチュエータ５１に出力される信号をログデータ４４Ａとして主記憶デバイス４４に格納する。
【００５７】
また、プロセッサ４１は、システム構成情報４５Ａ、ログ取得プログラム４５Ｂ、過去テストケース４５Ｃおよびテストケース生成プログラム４５Ｄを主記憶デバイス４４に読み出し、システム構成情報４５Ａおよび過去テストケース４５Ｃを参照しつつ、ログ取得プログラム４５Ｂおよびテストケース生成プログラム４５Ｄを実行する。この時、プロセッサ４１は、テストケースの生成に用いられるログデータ４４Ａをログ加工データ４４Ｂに加工する。そして、ログ加工データ４４Ｂを過去テストケース４５Ｃと比較し、ログ加工データ４４Ｂと等しい過去テストケース４５Ｃが存在すれば、そのログ加工データ４４Ｂをテスト実施済みとして外部記憶デバイス４５に保存する。
【００５８】
図１３は、第４実施形態に係るテストケース生成システムの構成を示すブロック図である。
図１３において、実機１Ｃは、コントローラ２Ｃ、通信ネットワーク３Ｃ、センサ５Ｃおよびアクチュエータ６Ｃを備える。実機１Ｄは、コントローラ２Ｄ、通信ネットワーク３Ｄ、テストケース生成装置４Ｄ、センサ５Ｄおよびアクチュエータ６Ｄを備える。コントローラ２Ｃ、２Ｄ、通信ネットワーク３Ｃ、３Ｄ、センサ５Ｃ、５Ｄおよびアクチュエータ６Ｃ、６Ｄは、図１のコントローラ２Ａ、通信ネットワーク３Ａ、センサ５Ａおよびアクチュエータ６Ａと同様に構成することができる。テストケース生成装置４Ｄは、各コントローラ２Ｃ、２Ｄのログ出力部２０４からログデータを取得することができる。それ以外については、テストケース生成装置４Ｄは、図１のテストケース生成装置４Ａと同様に構成することができる。
【００５９】
実機１Ｃ、１Ｄは、同一の製品とすることができる。この時、テストケース生成装置４Ｄは、各コントローラ２Ｃ、２Ｄのログ出力部２０４からのログデータに基づいて、複数の実機１Ｃ、１Ｄに共通のテストケースを生成することができる。
【００６０】
これにより、実機１Ｃにテストケース生成装置を設けることなく、実機１Ｄだけでなく実機１Ｃにも適用可能なテストケースを生成することができ、テストケース生成システムの構成を簡易化することができる。また、複数の実機１Ｃ、１Ｄを用いてテストの実行を並行化でき、テストの効率を高めることができる。なお、図１３の構成では、テストケース生成装置４Ｄを実機１Ｄ内に設けた構成について示したが、テストケース生成装置４Ｄを実機１Ｄ外に設けるようにしてもよい。
【００６１】
図１４は、図１３のテストケース生成システムに適用されるテストケース生成装置の構成を示すブロック図である。
図１４において、テストケース生成装置４Ｄは、図３の構成に加えデータ競合防止用バッファ９０４１を備える。データ競合防止用バッファ９０４１は、複数の実機１Ｃ、１Ｄより送られるログデータが競合しないようにログデータを一時的に保持する。この時、データ取得部４０１は、複数の実機１Ｃ、１Ｄより送られるログデータをデータ競合防止用バッファ９０４１に格納する。そして、テストケース生成部４０２Ａは、テストケースの生成に用いるログデータをデータ取得部４０１からではなく、データ競合防止用バッファ９０４１から取得する。これにより、複数の実機１Ｃ、１Ｄから取得したログデータがテストケース生成部４０２Ａに送られるタイミングを調整することができ、複数の実機１Ｃ、１Ｄより送られるログデータの競合を防止することができる。
【００６２】
図１５は、第５実施形態に係るテストケース生成システムに適用されるテストケース生成装置の構成を示すブロック図である。
図１５において、テストケース生成装置４Ｅは、ログ取得部４０１、テストケース生成部４０２Ｂ、テストケース出力部４０３、故障診断部４０４およびモード切替部４０５を備える。
【００６３】
故障診断部４０４は、テストケース生成部４０２Ｂの出力に基づいて実機の故障診断を行う。モード切替部４０５は、故障診断部４０４による故障診断結果に基づいて実機の動作モードを切り替える。
【００６４】
ここで、故障診断部４０４は、故障診断に当たっては、図９のテストケース出力準備部４０２４に想定外遷移データ４０２４Ｂが存在するかどうかを確認する。テストケース出力準備部４０２４に想定外遷移データ４０２４Ｂが存在する場合、想定外遷移データ４０２４Ｂから想定外の動作を検出することができる。そして、モード切替部４０５は、想定外の動作について、通常動作からフェールセーフ動作に切り替えることができる。これにより、実機が想定外の動作を行った場合においても、実機の安全性を確保することができる。
【００６５】
上述した実施形態では、テスト対象である実機として車両を例にとったが、テスト対象は車両に限定することなく、例えば、航空機、船舶、重機、ロボット、化学プラント、送配電システム、その他分散制御システムなどでもよい。
【符号の説明】
【００６６】
１Ａ  実機、２Ａ  コントローラ、３Ａ  通信ネットワーク、４Ａ  テストケース生成装置、５Ａ  センサ、６Ａ  アクチュエータ、２０１  制御部、２０２  システム構成情報保存部、２０３  ログ取得部、２０４  ログ出力部、４０１  ログ取得部、４０２  テストケース生成部、４０３  テストケース出力部、２０１１  計測部、２０１２  制御入力出力部、４０２１  データ加工部、４０２２  過去テストケース保存部、４０２３  データ比較部、４０２４  テストケース出力準備部
【図１】
2019219980.tif 000003
【図２】
2019219980.tif 000004
【図３】
2019219980.tif 000005
【図４】
2019219980.tif 000006
【図５】
2019219980.tif 000007
【図６】
2019219980.tif 000008
【図７】
2019219980.tif 000009
【図８】
2019219980.tif 000010
【図９】
2019219980.tif 000011
【図１０】
2019219980.tif 000012
【図１１】
2019219980.tif 000013
【図１２】
2019219980.tif 000014
【図１３】
2019219980.tif 000015
【図１４】
2019219980.tif 000016
【図１５】
2019219980.tif 000017