JP2014059805A - モデルベースの制御装置用のテストケース生成装置およびテストケース生成方法 - Google Patents

モデルベースの制御装置用のテストケース生成装置およびテストケース生成方法 Download PDF

Info

Publication number
JP2014059805A
JP2014059805A JP2012205516A JP2012205516A JP2014059805A JP 2014059805 A JP2014059805 A JP 2014059805A JP 2012205516 A JP2012205516 A JP 2012205516A JP 2012205516 A JP2012205516 A JP 2012205516A JP 2014059805 A JP2014059805 A JP 2014059805A
Authority
JP
Japan
Prior art keywords
input
processing element
input data
data
model
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.)
Granted
Application number
JP2012205516A
Other languages
English (en)
Other versions
JP5811978B2 (ja
Inventor
Hiroyuki Ihara
博之 井原
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.)
Denso Corp
Original Assignee
Denso 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 Denso Corp filed Critical Denso Corp
Priority to JP2012205516A priority Critical patent/JP5811978B2/ja
Publication of JP2014059805A publication Critical patent/JP2014059805A/ja
Application granted granted Critical
Publication of JP5811978B2 publication Critical patent/JP5811978B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】 モデルに基づいて生成されたソースコードの妥当性をより確実かつ迅速に検証することのできるテストケースを生成するテストケース生成装置および生成方法を提供する。
【解決手段】 入力されるデータの境界値検査を実行する処理要素を、モデル21に含まれる複数の処理要素から検査対象処理要素35として検出する処理要素検出手段7、12と、入力データIn1、In2がモデル21に入力され、検査対象処理要素に入力されるまでの間における、入力データIn1、In2の精度を表すLSBの変動状態SUM_SFTBITを検出する変動状態検出手段7、12と、検出した変動状態SUM_SFTBITに応じて、検査対象処理要素での境界値検査を実行するために必要なテストケースを入力データIn1、In2として算出する入力データ算出手段7、12と、を備えている。
【選択図】図2

Description

本発明は、モデルからテストケースを自動的に生成するためのテストケース生成装置およびテストケース生成方法に関するものである。
従来、例えば車両のエンジン制御装置やブレーキ制御装置で入力データに応じた制御処理を実行するためのソースコードを、制御の処理動作を記述したモデルから自動的に生成する技術が知られている。また、このように生成されたソースコードの妥当性を検査するために、テストケースを入力データとして生成するテストケース生成装置として、例えば特許文献1に記載されたものが知られている。
このテストケース生成装置では、通常、そのユーザが市販のテストケース生成用のプログラムを実行し、複数の処理要素間のデータの入出力の仕様として制御処理を記述したモデルを、テストケース生成プログラムで解析することによって、モデルおよびソースコードへの入力データをテストケースとして自動的に生成する。そして、生成したテストケースをモデルおよびソースコードに入力して出力された結果を比較することによって、ソースコードの検査を行っている。
また、モデル内の特定の処理要素から出力されるデータの目標値が定められている場合、特定のモデルから出力されるデータが目標値になるように、テストケースが生成される。例えば、入力される複数のデータの境界値検査として比較演算を実行する処理要素において、その出力結果を検査するために、比較演算を実行する処理要素に入力されるデータに差異が生じるように、モデルへの入力データが生成される。
特開2009−294846号公報
入力されるデータを比較演算した結果の確認を行うためには、比較演算を行う処理要素に入力されるデータに上記のように差異を設けなければならない。例えば、8ビットの変数でデータを表した場合、市販のプログラムでは、通常、入力されるデータに所定の差異が生じるように、例えば最下位ビットの差が「1」になるように、テストケースが生成される。しかし、 モデルを解析しても、モデルの構成によっては入力されるデータに所定の差異が生じるようなテストケースを生成できない場合がある。
その場合、市販のプログラムが、テストケースを生成できないままモデルの解析を継続してしまい、解析に余分な時間を要してしまう。さらに、比較演算を実行する処理要素による適切な処理結果が得られるように、入力するデータをユーザが手動で設定しなければならず、その結果、ソースコードの検査工程の効率化が阻害されてしまう。
本発明は、以上のような課題を解決するためになされたものであり、モデルに基づいて生成されたソースコードの妥当性をより確実かつ迅速に検証することのできるテストケースを生成するテストケース生成装置および生成方法を提供することを目的としている。
上記の目的を達成するために、本発明に係るテストケース生成装置1およびテストケース生成方法は、入力データ(実施形態における(以下、本項において同じ)第1〜第3入力データIn1〜In3)に応じた制御処理を複数の処理要素間のデータの入出力の仕様として記述したモデル21、21aに基づき前記制御処理を実行するために生成されたソースコード(Cソースコード22)の妥当性を検査するためのテストケース23を、前記入力データとして生成するテストケース生成装置1であって、入力されるデータの境界値検査を実行する処理要素を、前記複数の処理要素から検査対象処理要素(比較演算ブロック35)として検出する処理要素検出手段(CPU7、自動テストケース生成プログラム12)と、前記入力データが前記モデル21、21aの入力ポート(第1〜第3入力ブロック31、32、37)に入力され、当該入力ポートと前記検査対象処理要素との間の処理要素に応じた処理を経て前記検査対象処理要素に入力されるまでの間における、前記入力データに含まれる当該入力データの精度を表すLSBの変動状態(累積シフトビット数SUM_SFTBIT)を検出する変動状態検出手段(CPU7、自動テストケース生成プログラム12)と、当該検出した変動状態に応じて、前記検査対象処理要素での境界値検査を実行するために必要な前記入力データを算出する入力データ算出手段(CPU7、自動テストケース生成プログラム12)と、を備えていることを特徴とする。
このテストケース生成装置およびテストケース生成方法によれば、モデルに基づいて生成された制御処理を実行するためのソースコードの妥当性を検査するために、テストケースがモデルへの入力データとして生成される。モデルは、入力データに応じた複数の処理要素間のデータの入出力の仕様として記述されており、複数の処理要素のうち、入力されるデータの境界値検査を実行する処理要素が、処理要素検出手段によって検査対象処理要素として検出される。
また、モデルの入力ポートから入力された入力データが、入力ポートと検査対象処理要素との間に存在する処理要素に応じた処理を経て、検査対象処理要素に入力されるまでの間において、入力データに含まれ、その精度を表すLSBの変動状態が、変動状態検出手段によって検出される。そして、検出された変動状態に応じて、検査対象処理要素において境界値検査を実行するために必要な入力データが、入力データ算出手段によって算出される。
LSBは、処理要素における処理の前後で変動することがあるので、LSBの変動状態を検出することによって、検査対象処理要素に入力されるデータが検査対象処理要素での境界値検査を適切に行うことのできる値になるように入力データを算出することができ、境界値検査を適切に実行するために必要な入力データを、LSBの変動状態に応じて適切に設定することができる。
また、境界値検査に必要な入力データを、上記のように自動的に算出することが可能になるので、プログラムによるテストケースの生成に要する時間を短縮することができる。また、ユーザによる手動でのテストケースの設定を省略できるので、ソースコードの検査工程をより効率化することができる。
実施形態に係るテストケース生成装置を示す概略構成図である。 モデルベース開発プログラムの概略構成図である。 図2のモデルベース開発プログラムで用いられるモデルの一例を示す図である。 テストケース自動生成処理を示すフローチャートである。 最小LSB差算出処理を示すフローチャートである。 累積シフトビット数を算出する際の処理内容を時系列に従って番号順に示す図である。 累積シフトビット数と最小LSB差との関係を示す最小LSB差テーブルである。 図2のモデルベース開発プログラムで用いられるモデルの変形例を示す図である。
以下、本発明の一実施形態に係るテストケース生成装置について、図面を参照しながら説明する。図1に示すように、本実施形態のテストケース生成装置(以下、単に「生成装置」という)1は、一般的なパーソナルコンピュータなどのコンピュータ装置で構成されており、ディスプレイ2、入力装置3、RAM4、ROM5、HDD(ハードディスクドライブ)6、CPU7(処理要素検出手段、変動状態検出手段、入力データ算出手段)などを備えている。
ディスプレイ2は、CPU7から受信した映像信号を、生成装置1のユーザに対して映像として表示する。入力装置3は、マウスやキーボードなどで構成され、ユーザに操作されることによって、その操作に応じた信号をCPU7に出力する。
RAM4は読出しおよび書込み可能な揮発性メモリであり、ROM5は読出し専用の不揮発メモリであり、HDD6は読出しおよび書込み可能な不揮発性メモリである。ROM5およびHDD6には、CPU7によって読み出されて実行されるプログラムなどがあらかじめ記憶されている。また、HDD6には後述するモデルが記憶されている。
CPU7がROM5およびHDD6に記憶されたプログラムを実行する際、RAM4は、そのプログラムを一時的に保存するための記憶領域、および作業用のデータを一時的に保存するための記憶領域として用いられる。CPU7は、入力装置3からの信号などに基づいて、ROM5およびHDD6に記憶されたプログラムを実行するとともに、RAM4およびHDD6に対してデータの読出しおよび書込みの制御を行う。CPU7は、本実施形態において、例えば車両制御のためのECU(図示せず)で実行されるCソースコードをモデルから生成するための統合開発環境として、後述するプログラム群を実行する。
図2は、この統合開発環境としてのモデルベース開発プログラム10の概略構成を示している。このモデルベース開発プログラム10は、自動コード生成プログラム11、自動テストケース生成プログラム12(処理要素検出手段、変動状態検出手段、入力データ算出手段)、Cソースコード実行プログラム13、モデルシミュレーションプログラム14)、実行結果比較プログラム15、および結果表示プログラム16などのプログラム群を有している。このプログラム群では、ユーザの入力装置3を用いた実行開始の操作に基づいて、各プログラムが実行される。
自動コード生成プログラム11は、ユーザによって作成され、HDD6に記憶されているモデル21を読み出し、読み出したモデル21の示すデータの入出力処理を実現するための処理が記述されたCソースコード22を自動的に作成する。なお、例えば、モデルベース開発プログラム10に含まれるモデルエディタ(図示せず)などのモデル作成用プログラムをCPU7が実行し、その実行時にユーザがモデル作成のための作業を入力装置3を用いて行うことで、モデル21が作成される。
次いで、モデル21について説明する。モデル21は、データ入力、データ出力およびデータ演算のうち、少なくとも1つの機能を表す処理要素(以下「ブロック」という)、およびブロック間の入出力関係の仕様を示す結線の組合わせとして記述され、これらによってモデル21の処理内容が表される。
図3はモデル21の一例を示している。同図に示すように、モデル21は、第1および第2入力ブロック31、32(入力ポート)、乗算ブロック33、定数ブロック34、比較演算ブロック35および出力ブロック36を有している。第1および第2入力ブロック31、32は、外部からモデル21に入力された入力データを、結線の後段の乗算ブロック33に出力する。具体的には、第1入力ブロック31は、入力された第1入力データIn1(入力データ)を、データの精度を表すLSBが8のデータとして、乗算ブロック33に出力する。また、第2入力ブロック32は、入力された第2入力データIn2(入力データ)を、LSBが4のデータとして乗算ブロック33に出力する。
なお、モデル21のブロック間で送受信されるデータを例えば8ビットの変数とした場合、LSBは、その最下位ビットの重みを表すものであり、LSBが1のときには、データを256分割して表すことができる。また、データの精度はLSBの値に応じて変動し、例えばいずれかのブロックでの演算処理によってLSBの値が2倍になったときには、そのデータの精度は、演算処理を行う前の1/2に変化する。
乗算ブロック33は、第1および第2入力ブロック31、32からそれぞれ入力されたデータを乗算し、その結果を表すデータを後段の比較演算ブロック35に出力する。定数ブロック35は、LSBが2の定数(例えば0)を後段の比較演算ブロック35に出力する。この定数はユーザによって任意に設定される。
比較演算ブロック35は、乗算ブロック33および定数ブロック34からそれぞれ出力されたデータを比較し、乗算ブロック33からのデータが定数ブロック34からのデータ以上のときに、値「1」のデータを出力する一方、それ以外の場合は値「0」のデータを出力する。出力ブロック36は、比較演算ブロック35による比較結果を表すデータをモデル21の外部に出力する。
このモデル21では、第1および第2入力ブロック31、32からのデータのLSBが8および4であることから、乗算ブロック33による乗算結果のLSBが32で、このままでは定数ブロック34から出力されるLSBが2のデータとの比較演算を比較演算ブロック35で実行できない。このため、乗算ブロック33では、乗算結果を表すデータのLSBが変換される。具体的には、乗算ブロック33による乗算結果のLSBが32で、定数ブロック34側のLSBの16倍であるので、4ビット分のシフト演算が行われる。その結果、乗算ブロック33からは、定数ブロック34からのデータと同じくLSBが2のデータが、出力される。
図2に示す自動テストケース生成プログラム12は、モデル21に基づいてテストケース23を生成し、作成したテストケース23をHDD6に記憶させる。テストケース23は、自動コード生成プログラム11によってモデル21から生成されたCソースコード22の品質を検査するための処理(例えばカバレッジテスト)を実行するにあたり、モデル21およびCソースコード22に入力するテスト用のデータである。テストケース23は、例えば、モデル21のすべてのブロックおよびCソースコード22のすべての命令文が実行されるように、生成される。この品質検査は、生成されたCソースコード22全体について行う場合と、そのCソースコード22に含まれる関数などの所定の実行単位部分ごとに独立に行われる場合がある。自動テストケース生成プログラム12の処理内容については後述する。
Cソースコード実行プログラム13は、自動コード生成プログラム11によって生成されたCソースコード22の実行単位に記載された処理内容を実行する。この実行の目的の1つは、上記の品質検査である。この実行の際、Cソースコード22に入力するデータとしてテストケース23が用いられる。そして、Cソースコード実行プログラム13は、Cソースコード22の実行単位による実行結果を表す出力データ、および実行した命令文の時系列的なリストを、実行結果データ24としてHDD6に記憶させる。
モデルシミュレーションプログラム14は、自動コード生成プログラム11によって生成されたCソースコード22の元となるモデル21をHDD6から読み出し、モデル21のシミュレーションを実行する。このシミュレーションでは、モデル21の表現するデータの入出力の時間変化をコンピュータ装置で仮想的に再現する。なお、モデル21のシミュレーションにおいても、モデル21全体ではなく、例えばブロックごとにシミュレーションを行ってもよい。
このシミュレーションでは、テストケース23を外部からの入力データとして用いる。そして、モデルシミュレーションプログラム14は、モデル21のシミュレーションによる外部への出力データ、およびブロックごとの実行時間および入出力データなどを、実行結果データ24として、HDD6に記憶させる。
実行結果比較プログラム15は、Cソースコード実行プログラム13およびモデルシミュレーションプログラム14によってHDD6に記憶された実行結果データ24を読み出し、その実行結果を比較し、その比較結果を表す比較結果データ25を結果表示プログラム16に出力する。この実行結果比較プログラム15による比較では、モデルシミュレーションプログラム14がシミュレーションを行ったモデル21と、自動コード生成プログラム11がモデル21に基づいて生成したCソースコード22の、それぞれの実行結果のデータ比較が行われる。例えば、実行結果比較プログラム15は、同じ入力データに対してモデル21およびCソースコード22がそれぞれ出力したデータを比較し、この比較の結果、Cソースコード22の実行結果が、モデル21の実行結果と一致していたときに、自動的に生成されたCソースコード22は、モデル21で記述された制御処理を実現するものとして妥当であるとの判定がなされる。
そして、結果表示プログラム16は、実行結果比較プログラム15からの上記の判定結果を表すデータ、およびモデルシミュレーションプログラム14から渡されたデータなどを、ディスプレイ2に表示させる。
なお、自動コード生成プログラム11によって生成されたCソースコード22は、Cソースコード22によって記述された制御を実現する制御ECU(例えばエンジンECUやブレーキECU)(図示せず)で作動するオブジェクトコードに変換され、そのオブジェクトコードは制御ECUに実装される。
次に、前述した自動テストケース生成プログラム12の具体的な処理内容について説明する。この処理では、CPU7は、入力装置3による検査対象モデルの指定操作を受け付け、受け付けた検査対象モデルに入力するためのテストケースを算出する。ここでは、検査対象モデルとして、モデル21が指定される。
また、ユーザは、検査項目および検査項目の目標値を指定する。検査項目は、モデル21に含まれるブロックのうち、いずれのブロックの出力データを目標値の指定対象とするかを示す情報である。目標値は、検査項目としての出力データに対して要求すべき具体的な数値である。
図4は、自動テストケース生成プログラム12に従ってCPU7が実行するテストケース自動生成処理を示している。この処理では、まず、ステップ1(S1と図示。以下、同じ)において、図5に示す最小LSB差算出処理を実行する。
この最小LSB差算出処理では、まず、モデル21に含まれるブロックのうち、境界値検査を行うべきブロックを検査対象ブロック(検査対象処理要素)として検出する(ステップ11)。これにより、比較演算を実行するブロックが検査対象ブロックとして検出される。
次いで、上記ステップ11で検出した検査対象ブロックのうち、後述する解析をまだ実行していない検査対象ブロックがあるか否かを判別する(ステップ12)。この答がYesで、未解析の検査対象ブロックがあるときには、後述する累積シフトビット数SUM_SFTBITをリセットする(ステップ13)。
次いで、未解析のいずれか1つの検査対象ブロックについて、その直前のブロックを検出し(ステップ14)、このステップ14で検出したブロックが、モデル21の外部から入力データが入力される入力ブロックであるか否かを判別する(ステップ15)。この答がNoのときには、上記ステップ14で検出したブロックにおいて実行されたLSBのシフト数を、ビットシフト数SFTBITとして算出する(ステップ16)。
そして、上記ステップ16で算出したビットシフト数SFTBITを、累積シフトビット数SUM_SFTBITに加算した値を、今回までの累積シフトビット数SUM_SFTBITとしてセットし(ステップ17)、前記ステップ14に戻る。これにより、前回のループにおいて、前記ステップ14で検出したブロックの直前のブロックが検出され、検出したブロックが入力ブロックであると判別される(ステップ15:Yes)まで、検査対象ブロックから1ブロックずつさかのぼりながら、各ブロックにおけるビットシフト数SFTBITを累積して、累積シフトビット数SUM_SFTBITを算出する。
上記ステップ15の答がYesで、入力ブロックであることが検出されると、算出した累積シフトビット数SUM_SFTBITに応じ、図7に示す最小LSB差テーブルを検索することによって、最小LSB差を算出する(ステップ18)。この最小LSB差は、検査対象ブロックに入力されるデータについて、ビットシフトを行った場合と行わなかった場合のLSBの差異を表すものであり、同図に示すように、累積シフトビット数SUM_SFTBITに応じて所定の値が設定されている。なお、累積シフトビット数SUM_SFTBITから、最小LSB差を適宜、算出してもよい。
そして、算出した最小LSB差をHDD6に記憶し(ステップ19)、前述したステップ12を再度、実行する。このとき、前記ステップ13〜19にかけて実行した解析を実行していない検査対象ブロックが残っているときには、すべての検査対象ブロックの解析が終了するまで、前記ステップ13〜19を繰り返し実行する。一方、すべての検査対象ブロックについて解析が終了しているときには、本処理を終了する。
次いで、前述したモデル21を対象として、上述した最小LSB差算出処理を実行した場合を図5および図6を参照しながら説明する。まず、ステップ11において、比較演算ブロック35が検査対象ブロックとして検出される。そして、ステップ12および13に続くステップ14において、乗算ブロック33が直前のブロックとして検出される。
次いで、この乗算ブロック33は入力ブロックではない(ステップ15:No)ので、ステップ16において、乗算ブロック33におけるLSBのシフト数である「4」がビットシフト数SFTBITとして算出され、このビットシフト数SFTBITが、ステップ17において累積シフトビット数SUM_SFTBITとして設定される。
そして、ステップ14に戻り、乗算ブロック33の直前の第1および第2入力ブロック31、32は入力ブロックである(ステップ15:Yes)ので、ステップ18および19において、累積シフトビット数SUM_SFTBITに基づき、最小LSB差を算出し、算出した最小LSB差を記憶する。具体的には、累積シフトビット数SUM_SFTBITが「4」であるので、最小LSB差テーブルを検索することによって、最小LSB差として「16」が算出される。そして、前記ステップ11で検出した検査対象ブロックは、比較演算ブロック35以外に存在しないので、前記ステップ12の答がNoになることにより、最小LSB差算出処理が終了する。
図4に戻り、ステップ1における最小LSB差算出処理に続き、前記ステップ11で検出した検査対象ブロックに入力されるデータの目標値を、最小LSB差に基づいて算出し(ステップ2)、これをHDD6に記憶する。上述したようにモデル21を対象とした場合、最小LSB差が「16」であり、また、乗算ブロック33から出力されるデータのLSBが2であることから、乗算ブロック33におけるビットシフトを行う前の乗算結果のLSBが32になるような入力データが、目標値として算出される。
次いで、検査対象ブロック以外のブロックについて、各種の検査項目およびその目標値を算出し(ステップ3)、HDD6に記憶する。
次いで、上記ステップ2および3で算出した各種の目標値を、自動テストケース生成プログラム12に設定し(ステップ4)、自動テストケース生成プログラム12を実行する(ステップ5)ことによって、テストケース23を生成し、本処理を終了する。これにより、検査対象ブロックでの比較演算を検査するための入力データが、テストケース23として生成される。
以上のように、本実施形態に係るテストケース生成装置1によれば、第1および第2入力データIn1、In2がモデル21に入力されたときから比較演算ブロック35に入力されるまでのLSBの変動状態を表す累積ビットシフト数SUM_SFTBITが、検出される。そして、比較演算ブロック35での比較演算が適切に行われるように、第1および第2入力データIn1、In2を、累積ビットシフト数SUM_SFTBITに応じて、テストケース23として適切に算出することができる。
また、比較演算ブロック35での比較演算を適切に行うことのできるテストケース23を、上記のようにして自動的に設定することができるので、自動テストケース生成プログラム12でのテストケースの生成を迅速に行うことができる。それにより、ユーザによる手動でのテストケース23の設定を省略できるので、Cソースコード22の検査工程をより効率化することができる。
図9は、変形例に係るモデル21aを示している。このモデル21aについて、前述した実施形態に係るモデル21と共通する構成には同じ符号を付し、モデル21との差異を中心に説明する。この変形例に係るモデル21aは、前述したモデル21と異なり、比較演算ブロック35と入力ポートとの間に複数の処理要素が設けられており、第3入力ブロック37(入力ポート)と、乗算ブロック33とは別個の乗算ブロック38をさらに有している。
第2入力ブロック32は、入力された第2入力データIn2を、LSBが2のデータとして乗算ブロック38に出力する。また、第3入力ブロック37は、入力された第3入力データIn3(入力データ)を、LSBが4のデータとして乗算ブロック38に出力する。また、乗算ブロック38は、第2および第3入力ブロック32、37からのデータを乗算し、その結果を、LSBが4のデータとして乗算ブロック33に出力する。すなわち、乗算ブロック38では1ビット分のビットシフトが行われる。
乗算ブロック38から出力されたデータは、乗算ブロック33において、第1入力ブロック31から出力されたデータと乗算される。他の構成は、前述したモデル21と同様である。
この変形例に係るモデル21aを対象として、前述した最小LSB差算出処理を実行した場合、ステップ11において比較演算ブロック35が検査対象ブロックとして検出され、ステップ14において、まず、乗算ブロック33が直前のブロックとして検出される。そして、ステップ16において、乗算ブロック33におけるビットシフト数SFTBITである「4」が算出されるとともに、この値がステップ17において累積シフトビット数SUM_SFTBITとしてセットされる。
次いで、ステップ14に戻り、乗算ブロック33の前段には乗算ブロック38が存在しているので、この乗算ブロック38が直前のブロックとして検出される。そして、ステップ16において、この乗算ブロック38でのビットシフト数SFTBITである「1」が算出されるとともに、この値が、ステップ17において累積シフトビット数SUM_SFTBITに加算されることによって、累積シフトビット数SUM_SFTBITは「5」にセットされる。また、乗算ブロック38の直前のブロックは入力ブロックであるので、ステップ15の答えがYesになり、ステップ18において累積シフトビット数SUM_SFTBITに応じた最小LSB差が、最小LSB差テーブルから算出されるとともに、これに基づく目標値がテストケース自動生成処理において算出される。
以上のように、第1〜第3入力ブロック32、33、37と比較演算ブロック35との間に2つの乗算ブロック33、38が存在する場合でも、それに応じて累積シフトビット数SUM_SFTBITが算出されるので、前述した実施形態と同様の効果を得ることができる。
なお、上述した実施形態および変形例では、モデル21、21aの比較演算ブロック35に入力されるデータの一方を、定数ブロック34から出力される定数としているが、定数ブロック34に代えて、乗算ブロックなどの他のブロックを配置したモデルを用いてもよい。その場合、比較演算ブロック35に入力される複数のデータについて、累積ビットシフト数SUM_SFTBITがそれぞれ算出され、それらに応じてテストケース23が算出される。
また、実施形態および変形例では、累積シフトビット数SUM_SFTBITから最小LSB差を算出するものとして説明したが、比較演算ブロック35に入力されるデータに関し、乗算ブロック33などでビットシフトを行った場合のLSBに対する、ビットシフトを行わなかった場合のLSBの倍率を、入力データの変動状態として検出し、この倍率に応じて最小LSB差を算出してもよい。
また、上述した実施形態および変形例では、モデル21、21aの構成を解析して求めた最小LSB差から算出した目標値を、自動テストケース生成プログラム12に設定することによって、テストケース23の生成を自動的に行っているが、これに限定されることなく、例えば、最小LSB差やそれに応じた目標値をディスプレイ2に表示させることでユーザに伝達し、ユーザが既存の自動テストケース生成プログラムに手動で最小LSB差や目標値を設定するようにしてもよい。その他、本発明の趣旨の範囲内で、細部の構成を適宜、変更することが可能である。
1 テストケース生成装置
7 CPU(処理要素検出手段、変動状態検出手段、入力データ設定手段)
12 自動テストケース生成プログラム(処理要素検出手段、変動状態検出手段、入力
データ設定手段)
22 Cソースコード(ソースコード)
31 第1入力ブロック(入力ポート)
32 第2入力ブロック(入力ポート)
35 比較演算ブロック(検査対象処理要素)
37 第3入力ブロック(入力ポート)
In1〜In3 第1〜第3入力データ(入力データ)
SUM_SFTBIT 累積シフトビット数(変動状態)

Claims (6)

  1. 入力データ(In1〜In3)に応じた制御処理を複数の処理要素間のデータの入出力の仕様として記述したモデル(21、21a)に基づき前記制御処理を実行するために生成されたソースコード(22)の妥当性を検査するためのテストケース(23)を、前記入力データとして生成するテストケース生成装置(1)であって、
    入力されるデータの境界値検査を実行する処理要素を、前記複数の処理要素から検査対象処理要素(35)として検出する処理要素検出手段(7、12)と、
    前記入力データが前記モデルの入力ポート(31、32、37)に入力され、当該入力ポートと前記検査対象処理要素との間の処理要素に応じた処理を経て前記検査対象処理要素に入力されるまでの間における、前記入力データに含まれる当該入力データの精度を表すLSBの変動状態(SUM_SFTBIT)を検出する変動状態検出手段(7、12)と、
    当該検出した変動状態に応じて、前記検査対象処理要素での境界値検査を実行するために必要な前記入力データを算出する入力データ算出手段(7、12)と、
    を備えていることを特徴とするテストケース生成装置。
  2. 前記変動状態検出手段は、前記入力データが前記モデルに入力されたときから前記検査対象処理要素に入力されるまでに実行された前記LSBのシフト回数を、前記変動状態として検出することを特徴とする請求項1に記載のテストケース生成装置。
  3. 前記変動状態検出手段は、前記入力データが前記モデルに入力されたときから前記検査対象処理要素に入力されるまでの間において、前記LSBのシフトを行った場合の前記検査対象処理要素に入力されるデータのLSBに対する、前記LSBのシフトを行わなかった場合の前記検査対象処理要素に入力されるデータのLSBの倍率を、前記変動状態として検出することを特徴とする請求項1に記載のテストケース生成装置。
  4. 入力データ(In1〜In3)に応じた制御処理を複数の処理要素間のデータの入出力の仕様として記述したモデル(21、21a)に基づき前記制御処理を実行するために生成されたソースコード(22)の妥当性を検査するためのテストケース(23)を、前記入力データとして生成するテストケースの生成方法であって、
    入力されるデータの境界値検査を実行する処理要素を、前記複数の処理要素から検査対象処理要素(35)として検出する処理要素検出手段(7、12)と、
    前記入力データが前記モデルの入力ポート(31、32、37)に入力され、当該入力ポートと前記検査対象処理要素との間の処理要素に応じた処理を経て前記検査対象処理要素に入力されるまでの間における、前記入力データに含まれる当該入力データの精度を表すLSBの変動状態(SUM_SFTBIT)を検出する変動状態検出手段(7、12)と、
    当該検出した変動状態に応じて、前記検査対象処理要素での境界値検査を実行するために必要な前記入力データを算出する入力データ算出手段(7、12)と、
    を備えていることを特徴とするテストケースの生成方法。
  5. 前記変動状態検出手段は、前記入力データが前記モデルに入力されたときから前記検査対象処理要素に入力されるまでに実行された前記LSBのシフト回数を、前記変動状態として検出することを特徴とする請求項4に記載のテストケースの生成方法。
  6. 前記変動状態検出手段は、前記入力データが前記モデルに入力されたときから前記検査対象処理要素に入力されるまでの間において、前記LSBのシフトを行った場合の前記検査対象処理要素に入力されるデータのLSBに対する、前記LSBのシフトを行わなかった場合の前記検査対象処理要素に入力されるデータのLSBの倍率を、前記変動状態として検出することを特徴とする請求項4に記載のテストケース生成方法。
JP2012205516A 2012-09-19 2012-09-19 モデルベースの制御装置用のテストケース生成装置およびテストケース生成方法 Active JP5811978B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012205516A JP5811978B2 (ja) 2012-09-19 2012-09-19 モデルベースの制御装置用のテストケース生成装置およびテストケース生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012205516A JP5811978B2 (ja) 2012-09-19 2012-09-19 モデルベースの制御装置用のテストケース生成装置およびテストケース生成方法

Publications (2)

Publication Number Publication Date
JP2014059805A true JP2014059805A (ja) 2014-04-03
JP5811978B2 JP5811978B2 (ja) 2015-11-11

Family

ID=50616206

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012205516A Active JP5811978B2 (ja) 2012-09-19 2012-09-19 モデルベースの制御装置用のテストケース生成装置およびテストケース生成方法

Country Status (1)

Country Link
JP (1) JP5811978B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018163304A1 (ja) * 2017-03-07 2018-09-13 三菱電機株式会社 ソースコード改善装置、ソースコード改善方法及びソースコード改善プログラム
CN110537171A (zh) * 2017-04-21 2019-12-03 雷蛇(亚太)私人有限公司 测试设备及用于对设备驱动器软件进行测试的方法
JP2021068285A (ja) * 2019-10-25 2021-04-30 株式会社デンソー 自動コード生成方法、コードプログラム、電子制御装置、自動コード生成プログラム、及び自動コード生成装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006024006A (ja) * 2004-07-08 2006-01-26 Denso Corp テストケース生成装置、テストケース生成プログラム、モデルベース開発プログラム、ソースコード生成妥当性診断装置、ソースコード生成妥当性診断プログラム、およびモデルベース開発方法。
JP2009294846A (ja) * 2008-06-04 2009-12-17 Denso Corp テストケース生成装置、テストケース生成プログラム、およびテストケース生成方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006024006A (ja) * 2004-07-08 2006-01-26 Denso Corp テストケース生成装置、テストケース生成プログラム、モデルベース開発プログラム、ソースコード生成妥当性診断装置、ソースコード生成妥当性診断プログラム、およびモデルベース開発方法。
JP2009294846A (ja) * 2008-06-04 2009-12-17 Denso Corp テストケース生成装置、テストケース生成プログラム、およびテストケース生成方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018163304A1 (ja) * 2017-03-07 2018-09-13 三菱電機株式会社 ソースコード改善装置、ソースコード改善方法及びソースコード改善プログラム
CN110537171A (zh) * 2017-04-21 2019-12-03 雷蛇(亚太)私人有限公司 测试设备及用于对设备驱动器软件进行测试的方法
CN110537171B (zh) * 2017-04-21 2023-04-14 雷蛇(亚太)私人有限公司 测试设备及用于对设备驱动器软件进行测试的方法
JP2021068285A (ja) * 2019-10-25 2021-04-30 株式会社デンソー 自動コード生成方法、コードプログラム、電子制御装置、自動コード生成プログラム、及び自動コード生成装置
JP7318485B2 (ja) 2019-10-25 2023-08-01 株式会社デンソー 自動コード生成方法、コードプログラム、電子制御装置、自動コード生成プログラム、及び自動コード生成装置

Also Published As

Publication number Publication date
JP5811978B2 (ja) 2015-11-11

Similar Documents

Publication Publication Date Title
JP5669630B2 (ja) テスト・ケース生成方法、プログラム及びシステム
CN108897724B (zh) 功能完成进度确定方法及装置
JP2006024006A (ja) テストケース生成装置、テストケース生成プログラム、モデルベース開発プログラム、ソースコード生成妥当性診断装置、ソースコード生成妥当性診断プログラム、およびモデルベース開発方法。
US8397104B2 (en) Creation of test plans
CN104199767B (zh) 测试方法和装置
US20120185669A1 (en) Program inspection method and non-transitory, computer readable storage medium storing inspection program
US20180088914A1 (en) Method for supporting program creation and apparatus for supporting program creation
JP2009294846A (ja) テストケース生成装置、テストケース生成プログラム、およびテストケース生成方法
CN112346987A (zh) 基于Xmind的测试用例生成转换方法及系统
JP5811978B2 (ja) モデルベースの制御装置用のテストケース生成装置およびテストケース生成方法
US20090217259A1 (en) Building Operating System Images Based on Applications
JP6275009B2 (ja) 試験装置及び試験プログラム
JP6723483B2 (ja) テストケース生成装置、テストケース生成方法およびテストケース生成プログラム
JP2018073054A (ja) オブジェクト分析装置、オブジェクト分析方法、及びプログラム
JP2013171350A (ja) 図式プログラムのテスト網羅性測定装置およびその方法、並びにプログラム
US7533314B2 (en) Unit test extender
US9165007B2 (en) Log message optimization to ignore or identify redundant log messages
TW201327211A (zh) 代碼智慧生成系統及方法
US8332204B2 (en) Instruction check program, instruction check apparatus, and I/O simulator
JPWO2012049816A1 (ja) モデル検査装置、方法及びプログラム
JP2009134360A (ja) モデル検査システム、モデル検査方法およびモデル検査用プログラム
JP6320269B2 (ja) ソフトウェア試験支援装置およびソフトウェア試験支援プログラム
JP5755861B2 (ja) テストケース生成装置、テストケース生成方法およびテストケース生成プログラム
JP6519530B2 (ja) 検証装置、検証プログラム、及び、検証方法
CN112329124A (zh) Cae模型查错方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150721

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150730

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150907

R151 Written notification of patent or utility model registration

Ref document number: 5811978

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250