JP2009294846A - テストケース生成装置、テストケース生成プログラム、およびテストケース生成方法 - Google Patents

テストケース生成装置、テストケース生成プログラム、およびテストケース生成方法 Download PDF

Info

Publication number
JP2009294846A
JP2009294846A JP2008146936A JP2008146936A JP2009294846A JP 2009294846 A JP2009294846 A JP 2009294846A JP 2008146936 A JP2008146936 A JP 2008146936A JP 2008146936 A JP2008146936 A JP 2008146936A JP 2009294846 A JP2009294846 A JP 2009294846A
Authority
JP
Japan
Prior art keywords
test case
boundary
model
data
processing element
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.)
Withdrawn
Application number
JP2008146936A
Other languages
English (en)
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 JP2008146936A priority Critical patent/JP2009294846A/ja
Publication of JP2009294846A publication Critical patent/JP2009294846A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】モデルからテストケースを生成する技術において、モデルの複雑度が大きくなってもカバレッジ率の低下を抑える。
【解決手段】テストケース生成装置は、モデル20中の1つのブロックの出力データ(すなわち検査項目)に対して目標値が定められている場合において、ブロックを含むサブシステム40と、サブシステム40の前段のサブシステム30との境界70を特定し、検査項目が当該目標値となるように、当該境界70におけるサブシステム40に対する入力データの設定値を算出する。さらに、算出した設定値を、当該境界70における新たな目標値として設定し、さらに、境界70における出力データを新たな検査項目として設定した上で、モデル20のテストケースを生成する。
【選択図】図7

Description

本発明は、入力データに応じた制御処理を複数の処理要素間のデータの入出力によって記述するモデルについての、テストケース生成装置、テストケース生成プログラム、およびテストケース生成方法に関するものである。
従来、入力データに応じた制御処理(例えば、エンジン制御、ブレーキ制御等の車両制御)のためのソースコード(例えばCソースコード)を生成する際に、複数の処理要素間のデータの入出力の仕様として制御処理を記述するモデルをまず作成し、そのモデルからソースコードを生成する技術が知られている。
このような技術において、モデルからテストケースを作成することが一般的に行われている(例えば、特許文献1参照)。テストケースとは、検査対象としてのモデルまたはモデルから作成されたソースコードに対して、入力データとして与えるデータをいう。
テストケースを生成するソフトウェアとしては、例えば、Simulink(登録商標)で作成されるモデルに対するテストケースを生成するためのSimulink Design Verifier(登録商標)、T−VEC(登録商標)が市販されている。テストケースを生成する従来のソフトウェアの典型的な機能を、図8を用いて説明する。
図8中のモデルにおいては、処理要素81〜93間のデータの入出力関係が記述されている。処理要素間の矢印が、データの入出力の方向を示している。各処理要素には、それぞれ特定の演算機能が割り当てられている。例えば、処理要素91は、2つの入力値を受け付け、それらのうち第1の入力値の方が大きければ1を出力し、そうでなければゼロを出力する。
このモデルの実行において、処理要素91の出力95として特定の目標値(例えば1という値)が出力されるようにしたい場合がある。このような場合に、出力95が検査項目として指定され、さらに指定された検査項目に対する目標値が指定されると、テストケース生成ソフトウェアを実行するコンピュータは、検査項目95における目標値を起点として、順次処理要素を入力側(すなわち前段側)方向98に向って、当該目標値を実現することのできる値を逆算していき、最終的には、入力された値を出力する入力処理要素81、82に与えるべき値を算出するようになっている。
特開2006−24006号公報
しかし、従来のテストケースの生成技術においては、テストケース生成対象のモデルの複雑度(例えば、処理要素の数、入出力の分岐の数等)の上昇と共に、検査対象のモデル内に設定された各検査項目に対するテストケースの生成が困難になる(すなわち、カバレッジ率が低下する)という傾向がある。このような傾向は、対象となるモデルの複雑度が大きくなると、入力側に向かって逆算して行く範囲が大きくなり、その結果逆算の処理内容が複雑になってしまうことで発生すると考えられる。
本発明は上記点に鑑み、モデルからテストケースを生成する技術において、モデルの複雑度が大きくなってもカバレッジ率の低下を抑えることを目的とする。
上記目的を達成するための請求項1に記載の発明は、入力データに応じた制御処理を複数の処理要素間のデータの入出力の仕様として記述するモデルの当該制御処理を実行するモデル実行装置用に、当該入力データとして用いるためのテストケースを生成するテストケース生成装置についてのものである。
このテストケース生成装置は、モデル中の1つの処理要素の出力データに対して目標値が定められている場合、当該1つの処理要素を含む一連の後段処理要素群と、上記テストケースの入力データを受けて後段処理要素群にデータを出力する一連の前段処理要素群との境界を決定し、当該1つの処理要素の出力データが当該目標値となるように、境界における後段処理要素群に対する入力データの設定値を算出する。
さらにテストケース生成装置は、算出した設定値を、当該境界における新たな目標値として設定し、境界における前段処理要素群から後段処理要素群への入力データの値が、設定した新たな目標値となるよう、上記テストケースを生成する。
このようにすることで、モデル中のテストケースを受け付ける部分から、検査項目としての上記1つの処理要素までが、検査項目を含む後段処理要素群と、データの入出力の観点からそれよりも前段にある前段処理要素群に分けられる。
そして、検査項目を含む後段処理要素群という、モデルの一部分を対象として、目標値を実現する入力データの設定値(後段処理要素群についてのテストケースでもある)を先に算出し、その後に、この設定値を目標値としてモデルのテストケースが算出される。したがって、テストケースの算出が複数段階に分けられ、各段階におけるテストケース算出対象の複雑度が低下する。
このように、より複雑度の低い単位でテストケース生成を行った結果を利用することにより、カバレッジ率の低下を抑えることができる。すなわち、カバレッジ性能を向上できる。
なお、モデルの制御処理の実行方法としては、例えば、モデルからソースコードを生成し、そのソースコードからオブジェクトコードを生成し、当該オブジェクトコードを制御ECU(例えば、エンジンECU、ブレーキECU等の車両制御用ECU)に組み込み、当該制御ECUにおいて当該制御処理を実行させる方法を採用してもよい。この場合、当該制御ECUがモデル実行装置の一例に相当する。
あるいは、モデルの制御処理の実行方法としては、モデルそのものを汎用のコンピュータ(例えば、パーソナルコンピュータ、ワークステーション)においてシミュレーションする方法を採用してもよい。この場合、当該汎用コンピュータがモデル実行装置の一例に相当する。
モデル中の検査項目(すなわち、上記の1つの処理要素)の出力データに対して目標値が定められる場合としては、例えば、ユーザの指定操作に基づいて、当該検査項目、および、目標値が定められる場合があってもよいし、あるいは、自動的に(すなわち、ユーザの指定操作を必要とせず)当該1つの検査項目、および、目標値が定められる場合があってもよい。
また、請求項2に記載のように、テストケース生成装置は、ユーザによってモデルに記述されたモデル中の区分けのデータに基づいて、境界を決定するようになっていてもよい。このように、あらかじめ記述された区切りに基づいて境界を決定することで、境界の決定が容易になる。
また、請求項3に記載のように、テストケース生成装置は、決定した前記境界のデータを記憶媒体(13、15)に記録し、また、記憶媒体(13、15)に記録された境界のデータに基づいて設定値を算出し、算出した設定値を記憶媒体(13、15)に記録し、また、記憶媒体(13、15)に記録された設定値を記憶媒体(13、15)中の新たな目標値用のデータとして記録することで、当該設定値を当該新たな目標値として設定し、また、記憶媒体(13、15)に記録された新たな目標値に基づいて、テストケースを生成し、生成したテストケースを記憶媒体(13、15)に記録するようになっていてもよい。
このように、設定値が記憶媒体(13、15)に一旦記録されることで、1つの段階における検査項目を含む要素群のテストケースが確定し、その上で、次の段階におけるモデルのテストケースの生成が行われる。したがって、従来のようにモデルのテストケースを1段階で算出する場合に比べ、カバレッジ性が向上する。
また、請求項1に記載の発明の特徴は、請求項4に記載のように、テストケース生成プログラムも捉えることができ、また、請求項5に記載のように、テストケース生成方法としても捉えることができる。
なお、境界決定手順(132)および設定手順(136)のそれぞれは、コンピュータが自動的に実行するようになっていてもよいし、ユーザがコンピュータに手入力することで実現するようになっていてもよい。
なお、上記および特許請求の範囲における括弧内の符号は、特許請求の範囲に記載された用語と後述の実施形態に記載される当該用語を例示する具体物等との対応関係を示すものである。
以下、本発明の一実施形態について説明する。図1に、本実施形態に係るパーソナルコンピュータ1(テストケース生成装置の一例に相当する)の構成を示す。このパーソナルコンピュータ1は、ディスプレイ11、入力装置12、RAM13、ROM14、HDD(ハードディスクドライブ)15、CPU(コンピュータに相当する)16等から構成される。
ディスプレイ11は、CPU16から受けた映像信号を、ユーザ(開発者)に対して映像として表示する。
入力装置12は、キーボード、マウス等から構成され、ユーザが操作することにより、その操作に応じた信号をCPU16に出力する。
RAM13は読み出し、書き込み可能な揮発性メモリであり、ROM14は読み出し専用の不揮発性メモリであり、HDD15は読み出し、書き込み可能な不揮発性メモリである。ROM14、HDD15には、CPU16が読み出して実行するプログラム等があらかじめ記憶されている。またHDD15には、後述するモデルが記憶されている。
RAM13は、CPU16がROM14、HDD15に記憶されたプログラムを実行する際に、そのプログラムを一時的に保存するための記憶領域、および作業用のデータを一時的に保存するための記憶領域として用いられる。
CPU16は、パーソナルコンピュータ1に電源が投入されることによって起動すると、ROM14から所定のブートプログラムを読み出して実行し、このブートプログラムに規定されるオペレーティングシステム(以下OSと記す)その他のプログラムをHDD15から読み出して実行することにより、起動処理を行う。起動処理以後、電源が遮断されるまで、CPU16は、入力装置12からの信号、OSによって予め定められたスケジュール等に基づいて、HDD15に記録されている各種プログラムを当該OS上のプロセスとして実行する。また、上記の起動処理およびプロセスにおいて、CPU16は必要に応じて入力装置12から信号の入力を受け付け、またディスプレイ11に映像信号を出力し、またRAM13、HDD15に対してデータの読み出し/書き込みの制御を行う。
本実施形態のCPU16は、車両制御のためのECUにおいて実行させるソースコードをモデルから生成するための統合開発環境として、後述するプログラム群を実行するようになっている。
以下、CPU16がプログラムを実行することによって行う処理を、そのプログラム自体が行う処理であるとして説明を行う。
図2に、この統合開発環境としてのモデルベース開発プログラム100の構成を示す。モデルベース開発プログラム100は、自動コード生成プログラム110、自動テストケース生成プログラム130、Cソースコード実行プログラム140、モデルシミュレーションプログラム150、実行結果比較プログラム170、および結果表示プログラム180のプログラム群から構成される。これらプログラム群は、それぞれユーザの入力装置12を用いた実行開始の操作に基づいて、その実行が開始される。
自動コード生成プログラム110は、ユーザによってよって作成され、HDD15に記憶されているモデル210を読み出し、この読み出したモデル210の示すデータ入出力処理を実現するための処理が記述されたCソースコードを生成する。自動コード生成プログラムの例としては、Mathworks(登録商標)社のReal Time Workshop(登録商標)がある。なお、モデルは、モデルエディタ等のモデル作成用プログラムをCPU16が実行し、その実行時にユーザがモデル作成のための作業を入力装置12を用いて行うことで、作成されるようなっていてもよい。このようなモデルエディタもモデルベース開発プログラム100に含まれていてもよい。
ここで、モデルについて説明する。モデルは、時系列の中でのデータ演算、データ入力およびデータ出力のうち少なくともいずれか1つの機能を表す処理要素(以下、ブロックという)、およびブロック間の入出力関係の仕様(すなわち、どのブロックからどのブロックにデータが渡されるか)を示す結線の組み合わせとして記述される。これらブロックおよび結線の組み合わせによって、入力データに応じた当該モデルの処理内容が記述される。処理の内容としては、例えば、エンジン制御、ブレーキ制御等の車載装置の制御処理がある。
モデルの例としては、Mathworks(登録商標)社のSimulink(登録商標)モデルがある。図3および図4に、モデルの一部を成すサブシステムを例示する。なお、図3に例示するAサブシステム20は、さらに複数(具体的には2つ)の結線で繋がるA−1サブシステム30およびA−2サブシステム40を含んでいる。
また、A−2サブシステム40について図4に例示するように、各サブシステム30、40も、結線で繋がれた一連の(すなわち、直接的または間接的に結線を介して1まとまりに繋がっている)ブロック(図4の例ではブロック41〜53)を含んでいる。
このように、モデルには、サブシステムのカバー範囲(すなわち、サブシステムがどのブロックを含むか)についての情報も記述されている。なお、各サブシステムは、当該サブシステムを含むモデルの一部を構成すると共に、それ自体もブロックと結線の組み合わせによって構成されているので、モデルである。
また、サブシステムには、関数サブシステムと非関数サブシステムとがある。関数サブシステムとは、モデルからコードを生成したときに、Cソースコード上で関数となるようなサブシステムをいい、非関数サブシステムとは、それ以外のサブシステムをいう。図3、4の例においては、Aサブシステム20が関数サブシステムであり、A−1サブシステム30およびA−2サブシステム40が非関数サブシステムである。モデルには、モデルに含まれる各サブシステムが関数サブシステムであるか否かについての情報も記述されている。
A−2サブシステム40においては、ブロック43〜53は、入力ポートおよび出力ポートの両方または一方のみを有し、両方を有している場合は、入力ポートから入力されたデータに対して所定の演算(比較演算、四則演算等)を行い、その結果の信号を出力ポートから出力する機能を表す。また、入力ブロック41、42は、それぞれ出力ポートを1つ有し、指定された入力値を出力ポートから出力する。
なお、入力ブロック41、42に対する入力値の指定は、ユーザが入力装置12を操作して行う場合もあれば、当該入力ブロック41、42を含むサブシステムの前段のサブシステムの出力値となるようにCPU16が指定する場合もある。
自動テストケース生成プログラム130は、自動コード生成プログラム110によって生成されたモデル210に基づいて、テストケース230を生成し、HDD15に記憶させる。なお、テストケースは、上述のようにモデル210のみに基づいて生成してもよいし、あるいは、モデル210のソースコードに基づいて生成してもよいし、またあるいは、モデル210とソースコード210の両方に基づいて生成してもよい。
テストケースとは、モデルの品質、および、自動コード生成プログラム110によって当該モデルから生成されたCソースコードの品質を検査するための処理(例えばカバレッジテスト)の実行において、その品質検査が十分となるよう、当該モデルやCソースコードに入力するテスト用データである。例えば、後述するCソースコード実行プログラム140およびモデルシミュレーションプログラム150の実行の際にも、このテストケースをCPU16が使用する。
品質検査が十分となるようなテストケースとは、例えば、できる限りそのモデルの全てのブロックまたはCソースコードの全ての命令文が実行されるようなバラエティを持った入力データである。
なお、品質検査は、生成されたCソースコード(またはモデル)全体について行う場合と、そのCソースコード(またはモデル)に含まれる関数等の所定の実行単位部分毎に独立に行われる場合がある。ここでいう入力データとは、品質検査が行われる対象の部分に入力されるデータをいう。この自動テストケース生成プログラム130の処理の詳細については後述する。
Cソースコード実行プログラム140は、自動コード生成プログラム110によって生成されたCソースコードの実行単位に記載された制御処理内容を実行する。この実行の目的の1つは、上記の品質検査である。そして、その実行の際、入力データは自動テストケース生成プログラム130によって生成されたテストケース230を用いる。そしてCソースコード実行プログラム140は、実行したCソースコードの実行単位による出力データ、および実行した命令文の時系列的なリストを、実行結果データ240として、HDD15に記憶させる。
モデルシミュレーションプログラム150は、自動コード生成プログラム110によって生成されたCソースコードの元となるモデル210をHDD15から読み出し、そのモデルのシミュレーションを実行する。シミュレーションとは、そのモデルの表現するデータの入出力の時間変化をパーソナルコンピュータ1上で仮想的に再現する処理をいう。なお、モデルのシミュレーションにおいても、モデル全体ではなく、その実行単位毎にシミュレーションを行ってもよい。
なお、Cソースコード実行プログラム140で実行するソースコードの実行単位は、モデルシミュレーションプログラム150で実行するモデルの実行単位部分から生成されるソースコードである。すなわち、Cソースコード実行プログラム140で実行されるCソースコードの実行単位と、モデルシミュレーションプログラム150で実行されるモデルの実行単位とは対応している。
このシミュレーションにおいて、外部からのデータの入力としては、自動テストケース生成プログラム130によって生成されたテストケース230を用いる。そしてモデルシミュレーションプログラム150は、そのモデルのシミュレーションによる外部への出力データ、ならびにブロック毎の実行時間および入出力データを、実行結果データ240として、HDD15に記憶させる。
このようなCソースコード実行プログラム140またはモデルシミュレーションプログラム150をCPU16が実行する際には、パーソナルコンピュータ1がモデルの制御処理を実行するモデル実行装置として機能することになる。
なお、自動コード生成プログラム110によって生成されたCソースコードは、当該Cソースコードが記述する制御を実現する制御ECU(例えばエンジンECU、ブレーキECU)で作動するオブジェクトコードに変換され、当該オブジェクトコードは当該制御ECUに実装される。
そして、当該オブジェクトコードが実装された制御ECUにおいて、当該オブジェクトコードを実行すると共に、当該制御ECUに対して、自動テストケース生成プログラム130によって生成されたテストケース230を入力するようになっていてもよい。この場合には、当該制御ECUがモデルの制御処理を実行するモデル実行装置として機能することになる。
実行結果比較プログラム170は、Cソースコード実行プログラム140およびモデルシミュレーションプログラム150によってHDD15に記憶された実行結果データ240を読み出し、その実行結果を比較し、その比較結果を結果表示プログラム180に渡す。なお、比較とは、モデルシミュレーションプログラム150がシミュレーションを行ったモデルと、自動コード生成プログラム110がそのモデルに基づいて生成したCソースコードの、それぞれの実行結果のデータの比較をいう。比較項目としては、同じ入力データに対してそれぞれのモデル、Cソースコードが出力したデータがある。そして実行結果比較プログラム170は、比較の結果、それぞれが合致しているか否かの合否判定を行い、その合否判定の情報も結果表示プログラム180に渡す。
結果表示プログラム180は、実行結果比較プログラム170およびモデルシミュレーション状況解析プログラム160から渡されたデータをディスプレイ11に出力する。
次に、上述の自動テストケース生成プログラム130の具体的な処理内容について、図3、4に示したAサブシステム20を例に挙げて説明する。図5に、自動テストケース生成プログラム130のためにCPU16が実行する処理のフローチャートを示す。
自動テストケース生成プログラム130の実行において、CPU16は、入力装置12に対する検査対象モデルの指定操作を受け付け、受け付けた検査対象モデルに入力するためのテストケースを後述のように算出するようになっている。ここでは、検査対象モデルとしてAサブシステム20が指定されたとする。
また、自動テストケース生成プログラム130の実行においてCPU16は、ユーザの検査項目指定操作を受け付けることができるようになっている。検査項目指定操作とは、検査項目および検査項目の目標値を指定する操作である。
検査項目は、検査対象モデル中で、どのブロックのどの出力データを目標値の指定対象とするかを示す情報である。目標値は、当該検査項目としての出力データに対して要求すべき具体的な値である。
このように、検査対象モデル、検査項目、目標値の指定をユーザから受け付けると、CPU16は、自動テストケース生成プログラム130の一部の処理として、図5の処理を開始する。
そしてまずステップ132で、検査対象モデル内に複数の内部構成要素が存在するか否かを判定する。本実施形態においては、内部構成要素とは、サブシステムをいう。Aサブシステム20は、A−2サブシステム40、および、上記テストケースの入力データを受けてA−2サブシステム40にデータを出力するA−1サブシステム30という、2つのサブシステムを有している。
検査対象モデル内に複数の内部構成要素が存在する場合、それら内部構成要素の境界(具体的には、A−1サブシステム30とA−2サブシステム40との間の境界70)を特定してRAM13に記録し、続いてステップ134を実行する。
検査対象モデル内に複数の内部構成要素が存在しない場合、続いてステップ138で、検査対象モデル全体を1つの単位として、まとめてテストケース生成処理を行い、それによって得たテストケースをHDD15に記録する。
例えば、Simulink Design Verifier(登録商標)、T−VEC(登録商標)等の既存のテストケース生成プログラムに、検査対象モデル全体、および、検査項目55、および検査項目55における目標値を引数として渡すことで、検査項目55からAサブシステム20全体を逆算してテストケースを生成させる。
ステップ134では、RAM13に記録された境界70のデータによって分けられた複数の内部構成要素のうち、検査項目を含む内部構成要素のみを対象として、テストケース生成処理を行い、それによって得たテストケースをRAM13に記録する。
具体的には、A−1サブシステム30およびA−2サブシステム40のうち、検査項目55を含むA−2サブシステム40を1つの単位として、まとめてテストケース生成処理を行う。
例えば、上述の既存のテストケース生成プログラムに、A−2サブシステム40、検査項目55、および検査項目55における目標値を引数として渡すことで、検査項目55からA−2サブシステム40を逆算してテストケースを生成させる。
これによって、検査項目55における目標値を実現することのできる値として、入力ブロック41、42における入力データ(すなわち境界70におけるA−1サブシステム30からの出力データ)の設定値が決まる。
図6に、A−2サブシステム40に対するテストケースの一例を表形式で示す。この例では、検査項目55における目標値を実現することのできる2つの入力In1、In2に対するテストケースとして、2種類(すなわち、テストケース1およびテストケース2)が算出されている。
続いてステップ136では、図7に示すように、ステップ134で決定された設定値を新たな目標値としてRAM13に記録し、さらに、RAM13中の境界70を新たな検査項目としてRAM13に記録する。
続いてステップ138では、Aサブシステム20全体を対象とし、かつ、直前のステップ136でRAM13に記録された新たな検査項目70および新たな目標値を実現するためのテストケースの生成処理を行い、それによって得たテストケースをHDD15に記録する。
例えば、上述の既存のテストケース生成プログラムに、Aサブシステム20全体、新たな検査項目70、および新たな検査項目70における新たな目標値を引数として渡すことで、検査項目70からAサブシステム20を逆算してテストケースを生成させる。
これによって、検査項目70における新たな目標値を実現することのできる値として、A−1サブシステム30への入力データの設定値が決まる。この設定値はまた、検査項目55における当初の目標値を実現することのできる、Aサブシステム20への入力データの設定値である。すなわち、検査項目55における目標値を実現するためのAサブシステム20のテストケースである。ステップ138の後、自動テストケース生成プログラム130の実行が終了する。
このように、CPU16は、Aサブシステム20(モデルの一例に相当する)中の比較ブロック50(1つの処理要素の一例に相当する)の出力データ(すなわち検査項目)に対して目標値が定められている場合において、当該比較ブロック50を含むA−2サブシステム40(一連の後段処理要素群の一例に相当する)とA−1サブシステム30(一連の前段処理要素群の一例に相当する)との境界を特定し(ステップ132参照)、検査項目が当該目標値となるように、当該境界におけるA−2サブシステム40に対する入力データの設定値を算出する(ステップ134参照)。
さらにCPU16は、算出した設定値を、当該境界における新たな目標値として設定し、(ステップ136参照)、さらに、境界におけるAサブシステム20からの出力データを新たな検査項目として設定した上で、Aサブシステム20のテストケースを生成する。すなわち、境界におけるA−1サブシステム30からA−2サブシステム40への入力データの値が、設定した新たな目標値となるよう、テストケースを生成する(ステップ138参照)。
このようにすることで、Aサブシステム20中のテストケースを受け付ける部分から、検査項目55としての比較ブロック50までが、検査項目55を含むA−2サブシステム40と、データの入出力の観点からそれよりも前段にあるA−1サブシステム30に分けられる。
そして、検査項目55を含むA−2サブシステム40という、Aサブシステム20の一部分を対象として、目標値を実現するための境界における入力データの設定値(A−2サブシステム40についてのテストケースでもある)を先に算出し、その後に、この設定値を目標値としてAサブシステム20のテストケースが算出される。したがって、テストケースの算出が複数段階(具体的には2段階)に分けられ、各段階におけるテストケース算出対象の複雑度が低下する。
このように、より複雑度の低い単位でテストケース生成を行った結果を利用することにより、カバレッジ率の低下を抑えることができる。すなわち、カバレッジ性能を向上できる。
また、CPU16は、ユーザによってAサブシステム20に記述されたAサブシステム20中の非関数サブシステムの区分けのデータに基づいて、境界を決定するようになっている。このように、あらかじめ記述されたサブシステムの区切りに基づいて境界を決定するので、境界の決定が容易になる。
(他の実施形態)
以上、本発明の実施形態について説明したが、本発明の範囲は、上記実施形態のみに限定されるものではなく、本発明の各発明特定事項の機能を実現し得る種々の形態を包含するものである。
例えば、上記実施形態においては、検査対象モデルとしては、2つのサブシステム30、40を含むAサブシステム20が例示されている。しかし、検査対象モデルは、3つ以上のサブシステムを含むようになっていてもよい。
例えば、検査対象モデルにおいてサブシステムが直列に3つ以上連結されている場合には、CPU16は、図5のステップ132では、それらサブシステム間の複数の境界を特定してRAM13に記録するようになっていてもよい。
この場合CPU16は、ステップ134、136では、まず、検査項目55を含む第1サブシステムについて、当該検査項目55における目標値を実現する第1テストケースを算出する。続いて、第1サブシステムの直接の前段となる第2サブシステムについて、当該第2サブシステムから第1サブシステムへの出力データを検査項目とし、その検査項目における第1テストケースを目標値として、第2テストケースを算出する。続いて、第2サブシステムの直接の前段となる第3サブシステムについて、当該第3サブシステムから第2サブシステムへの出力データを検査項目とし、その検査項目における第2テストケースを目標値として、第3テストケースを算出していく。
このように、各サブシステムを単位として、連続的に後段のサブシステムから前段のサブシステムへと、それぞれのサブシステムのテストケースを算出していくことで、最終的に検査対象モデル全体についてのテストケースを算出するようになっていてもよい。
また、後段処理要素群と前段処理要素群との境界の区切りの単位となる内部構成素は、サブシステムでなくともよい。例えば、CPU16は、特定の種類のブロックの出力部分(または入力部分)を境界とするようになっていてもよい。また例えば、CPU16は、ユーザが入力装置12を用いた手順で指定したモデル中の位置を境界として決定するようになっていてもよい。
また、上記の実施形態において、CPU16がプログラムを実行することで実現している各機能は、それらの機能を有するハードウェア(例えば回路構成をプログラムすることが可能なFPGA)を用いて実現するようになっていてもよい。
本発明の実施形態に係るパーソナルコンピュータ1の構成図である。 モデルベース開発プログラム100の構成図である。 Aサブシステム20の構成を示す図である。 A−2サブシステム40の内部構成を示す図である。 自動テストケース生成プログラム130のフローチャートである。 作成されたテストケースの一例を示す図表である。 作成されたテストケースを境界70に適用する様子を示す図である。 テストケースを生成する従来のソフトウェアの典型的機能を示す図である。
符号の説明
1 パーソナルコンピュータ
12 入力装置
13 RAM
15 HDD
16 CPU
20 Aサブシステム
30 A−1サブシステム
40 A−2サブシステム
41〜53、81〜93 ブロック
55、95 検査項目
70 境界
100 モデルベース開発プログラム
110 自動コード生成プログラム
130 自動テストケース生成プログラム
140 Cソースコード実行プログラム
150 モデルシミュレーションプログラム
210 モデル
220 Cソースコード
230 テストケース

Claims (5)

  1. 入力データに応じた制御処理を複数の処理要素間のデータの入出力の仕様として記述するモデルの前記制御処理を実行するモデル実行装置用に、前記入力データとして用いるためのテストケースを生成するテストケース生成装置であって、
    前記モデル中の1つの処理要素の出力データに対して目標値が定められている場合、前記1つの処理要素を含む一連の後段処理要素群と、前記テストケースの入力データを受けて前記後段処理要素群にデータを出力する一連の前段処理要素群との境界を決定する境界決定手段(132)と、
    前記1つの処理要素の出力データが前記目標値となるように、前記境界における前記後段処理要素群に対する入力データの設定値を算出する部分算出手段(134)と、
    前記部分算出手段(134)が算出した前記設定値を、前記境界における新たな目標値として設定する設定手段(136)と、
    前記境界における前記前段処理要素群から前記後段処理要素群への入力データの値が、前記設定手段(136)が設定した前記新たな目標値となるよう、前記テストケースを生成する生成手段(138)と、を備えたことを特徴とするテストケース生成装置。
  2. 前記境界決定手段(132)は、ユーザによって前記モデルに記述された前記モデル中の区分けのデータに基づいて、前記境界を決定することを特徴とする請求項1に記載のテストケース生成装置。
  3. 前記境界決定手段(132)は、決定した前記境界のデータを記憶媒体(13、15)に記録し、
    前記部分算出手段(134)は、前記記憶媒体(13、15)に記録された前記境界のデータに基づいて前記設定値を算出し、算出した設定値を記憶媒体(13、15)に記録し、
    前記設定手段(136)は、前記記憶媒体(13、15)に記録された前記設定値を前記記憶媒体(13、15)中の前記新たな目標値用のデータとして記録することで、前記設定値を前記新たな目標値として設定し、
    前記生成手段(138)は、前記記憶媒体(13、15)に記録された前記新たな目標値に基づいて、前記テストケースを生成し、生成した前記テストケースを前記記憶媒体(13、15)に記録することを特徴とする請求項1または2に記載のテストケース生成装置。
  4. 入力データに応じた制御処理を複数の処理要素間のデータの入出力の仕様として記述するモデルの前記制御処理を実行するモデル実行装置用に、前記入力データとして用いるためのテストケースを生成するテストケース生成プログラムであって、
    前記モデル中の1つの処理要素の出力データに対して目標値が定められている場合、前記1つの処理要素を含む一連の後段処理要素群と、前記テストケースの入力データを受けて前記後段処理要素群にデータを出力する一連の前段処理要素群との境界を決定する境界決定手段(132)、
    前記1つの処理要素の出力データが前記目標値となるように、前記境界における前記後段処理要素群に対する入力データの設定値を算出する部分算出手段(134)、
    前記部分算出手段(134)が算出した前記設定値を、前記境界における新たな目標値として設定する設定手段(136)、および
    前記境界における前記前段処理要素群から前記後段処理要素群への入力データの値が、前記設定手段(136)が設定した前記新たな目標値となるよう、前記テストケースを生成する生成手段(138)として、コンピュータを機能させるテストケース生成プログラム。
  5. 入力データに応じた制御処理を複数の処理要素間のデータの入出力の仕様として記述するモデルの前記制御処理を実行するモデル実行装置用に、前記入力データとして用いるためのテストケースを生成するテストケース生成方法であって、
    前記モデル中の1つの処理要素の出力データに対して目標値が定められている場合、前記1つの処理要素を含む一連の後段処理要素群と、前記テストケースの入力データを受けて前記後段処理要素群にデータを出力する一連の前段処理要素群との境界を決定する境界決定手順(132)と、
    前記1つの処理要素の出力データが前記目標値となるように、前記境界における前記後段処理要素群に対する入力データの設定値を算出する部分算出手順(134)と、
    前記部分算出手順(134)によって算出された前記設定値を、前記境界における新たな目標値として設定する設定手順(136)と、
    前記境界における前記前段処理要素群から前記後段処理要素群への入力データの値が、前記設定手順(136)によって設定された前記新たな目標値となるよう、前記テストケースを生成する生成手順(138)と、を備えたことを特徴とするテストケース生成方法。
JP2008146936A 2008-06-04 2008-06-04 テストケース生成装置、テストケース生成プログラム、およびテストケース生成方法 Withdrawn JP2009294846A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008146936A JP2009294846A (ja) 2008-06-04 2008-06-04 テストケース生成装置、テストケース生成プログラム、およびテストケース生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008146936A JP2009294846A (ja) 2008-06-04 2008-06-04 テストケース生成装置、テストケース生成プログラム、およびテストケース生成方法

Publications (1)

Publication Number Publication Date
JP2009294846A true JP2009294846A (ja) 2009-12-17

Family

ID=41542994

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008146936A Withdrawn JP2009294846A (ja) 2008-06-04 2008-06-04 テストケース生成装置、テストケース生成プログラム、およびテストケース生成方法

Country Status (1)

Country Link
JP (1) JP2009294846A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014038397A (ja) * 2012-08-10 2014-02-27 Fuji Electric Co Ltd 図式プログラムのテストデータ生成装置およびその方法、並びにプログラム
JP2014059805A (ja) * 2012-09-19 2014-04-03 Denso Corp モデルベースの制御装置用のテストケース生成装置およびテストケース生成方法
JP2017033562A (ja) * 2015-08-05 2017-02-09 ゼネラル・エレクトリック・カンパニイ 安全重視ソフトウェア開発のためのモデルベース技術および過程のためのシステムおよび方法
JP2017097862A (ja) * 2015-11-20 2017-06-01 ゼネラル・エレクトリック・カンパニイ セーフティクリティカルソフトウェア自動要求ベーステストケース生成のためのシステムおよび方法
JP2020004036A (ja) * 2018-06-27 2020-01-09 株式会社デンソー ソースコード生成装置
CN110941547A (zh) * 2019-10-12 2020-03-31 平安普惠企业管理有限公司 自动化测试用例库管理方法、装置、介质及电子设备
CN113672508A (zh) * 2021-08-17 2021-11-19 大连海事大学 一种基于风险策略和多样性策略的Simulink测试方法
CN111930091B (zh) * 2019-05-13 2024-05-17 北京新能源汽车股份有限公司 一种电动车电子控制单元的网络测试方法及装置

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014038397A (ja) * 2012-08-10 2014-02-27 Fuji Electric Co Ltd 図式プログラムのテストデータ生成装置およびその方法、並びにプログラム
JP2014059805A (ja) * 2012-09-19 2014-04-03 Denso Corp モデルベースの制御装置用のテストケース生成装置およびテストケース生成方法
JP2017033562A (ja) * 2015-08-05 2017-02-09 ゼネラル・エレクトリック・カンパニイ 安全重視ソフトウェア開発のためのモデルベース技術および過程のためのシステムおよび方法
US10346140B2 (en) 2015-08-05 2019-07-09 General Electric Company System and method for model based technology and process for safety-critical software development
JP2017097862A (ja) * 2015-11-20 2017-06-01 ゼネラル・エレクトリック・カンパニイ セーフティクリティカルソフトウェア自動要求ベーステストケース生成のためのシステムおよび方法
JP7059827B2 (ja) 2018-06-27 2022-04-26 株式会社デンソー ソースコード生成装置
JP2020004036A (ja) * 2018-06-27 2020-01-09 株式会社デンソー ソースコード生成装置
CN111930091B (zh) * 2019-05-13 2024-05-17 北京新能源汽车股份有限公司 一种电动车电子控制单元的网络测试方法及装置
CN110941547A (zh) * 2019-10-12 2020-03-31 平安普惠企业管理有限公司 自动化测试用例库管理方法、装置、介质及电子设备
CN110941547B (zh) * 2019-10-12 2024-01-16 中免日上互联网科技有限公司 自动化测试用例库管理方法、装置、介质及电子设备
CN110941547B8 (zh) * 2019-10-12 2024-03-22 中免日上互联科技有限公司 自动化测试用例库管理方法、装置、介质及电子设备
CN113672508B (zh) * 2021-08-17 2023-09-22 大连海事大学 一种基于风险策略和多样性策略的Simulink测试方法
CN113672508A (zh) * 2021-08-17 2021-11-19 大连海事大学 一种基于风险策略和多样性策略的Simulink测试方法

Similar Documents

Publication Publication Date Title
JP2006024006A (ja) テストケース生成装置、テストケース生成プログラム、モデルベース開発プログラム、ソースコード生成妥当性診断装置、ソースコード生成妥当性診断プログラム、およびモデルベース開発方法。
JP2009294846A (ja) テストケース生成装置、テストケース生成プログラム、およびテストケース生成方法
JP2009169828A (ja) テストケース生成装置及びテストケース生成プログラム
KR100937689B1 (ko) 사용자 환경 프로파일링에 기반을 두어 테스트 대상소프트웨어의 테스트를 지원하는 시뮬레이션 방법
JP2006323706A (ja) 半導体試験用プログラムデバッグ装置
JP2005078243A (ja) マイコンリソース消費見積もりプログラム、マイコンリソース消費見積もり装置、およびプログラム生成方法
JP5987189B2 (ja) テストケース自動生成装置及びテストケース自動生成プログラム
WO2016017560A1 (ja) ソフトウェア検証システムおよび制御装置
JP5811978B2 (ja) モデルベースの制御装置用のテストケース生成装置およびテストケース生成方法
JPWO2020194455A1 (ja) テストケース生成装置、テストケース生成方法、およびテストケース生成プログラム
JP2009134360A (ja) モデル検査システム、モデル検査方法およびモデル検査用プログラム
JP2015146178A (ja) テストコンテキストの生成
JP2005301568A (ja) 表示情報記憶制御装置および表示情報記憶制御プログラム
JP6723483B2 (ja) テストケース生成装置、テストケース生成方法およびテストケース生成プログラム
JP2016071883A (ja) Fpgaからリードバックするための信号の特定
JP5595304B2 (ja) プログラム試験装置、プログラム試験装置のプログラム試験方法およびプログラム試験プログラム
JP5755861B2 (ja) テストケース生成装置、テストケース生成方法およびテストケース生成プログラム
JP7059827B2 (ja) ソースコード生成装置
JP2020144509A (ja) 自動コード生成方法、及び自動コード生成プログラム
Zander-Nowicka et al. From Functional Requirements through Test Evaluation Design to Automatic Test Data Patterns Retrieval-a Concept for Testing of Software Dedicated for Hybrid Embedded Systems.
JP7084505B2 (ja) 検証装置および検証方法
JP5011221B2 (ja) コントローラ開発ツールとそれを利用して開発したモータドライブシステムを有する機器
JP6085264B2 (ja) コントローラ開発ツール
JP6668808B2 (ja) 未テスト箇所検出装置、未テスト箇所検出方法、および、プログラム
JP2022122773A (ja) 評価装置および評価方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20110906