(57)【要約】【課題】評価対象における機能の違いによるエラーをそれ以外のエラーと区別して検出することができる評価装置を提供する。【解決手段】本発明の評価装置は、評価対象における所定の入力に対する出力の期待値と実際値とを比較してエラー箇所を検出する。その際に、評価対象のバグと考えられるエラー箇所（２０１）と、評価対象の機能の違いにより発生する時間的に繰り返すパターンエラー箇所（例えば２００、２０２）とを、例えば識別可能なように表示する。これにより例えば、機能の違いによるエラーを調べる時間が節約できる。【選択図】図１０
2014010601.tif 000002
【特許請求の範囲】
【請求項１】
所定の入力に対する評価対象の時系列の出力データを取得する取得手段と、
その取得手段が取得した時系列の出力データを、前記入力に対応した評価対象の出力の期待値データと比較して、出力データと期待値データとが異なるエラー部分を検出する検出手段と、
その検出手段が検出したエラー部分における、時系列で繰り返されるエラーのパターンを抽出する抽出手段と、
前記検出手段が検出したエラー部分から、前記抽出手段が抽出した繰り返されるパターンエラーを取り除いたエラーの情報を前記評価対象の評価結果として出力する出力手段と、
を備えたことを特徴とする評価装置。
【請求項２】
前記出力手段は、前記抽出手段が抽出した繰り返されるパターンエラーと、前記検出手段が検出した全てのエラーのうち前記パターンエラー以外のエラーと、を識別可能に出力する第１出力手段を備えた請求項１に記載の評価装置。
【請求項３】
前記抽出手段は、パターンマッチングの手法により時系列で繰り返されるエラーのパターンを抽出するパターンマッチング手段を備えた請求項１又は２に記載の評価装置。
【請求項４】
前記抽出手段が抽出した繰り返されるパターンエラーを出力して、そのパターンエラーをエラーから取り除くか否かを選択する使用者からの入力を受け付ける選択入力手段を備え、
その選択入力手段により取り除くと選択されたパターンエラーを前記出力手段は取り除いて出力する請求項１ないし３のいずれか１項に記載の評価装置。
【請求項５】
前記抽出手段は、時間に関する遅れあるいは進みのエラーパターンが繰り返すエラーパターンを抽出する第１抽出手段を備えた請求項１ないし４のいずれか１項に記載の評価装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、評価装置に関する。
【背景技術】
【０００２】
車載ＥＣＵの検査において、ベンチ操作の信号とＥＣＵの出力を時系列に沿って記録したログデータを用いて検査工程を自動化する手法がある。この手法は、プログラム変更の影響で他の機能が影響を受けていないかを検査する回帰テストや、異なるＥＣＵに対して同じ検査をそれぞれ行うテストなどに使用されている。
【０００３】
これらのテストでは、過去のログデータのベンチ操作信号を入力とし、その入力に対するＥＣＵの出力をログデータのＥＣＵ出力と比較する。その比較結果がテストの評価結果となり、結果に差異が現れた部分はエラーとみなされる。例えば下記特許文献１には、検証および評価に係る工数を削減することが可能な評価装置が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−２２３３４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ログデータ取得時と回帰テスト時で検査対象のＥＣＵが異なる場合、機能の違い（例えば新たな機能を追加する、ある機能を省く、ある機能を変更する）等が出力に影響を与えることで同じテストでも出力応答が異なる。このような場合、上記の方法では次のような問題がある。一般に、機能の違いによるエラーは大量に発生する。評価結果を見る時には作業者がその全てのエラーに対して機能の違い等を考慮して妥当な出力であるか否かをチェックする必要がある。現状ではそのチェック作業に大きな工数がかかっている。
【０００６】
発明者は、機能の違いによるエラーは時間的に繰り返す場合が多いとの知見を得ている。この性質を有効に利用すれば、機能の違いによるエラーをそれ以外のエラーから分離して検出することが可能となると考えられる。それにより例えば、機能の違いによるエラーに関わる時間を削減して、評価対象のバグを調べるために時間を有効に用いることができる。上記引用文献１を含め従来文献では、このような評価装置は考えられていない。
【０００７】
そこで本発明が解決しようとする課題は、上記に鑑み、評価対象における機能の違いによるエラーをそれ以外のエラーと区別して検出することができる評価装置を提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を達成するために、本発明に係る評価装置は、所定の入力に対する評価対象の時系列の出力データを取得する取得手段と、その取得手段が取得した時系列の出力データを、前記入力に対応した評価対象の出力の期待値データと比較して、出力データと期待値データとが異なるエラー部分を検出する検出手段と、その検出手段が検出したエラー部分における、時系列で繰り返されるエラーのパターンを抽出する抽出手段と、前記検出手段が検出したエラー部分から、その抽出手段が抽出した繰り返されるパターンエラーを取り除いたエラーの情報を前記評価対象の評価結果として出力する出力手段と、を備えたことを特徴とする。これにより、機能の違いによるエラーは時間的に繰り返す特徴を有することを効果的に利用して、機能の違いによるエラーをそれ以外のエラーと区別して検出する評価装置が実現できる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態であるＥＣＵ自動評価システムの構成例を示す図。
【図２】実施例１における処理手順の例を示すフローチャート。
【図３】遅れパターンエラーの例を示す図。
【図４】進みパターンエラーの例を示す図。
【図５】歪みパターンエラーの例を示す図。
【図６】反転パターンエラーの例を示す図。
【図７】累積パターンエラーの例を示す図。
【図８】オフセットパターンエラーの例を示す図。
【図９】等倍パターンエラーの例を示す図。
【図１０】評価結果出力の第１の例を示す図。
【図１１】評価結果出力の第２の例を示す図。
【図１２】実施例２における処理手順の例を示すフローチャート。
【図１３】選択肢表示の例を示す図。
【図１４】モデルパターンの記憶の例を示す図。
【図１５】実施例３における処理手順の例を示すフローチャート。
【図１６】実施例４における処理手順の例を示すフローチャート。
【図１７】評価結果出力の第３の例を示す図。
【図１８】評価結果出力の第４の例を示す図。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態を図面を参照しつつ説明する。図１は本発明の実施例１における車載ＥＣＵの評価システムの装置構成の概略図である。図１のとおり、車載ＥＣＵの評価システムは、評価対象であるＥＣＵ２に対して評価装置１を接続した構成を有する。
【００１１】
ＥＣＵ２は、例えば車両に搭載されるＥＣＵ（電子制御ユニット）であり、ＣＰＵ２０、メモリ２１を備える。ＣＰＵ２０は、ＥＣＵ２による車両制御における演算や指令などの各種情報処理を実行する。メモリ２１は、ＣＰＵ２０の作業領域である一時記憶部のＲＡＭや、ＣＰＵ２０の情報処理に関係する各種データやプログラムを記憶するＲＯＭ（不揮発性記憶部）を有する。特にメモリ２１には組み込みソフトウェア２２が記憶されている。組み込みソフトウェア２２は、ＥＣＵ２による車両制御に関するプログラムやデータである。
【００１２】
評価装置１は、ＥＣＵ２（あるいは特に、組み込みソフトウェア２２）が正常に動作するか否かを、主に自動的に評価（検査）するための装置である。評価装置１は、評価作業のための特別な機器でもよく、あるいは一般的なパーソナルコンピュータに本発明に関するプログラムを搭載したものでもよい。
【００１３】
以下で説明する評価装置１を用いた評価作業の一実施形態は例えば、新たな機能を組み込んだ（現バージョンの）ＥＣＵ２（あるいはＥＣＵ２の組み込みソフトウェア）に対する評価作業とすればよい。その際、現バージョンのＥＣＵ（組み込みソフトウェア）の評価作業に先立って、新たな機能を組み込む前の（前バージョンの）ＥＣＵ（組み込みソフトウェア）に対する評価が過去に行われている。そして前バージョンのＥＣＵ（組み込みソフトウェア）に対する評価結果を利用して現バージョンのＥＣＵ２（組み込みソフトウェア）の評価を行う。
【００１４】
この実施例では、前バージョンのＥＣＵの評価の際に用いられた入力（ベンチ操作データ）、およびその入力に対する望ましい出力（ＥＣＵが正常な場合の出力、以下で期待値と呼称）を予め取得し、記憶しておく。そして、その記憶されている入力を、現バージョンのＥＣＵ２に入力する。それにより得られたＥＣＵ２の出力を、記憶されている出力（期待値）と比較して、差異の部分はエラーと判断する。
【００１５】
現バージョンのＥＣＵにおいて機能を変更した（新たな機能を組み込んだ、ある機能は省いた、ある機能を変更した等）ことによって、場合によってはエラーが大量に発生するが、機能を変更したことを原因とするエラーは、本来エラーとはみなされるべきではなく、むしろ期待値の方が誤っているとみなされるべきである。発明者の知見によれば、機能の変更に起因するエラーは同じパターンで時間的に繰り返す性質がある。本発明の検査装置１は、この性質に着目して、機能の変更に起因するエラーの検出、表示、削除などの処理を実行する。
【００１６】
具体的な評価装置１の構成例は図１のとおりであり、評価装置１はＣＰＵ１０、メモリ１１、入力部１２、出力部１３を備える。ＣＰＵ１０は自動評価を行う場合に自動評価に関する情報処理全般を実行する。メモリ１１は例えば自動評価の際に用いられるプログラムやデータが記憶される。入力部１２は作業者（ユーザ）からの入力を受け付ける部位であり、例えば操作ボタンや、キーボードやマウスなど、任意の形態の入力部でよい。
【００１７】
出力部１３は、ユーザ（作業者）へ評価結果などを出力する部位であり、例えば液晶ディスプレイやプリンタなど、任意の形態の出力部でよい。さらに入力部１２、出力部１３には、他の機器からの入力、他の機器への出力を行う部分も含ませてよい。なお図１のシステム構成は本発明における最小限の構成と言ってよく、評価対象の評価に関する構成、例えば作業者がベンチマークテストの操作入力をマニュアルで入力する操作部などを適宜付加してもよい。その構成の場合、評価装置１は例えば、操作部からの入力、評価対象からの出力の時系列データ（ログ）を取得するログデータ取得機能などを備える（そしてそのなかから期待値データを抽出して本発明に用いる）としてよい。
【００１８】
メモリ１１には、例えば入力データ１１０（ベンチ操作データ）、期待値データ１１１、自動評価プログラム１１２が記憶されている。入力データ１１０は、前バージョンのＥＣＵに対する評価で用いた時系列の入力データである。期待値データ１１１は、前バージョンのＥＣＵが正常な場合に、入力データ１１０が入力されたときの時系列の出力データである。自動評価プログラム１１２は、本発明における自動評価を実行するプログラムであり、その処理手順は例えば後述の図２で示されている。
【００１９】
図３から図９には、評価装置１によって機能の違いによって発生した時間的に繰り返すエラー（パターンエラー）の例が示されている。なおＥＣＵ２の入出力データは、一般にはアナログデータもデジタルデータも含む。以下のパターンエラーの例においては、図５、図８、図９はアナログ、それ以外はデジタルで示しているが、これらはそれぞれ一例に過ぎず、図３から図９のパターンエラーはどれも、アナログデータに対してもデジタルデータに対しても発生し得る。
【００２０】
図３の例は、波形が時間的に遅れるパターンを繰り返す（以下、遅れパターンエラー）の例である。図３に示すとおり、実際値の波形のうち２つの立下り箇所（負のエッジの箇所、つまりデジタル量がＨ（１）からＬ（０）へ遷移する箇所）で、期間Ａ１、Ａ２の時間遅れを繰り返している。この例は立下り箇所での遅れパターンの例だが、本発明は立上り箇所（正のエッジの箇所、つまりデジタル量がＬ（０）からＨ（１）へ遷移する箇所）での遅れも扱う対象に含む。
【００２１】
図４の例は、時間的に波形が進むパターンを繰り返す（以下、進みパターンエラー）の例である。図４の場合、実際値の波形のうち２つの立上り箇所で、期間Ｂ１、Ｂ２の時間進みを繰り返している。この例は立上り箇所での進みパターンの例だが、本発明は立下り箇所での進みも扱う対象に含む。
【００２２】
図５の例は、波形が同じパターンで歪む現象を繰り返す（以下、歪みパターンエラー）例である。図５の場合、期待値が三角波であるのに対して、実際値は三角波の頂点付近が曲線状に歪むパターンが繰り返されている。本発明で扱われる歪みパターンエラーは図５の例には限定されず、類似したエラー形状の波形が繰り返すエラーであればよい。
【００２３】
図６の例は、波形が反転するパターンを繰り返す（以下、反転パターンエラー）例である。ここで反転とは、デジタルにおけるＬ（０）とＨ（１）とが入れ替わることを指す。図６の場合、期待値と実際値で、Ｈ（１）とＬ（０）が正反対となるエラーが繰り返されている。
【００２４】
図７の例は、遅れが繰り返されるエラーにおいて、時間の進行につれて遅れ時間が累積するパターン（以下、累積パターンエラー）の例である。図７の場合、期待値と比較して、実際値の立上り、立下り箇所が順に期間Ｃ１，Ｃ２，Ｃ３，Ｃ４，Ｃ５，Ｃ６だけ遅れるパターンが発生している。ここで累積パターンエラーとは、例えばＣ１，Ｃ２，Ｃ３，Ｃ４，Ｃ５，Ｃ６の順で遅れ幅が単調増加しているパターンを指すとすればよい。
【００２５】
図８の例は、同じ値だけ出力値がずれる誤差（オフセット誤差）が繰り返すパターン（以下、オフセットパターンエラー）の例である。図８の場合、期待値と比較して実際値の波形が全体的にＤ１だけ平行移動している。Ｄ１は正でも負でもよい。
【００２６】
図９の例は、同じ比率で出力値が増加（あるいは減少）する誤差を繰り返すパターン（以下、等倍パターンエラー）の例である。図９の場合、期待値と比較して実際値の全ての時間の数値がＥ２／Ｅ１の比率で増加（減少）している。
【００２７】
以上の図３から図９のパターンエラーのそれぞれに対して、それを検出する検出ルーチン１１３、・・、すなわち図３に示された遅れパターンエラーを検出する遅れエラー検出ルーチン、図４に示された進みパターンエラーを検出する進みエラー検出ルーチン、図５に示された歪みパターンエラーを検出する歪みエラー検出ルーチン、図６に示された反転パターンエラーを検出する反転エラー検出ルーチン、図７に示された累積パターンエラーを検出する累積エラー検出ルーチン、図８に示されたオフセットパターンエラーを検出するオフセットエラー検出ルーチン、図９に示された等倍パターンエラーを検出する等倍エラー検出ルーチン、等を予め設計しておく。
【００２８】
遅れエラー検出ルーチンは例えば、実際値波形における全ての立上り箇所、立下り箇所で図３でのＡ１，Ａ２のような時間遅れがあるか否かをチェックして、所定値以上の時間遅れは全て検出するルーチンとすればよい。その際、所定値とは例えば装置特有の公差とすればよい。ここで公差とは、評価装置１が所定のサンプル周期のもとでデジタル量が所定回数連続して０（あるいは１）となったらそこで初めて０（あるいは１）に変わったと判別する場合、その所定回数とサンプル周期の積が公差となる。
【００２９】
同様に進みエラー検出ルーチンは、実際値波形における全ての立上り箇所、立下り箇所で図４でのＢ１，Ｂ２のような時間進みがあるか否かをチェックして、所定値以上の時間進みは全て検出するルーチンとすればよい。
【００３０】
歪みエラー検出ルーチンは、期待値と実際値との差分波形であるエラー波形が、所定の条件を満たす場合に、それを歪みエラーパターンだとして検出するルーチンとすればよい。歪みエラーの検出においてはパターンマッチングの手法が１つの有効な手法と考えられるが、これに関しては後述する。
【００３１】
反転エラー検出ルーチンは、例えばエラー発生箇所において（エラーの発生は単純に期待値と実際値との時々刻々の差分がゼロでないことで検出できる）、期待値の否定と実際値との差分の累積値を算出して、その累積値が所定値未満の場合に、反転エラーパターンだとして検出するルーチンとすればよい。
【００３２】
累積エラー検出ルーチンは例えば、上述の遅れエラー検出ルーチンあるいは進みエラー検出ルーチンによって検出された遅れエラーパターン、進みエラーパターンの箇所において、遅れ幅あるいは進み幅が徐々に増加している場合に、それを累積エラーパターンだとして検出するルーチンとすればよい。
【００３３】
オフセットエラー検出ルーチンは例えば、エラーが発生している箇所で、期待値と実際値の差分が一定（あるいは所定範囲内）の場合に、それをオフセットエラーパターンだとして検出するルーチンとすればよい。等倍エラー検出ルーチンは例えば、エラーが発生している箇所で、期待値と実際値の比が一定（あるいは所定範囲内）の場合に、それを等倍エラーパターンだとして検出するルーチンとすればよい。これら複数の検出ルーチン１１３、・・を図１に示すように、例えばサブルーチンとして自動評価プログラム１１２に組み込んでおけばよい。
【００３４】
以上の構成のもとで評価装置１はＥＣＵ１の自動評価を実行する。その処理手順の例が図２に示されている。図２の処理手順は、評価装置１のＣＰＵ１０が自動評価プログラム１１２をメモリ１１から呼び出して自動的に実行すればよい。
【００３５】
図２の処理では、まずＳ１０でＣＰＵ１０はメモリ１１に記憶されている入力データ１１０、すなわち前バージョンのＥＣＵの評価で用いた入力を、図１に示すとおりに所定の通信線を通じて現バージョンのＥＣＵ２に入力する。
【００３６】
次にＳ２０でＣＰＵ１０は、Ｓ１０での入力を受けたＥＣＵ２からの出力（応答）を、図１のとおり所定の通信線を通じて取得する。後述の図３以降で示すように、Ｓ１０で入力される入力、Ｓ２０で取得される出力は時系列データ（時間波形）であり、デジタルデータの場合もアナログデータの場合もある。
【００３７】
次にＳ３０でＣＰＵ１０は、Ｓ２０で取得した出力データと、メモリ１１に記憶された期待値データとを比較する。具体的には、出力データと期待値データとの同じ時間における数値を比較（あるいは差分を算出）すればよい。
【００３８】
次にＳ４０でＣＰＵ１０は、Ｓ３０の比較処理においてエラーと判断された箇所、すなわち出力データと期待値データとで数値が異なっていることが検出された箇所（エラー箇所）を記憶する。次にＳ５０でＣＰＵ１０は、Ｓ４０で記憶されたエラー箇所の総数を算出する。
【００３９】
次にＳ６０以降で、本発明の主要部であるパターンエラーの検出処理を実行する。まずＳ６０でＣＰＵ１０は、メモリ１１から１つの検出ルーチン１１３を呼び出す。そしてＳ７０でＣＰＵ１０は、Ｓ６０で呼び出した検出ルーチンを用いて、その検出ルーチンの検出対象となるパターンエラー（つまり呼び出された検出ルーチンが遅れ検出ルーチンならば遅れパターンエラー）を検出する。
【００４０】
次にＳ８０でＣＰＵ１０は、Ｓ７０で検出されたパターンエラーの箇所を記憶する。次にＳ９０でＣＰＵ１０は、Ｓ８０で記憶されたパターンエラーの総数を集計する。次にＳ１００でＣＰＵ１０は、図１に示されるようにメモリ１１内（あるいは自動評価プログラム１１２内）に記憶されている全ての検出ルーチン１１３、・・を用いたパターンエラーの検出が終了したか否かを判別する。全ての検出ルーチンによる検出が終了した場合（Ｓ１００：ＹＥＳ）はＳ１１０へ進み、まだ残った検出ルーチンがある場合（Ｓ１００：ＮＯ）はＳ６０へ戻って使っていない検出ルーチンを呼び出して上記手順を繰り返す。
【００４１】
Ｓ１１０に進んだらＣＰＵ１０は、上記処理で得た結果などを評価結果として出力部１３へ出力する。その際、例えば出力部１３が液晶ディスプレイの場合はそこにエラー総数を表示する、出力部１３がプリンタの場合はそれによりエラー総数を印刷する、等の処理を行えばよい。以上が図２の処理手順である。
【００４２】
図１０、図１１には上記Ｓ１１０における出力の例が示されている。上述のとおりＳ１１０における出力は、例えば表示や印刷などの任意の出力でよい。図１０の出力（例えば表示や印刷）の例では、期待値（図１に示された期待値データ１１１）と実際値（Ｓ２０で取得されたデータ）の時間波形が並列的に示されている。
【００４３】
そしてＳ４０で記憶されたエラー箇所が指示手段２００、２０１、２０２（指示記号）で示されている。ただし、このうちＳ９０で記憶されたパターンエラーの箇所は異なる記号によって示している。図１０の場合、指示手段２００、２０２で示された部分がＳ９０で遅れエラーパターンとして記憶された部分であり、指示手段２０１で示された部分はパターンエラーではない。
【００４４】
指示手段２００、２０２は指示手段２０１とは異なる記号であり、作業者が容易に視覚的に識別可能となっている。図１０の出力結果を見ることにより、作業者は例えば、念のため全てのエラー部分をチェックしつつ、非パターンエラーの部分に特に注意を集中して、組み込みソフトウェア２２の当該部分にバグがないかを調べる作業に移ることができる。
【００４５】
なお上記例のように、出力中で非パターンエラーを指示する手段とパターンエラーを指示する手段とは、例えば異なる記号、異なる色、あるいは点滅の有無などを用いて、作業者が視覚的に識別可能であればよい。さらに非パターンエラーのなかでも、例えば遅れパターンエラー、進みパターンエラー、歪みパターンエラー、反転パターンエラー、累積パターンエラー、オフセットパターンエラー、等倍パターンエラーのそれぞれに対して異なる記号、異なる色、あるいは点滅の有無などを用いて、異なる種類のパターンエラーが視覚的に識別可能なようにすればよい。
【００４６】
図１１の出力（例えば表示や印刷）例は、図２による評価結果をまとめて箇条書きにした評価結果レポートの例である。「（１）エラー総数」と示された箇所が、例えばＳ５０で集計された数を示す箇所である。「（２）パターンエラー数」と示された箇所が、例えばＳ１００で集計された遅れエラー、進みパターンエラーなど、全てのパターンエラー数の合計数を示す箇所であり、「（ａ）遅れエラー数」、「（ｂ）進みエラー数」などと示された箇所が、個別に遅れエラー数、進みエラー数、等を示す箇所である。
【００４７】
「（３）非パターンエラー数」と示された箇所は、エラー総数のうちパターンエラーを除いた総数を示す箇所、すなわち上記（１）から（２）を差し引いた数を示す箇所である。それぞれの右側の四角の領域に該等する数字を示せばよい。図１１の出力結果を見ることにより作業者は、パターンエラー、非パターンエラー、さらにパターンエラーにおける特定の種類のパターンエラーの検出結果が一覧で認識できる。図１０や図１１などの出力結果により例えば、機能の違いによるパターンエラーに作業者が関わる時間をより短くして、評価対象のエラー（バグ）とみられる箇所の分析により多くの時間を使うことができる。
【００４８】
なお上記の遅れパターンエラー検出ルーチン、進みパターンエラー検出ルーチン、歪みパターンエラー検出ルーチン、反転パターンエラー検出ルーチン、累積パターンエラー検出ルーチン、オフセットパターンエラー検出ルーチン、等倍パターンエラー検出ルーチン等の検出ルーチンは、いわゆるプラグインの手法により自動評価プログラム１１２に組み込まれるとし、新たなパターンエラー検出ルーチンの追加、削除などの処理が例えば入力部１２を用いて簡単に行えるようにしてもよい。また、作業者が入力部１２を用いて、これらのパターンエラー検出ルーチンのうちどれを用いるかを、例えば図２の処理を実行する前に設定できるようにしてもよい。
【００４９】
次に実施例２を説明する。実施例１では自動的な評価処理の手順の例を示したが、実施例２では作業者による操作を組み込む形態としている。図１２には実施例２における処理手順の例が示されている。なお実施例２（および後述の実施例３、４）でも図１のシステム構成を用いればよい。
【００５０】
図１２の処理手順は、例えば自動評価プログラム１１２の一部に組み込むか、自動評価プログラム１１２とは別のプログラムのかたちで、メモリ１１に記憶しておき、ＣＰＵ１０が呼び出して実行すればよい。図１２の処理手順では、まずＳ２００で作業者（ユーザ）が、例えば入力部１２を用いて表示指令を入力する。
【００５１】
Ｓ２００での指令を受けてＳ２１０でＣＰＵ１０は、表示処理を行う。続いてＳ２２０でＣＰＵ１０は、複数の選択肢を表示する。ここで選択肢とは、評価装置１が検出したパターンエラーの箇所をエラーとはみなさない（エラーから除外する）か否かの選択肢であり、その表示例が図１３に示されている。この表示例では、エラーから除外するか否かの質問事項と、そのＹＥＳ，ＮＯの選択肢が表示されている。例えば図１０を表示して、同じ画面（の一部）で図１３の表示を行ってもよい。
【００５２】
続いてＳ２３０で作業者は、例えば入力部１２を用いて、Ｓ２１０で表示された選択肢の中から所望の項目、すなわち図１３の場合、「ＹＥＳ」と「ＮＯ」のうちいずれかを選択する入力を行う。そしてＳ２４０でＣＰＵ１０は、「除外」（すなわち「ＹＥＳ」）が選択されたか否かを判別する。「除外」が選択された場合（Ｓ２４０：ＹＥＳ）はＳ２５０に進み、「除外」が選択されなかった場合（Ｓ２４０：ＮＯ）は図１２の処理を終了する。なおＳ２２０での選択肢表示は例えば、遅れパターンエラー、進みパターンエラーなど、種類の異なるパターンエラーごとに行えばよい。
【００５３】
Ｓ２５０に進んだらＣＰＵ１０は、除外処理を行う。具体的には、評価装置１が検出した全てのエラー箇所からＳ２４０で除外が選択された繰り返しエラーパターンを除外する。以上が図１２の処理手順である。この手順により、評価装置１が検出したパターンエラーの具体的な時間波形を作業者が見たうえで、エラーから除外するか否かを作業者自身が決定できるので、作業者の判断を加えることで評価作業の信頼性が向上する。
【００５４】
次に実施例３を説明する。図２の処理手順例では、検出ルーチン１３０を用いてパターンエラーを検出したが、パターンエラーの検出においてはパターンマッチングの手法を用いることが考えられる。実施例３ではパターンマッチングを用いたパターンエラーを検出する。
【００５５】
実施例３での処理手順の例が図１５に示されている。この処理手順を用いる場合、図１４に示すように、例えば自動評価プログラム１１２’内に例えば図３から図９の個々のパターンエラーに対応する複数のモデルパターン１１３’、・・を記憶しておく。図１５の処理手順は、図２の処理手順のうちＳ６０、Ｓ７０、Ｓ１００をＳ５５、Ｓ６５，Ｓ７５，Ｓ１０５に置き換えたものである。図２と同符号の処理は同じ処理を行えばよいので、重複する説明を省略する。
【００５６】
図１５のＳ５５でＣＰＵ１０は、メモリ１１内から１つのモデルパターンを呼び出す。そしてＳ６５でＣＰＵ１０は、Ｓ２０で得た時系列の出力データのなかから所定範囲を最初から順番に切り出し、切り出された波形とＳ５５で呼び出したモデルパターンとの一致率を算出する。
【００５７】
Ｓ６５での算出においては従来からあるパターンマッチングの手法で用いられる算出法を任意に用いればよい。この算出を、例えば時系列出力データの最初から最後まで行い、それぞれに対して一致率を算出する処理を繰り返す。なお上記の切り出し処理は、個々のモデルパターンに応じて適宜変更すればよく、たとえば遅れパターン、進みパターンの場合は期待値波形の立下りや立上りの箇所のみでもよい。
【００５８】
続いてＳ７５でＣＰＵ１０は、Ｓ６５で算出した一致率が予め設定しておいた閾値よりも高い切り出し箇所を抽出して記憶する。そしてＳ１０５でＣＰＵ１０は、全てのモデルパターンを用いたか否かを判別する。全てのモデルパターンを用いた一致率算出処理が終了している場合（Ｓ１０５：ＹＥＳ）はＳ１１０へ進み、まだ一致率算出処理を行っていないモデルパターンがメモリ１１内にある場合（Ｓ１０５：ＮＯ）はＳ５５へ戻って上記処理を繰り返す。以上が図１５の処理手順である。以上の処理手順により、これまで様々に開発されてきているモデルマッチングの手法を有効に活用して、パターンエラーの検出処理を高精度に行える。
【００５９】
次に実施例４を説明する。実施例４ではパターンエラーに関してさらに詳細な分析を行う。具体的には、様々な条件とパターンエラーの発生との相関を算出する。その処理手順の例は図１６に示されている。なお以下で相関とは、相関そのものの数値でもよく、相関に相当する数値でもよい。図１６の処理手順は図２の処理手順にＳ１０６，Ｓ１０７を付加したものである。図２と同符号の処理は重複する説明を省略する。
【００６０】
手順Ｓ１０６では、作業者が分析したい条件を例えば入力部１２を用いて入力する。分析したい条件の例は後述する。そしてＳ１０７でＣＰＵ１０は、Ｓ１０６で入力された条件とパターンエラー発生との相関を算出する。なおＳ１０６では予め条件の候補を例えばメモリ１１に記憶しておいて出力部１３に表示し、そのなかから作業者が入力部１２を用いて選択する形態でもよい。またＳ１０６を省略して、予め記憶しておいた全ての条件とパターンエラー発生との相関をＳ１０７で算出する形態としてもよい。
【００６１】
Ｓ１０７の算出結果を受けたＳ１１０での出力例が図１７、図１８に示されている。図１７、図１８の例では、パターンエラーとエラー発生部位との相関、あるいはパターンエラーと入力との相関を算出している。なお図１７は出力せず図１８のみを出力するとしてもよい。
【００６２】
図１７の例では、期待値と実際値とを比較すると、いくつかの箇所で遅れパターンエラー、進みパターンエラーが発生している。具体的には、立上り箇所３００、３０２、３０４、３０６、３０８、３１０では遅れパターンエラー、進みパターンエラーともに発生していない。立下り箇所３０１、３０３、３０５、３０７、３０９、３１１のうちで、立下り箇所３０１、３０３、３０７、３１１では遅れパターンエラーが、立下り箇所３０９では進みパターンエラーが発生している。図１７の下部には入力Ｆ１，Ｆ２の時間波形が示されている。
【００６３】
この例では、Ｓ１０５で作業者が例えば「立下り」、「入力Ｆ１がＨ」、「入力Ｆ２がＨ」、「立下りかつ入力Ｆ１がＨ」という条件を入力したとする。Ｓ１０６ではこれらの条件と各パターンエラーとの相関が算出されるが、以下では遅れパターンエラーの場合を説明する。
【００６４】
図１７の場合、「立下り」と言う条件に該等し遅れパターンエラーが発生する可能性がある箇所は、立下り箇所３０１、３０３、３０５、３０７、３０９、３１１の６箇所であり、このうち遅れパターンエラーが実際に発生しているのは３０１、３０３、３０７、３１１の４箇所である。したがって「立下り」という条件のもとでの遅れパタンエラー発生率は４／６＝６６％である。
【００６５】
「入力Ｆ１がＨ」という条件に該等し遅れパターンエラーが発生する可能性がある箇所は、立上り箇所３００、３０２、３０４、３０６、３０８、３１０、立下り箇所３０１、３０３、３０５、３０７、３１１の１１箇所であり、このうち遅れパターンエラーが実際に発生しているのは３０１、３０３、３０７、３１１の４箇所である。したがって「入力Ｆ１がＨ」という条件のもとでの遅れパタンエラー発生率は４／１１＝３６％である。
【００６６】
「入力Ｆ２がＨ」という条件に該等し遅れパターンエラーが発生する可能性がある箇所は、立上り箇所３０２、３０４、３０８、３１０、立下り箇所３０３、３０５、３０９、３１１の８箇所であり、このうち遅れパターンエラーが実際に発生しているのは３０３、３１１の２箇所である。したがって「入力Ｆ２がＨ」という条件のもとでの遅れパタンエラー発生率は２／８＝２５％である。
【００６７】
「立下りかつ入力Ｆ１がＨ」という条件に該等し遅れパターンエラーが発生する可能性がある箇所は、立下り箇所３０１、３０３、３０５、３０７、３１１の５箇所であり、このうち遅れパターンエラーが実際に発生しているのは３０１、３０３、３０７、３１１の４箇所である。したがって「立下りかつ入力Ｆ１がＨ」という条件のもとでの遅れパタンエラー発生率は４／５＝８０％である。
【００６８】
図１８においては、各条件のもとで以上のように算出された数値を出力（例えば表示）している。こうした出力を見ることによって作業者は、例えば「立下りかつ入力Ｆ１がＨ」が遅れパターンエラーの発生と強い（正の）相関を有するという情報を得る。これにより、逆に「立下りかつ入力Ｆ１がＨ」であるにも関わらず遅れパターンエラーが発生していない箇所に着目する方向に進むこともできる。
【００６９】
すなわち、図１７の場合、立下り箇所３０５のみが「立下りかつ入力Ｆ１がＨ」であるにも関わらず遅れパターンエラーが発生していない。したがって例えば、組み込みソフトウェア２２において立下り箇所３０５に対応する部分にバグがあるのではないかという推測を立てることができ、そこを詳細に調べる作業に移ることができる。以上の観点から、図１７を表示する場合、立下り箇所３０５のみの指示手段を表示する（あるいは立下り箇所３０５のみの指示手段を、他のエラー箇所の指示手段と識別可能に表示する）としてもよい。
【００７０】
以上のように本発明の評価装置は、組み込みソフトウェア２２のバグの箇所を絞り込むために有用な情報を提示するので、バージョンアップ等による機能の違いに伴うエラーが多数発生した状況でも、バグの除去が効率的に行える。
【００７１】
上記実施例は特許請求の範囲に記載された趣旨の範囲内で適宜変更してよい。また上記実施例は任意に組み合わせて実施すればよい。例えば上記実施例はＥＣＵの評価装置の例だが、本発明はこれに限定されず、時系列の信号を入力するための入力部と時系列の信号を出力するための出力部とを備えた任意の機器の評価装置に適用できる。
【００７２】
また上記実施例ではパターンエラーの例として、遅れパターンエラー、進みパターンエラー、歪みパターンエラー、反転パターンエラー、累積パターンエラー、オフセットパターンエラー、等倍パターンエラーを示したが、これらは例に過ぎず、本発明は、時間的に繰り返すエラーであればこれ以外のパターンエラーにも適用される。
【符号の説明】
【００７３】
１    評価装置
２    ＥＣＵ（評価対象）
１１２    自動評価プログラム
１１３    検出ルーチン
１１３’    モデルパターン
【図１】
2014010601.tif 000003
【図２】
2014010601.tif 000004
【図３】
2014010601.tif 000005
【図４】
2014010601.tif 000006
【図５】
2014010601.tif 000007
【図６】
2014010601.tif 000008
【図７】
2014010601.tif 000009
【図８】
2014010601.tif 000010
【図９】
2014010601.tif 000011
【図１０】
2014010601.tif 000012
【図１１】
2014010601.tif 000013
【図１２】
2014010601.tif 000014
【図１３】
2014010601.tif 000015
【図１４】
2014010601.tif 000016
【図１５】
2014010601.tif 000017
【図１６】
2014010601.tif 000018
【図１７】
2014010601.tif 000019
【図１８】
2014010601.tif 000020