JP2008299502A - テストケース妥当性自動検証プログラムおよびテストケース妥当性自動検証結果表示方法 - Google Patents

テストケース妥当性自動検証プログラムおよびテストケース妥当性自動検証結果表示方法 Download PDF

Info

Publication number
JP2008299502A
JP2008299502A JP2007143521A JP2007143521A JP2008299502A JP 2008299502 A JP2008299502 A JP 2008299502A JP 2007143521 A JP2007143521 A JP 2007143521A JP 2007143521 A JP2007143521 A JP 2007143521A JP 2008299502 A JP2008299502 A JP 2008299502A
Authority
JP
Japan
Prior art keywords
test case
validity
block
input
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.)
Pending
Application number
JP2007143521A
Other languages
English (en)
Inventor
Masato Kobayashi
正人 小林
Hiroyuki Ihara
博之 井原
Kenji Shibata
健志 柴田
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 JP2007143521A priority Critical patent/JP2008299502A/ja
Publication of JP2008299502A publication Critical patent/JP2008299502A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】適切にテストケース妥当性を検証することができるテストケース妥当性自動検証プログラムおよびテストケース妥当性自動検証結果表示方法を提供する。
【解決手段】複数のブロックから構成されるモデルを仕様として作成したソフトウェアに対するテストケースの妥当性を自動検証すべく、妥当性検証処理プログラム17は、モデルシミュレーションプログラム14と協動してテストケースによるモデルのシミュレーションを行って当該シミュレーションにより得られたブロックの入出力情報を用いてテストケースの妥当性を検証する。
【選択図】図2

Description

本発明は、モデルベース開発におけるソフトウェア検査でのテストケースの妥当性検証に関するものである。
実行可能であるモデルを参照して、自動または手動でCソースコードを作成するモデルベース開発において、作成したCソースコードの検査に対して、自動あるいは手動でテストケースを作成している。そのテストケースの妥当性を検証する方法として、図14に示すように、カバレッジ(ソフトウェア検査におけるパス網羅性の指標)を基準とする手法がある(例えば、特許文献1)。
カバレッジ100%を基準とすれば、ソフトウェア上で分岐しうるすべてのパスを網羅的に確認できるため、有効な手段として利用されている。
特開2005−301568号公報
しかし、カバレッジ100%のみを基準とするだけでは、ソフトウェアのバグを発見できない場合がある。
具体例として、図15に示す検査対象ブロックを用い、Abs(絶対値)ブロック、スイッチブロック(分岐)を検査対象としたテストケースを挙げる。
上記テストケースの結果を図16に示す。このテストケースはAbsブロックに対してカバレッジは100%である。しかしながら、テストケース1において、入力2がオフとなっているため、観測可能ポイント(図15参照)で負の入力に対する確認ができない。
また、上記テストケースはスイッチブロックに対してカバレッジは100%であるが、テストケース2において、切り換える値が共に4であるため、観測可能ポイントで切り換わりを確認することができない。
即ち、図15において、Absブロックについて「正/負」の値を入力すればAbsブロックのカバレッジは100%となる。また、スイッチブロックについて「オン/オフ」の値を入力すればスイッチブロックのカバレッジは100%となる。しかしながら、テストケース1,2に対し、観測可能ポイントの値から、Absブロックの動作を確認できない、また、スイッチブロックの切り換わりが確認できない。
以上より、カバレッジ100%を満足するだけでは、有効なテストケースであるとは言えない。
本発明は、上記問題点に着目してなされたものであり、その目的は、適切にテストケース妥当性を検証することができるテストケース妥当性自動検証プログラムおよびテストケース妥当性自動検証結果表示方法を提供することにある。
請求項1に記載の発明においては、複数のブロックから構成されるモデルを仕様として作成したソフトウェアに対するテストケースの妥当性を自動検証するプログラムであって、テストケースによるモデルのシミュレーションを行って当該シミュレーションにより得られたブロックの入出力情報を用いてテストケースの妥当性を検証することを要旨とする。
請求項1に記載の発明によれば、テストケースによるモデルのシミュレーションを行って当該シミュレーションにより得られたブロックの入出力情報を用いてテストケースの妥当性を検証することにより、ブロックのつながりを加味して適切にテストケースの妥当性を自動検証することができる。即ち、シミュレーションを実行した結果得られるブロックの入出力情報を用いるのでブロック間の入出力情報の関連性を含めて判断することができる。
請求項2に記載のように、請求項1に記載のテストケース妥当性自動検証プログラムにおいて、テストケースによるモデルのシミュレーションを通して、検査対象ブロックの出力値が観測できるポイントまで有効であるか否かにより妥当性検証を行うようにすると、モデルのシミュレーションを実施することにより、検査対象ブロックから観測可能ポイントまでのデータの流れを確認することができる。
請求項3に記載のように、請求項1に記載のテストケース妥当性自動検証プログラムにおいて、テストケースによるモデルのシミュレーションを通して、検査対象ブロックである分岐を伴うブロックに対する入力値が異なるか否かにより妥当性検証を行うようにすると、モデルのシミュレーションにより分岐を伴うブロックの出力を確認することができる。
請求項4に記載のように、請求項1に記載のテストケース妥当性自動検証プログラムにおいて、テストケースによるモデルのシミュレーションを通して、モデルに設定されている信号線の取り得る範囲内であるか否かにより妥当性検証を行うようにすると、モデルに規定されている実環境では取り得ない範囲となるテストケースを排除することが可能となる。
請求項5に記載の発明においては、複数のブロックから構成されるモデルを仕様として作成したソフトウェアに対するテストケースの妥当性を自動検証した結果を表示する方法であって、テストケースによるモデルのシミュレーションを行って当該シミュレーションにより得られたブロックの入出力情報を用いたテストケースの妥当性検証結果をモデル上で表示するようにしたことを要旨とする。
請求項5に記載の発明によれば、請求項1に記載の発明の作用効果に加え、テストケースによるモデルのシミュレーションを行って当該シミュレーションにより得られたブロックの入出力情報を用いたテストケースの妥当性検証結果をモデル上で表示しモデルに反映することにより、モデル上でテストケースの妥当性検証結果を確認でき、これにより、修正することが可能となる。
請求項6に記載のように、請求項5に記載のテストケース妥当性自動検証結果表示方法において、テストケースの妥当性検証結果をモデル上で表示する際に、テストケースの番号も表示してもよいし、あるいは、請求項7に記載のように、請求項5に記載のテストケース妥当性自動検証結果表示方法において、テストケースの妥当性検証結果をモデル上で表示する際に、検査対象としたブロック名も表示するようにしてもよい。
以下、本発明を具体化した一実施形態を図面に従って説明する。
図1には、本実施形態に係るパーソナルコンピュータ1の構成を示す。このパーソナルコンピュータ1は、モデルベース開発の工程の各段階において用いられ、複数のブロックから構成される実行可能なモデルを仕様として作成したソフトウェアに対するテストケースの妥当性を自動検証することができるようになっている。このパーソナルコンピュータ1は、ディスプレイ2、入力装置3、RAM4、ROM5、HDD(ハードディスクドライブ)6、CPU7等から構成されている。
ディスプレイ2は、CPU7から入力される画像信号を、ユーザ(開発者)に対して映像として表示する。
入力装置3は、キーボード、マウス等から構成され、ユーザが操作することにより、その操作に応じた信号をCPU7に出力する。
RAM4は読み出し、書き込み可能な揮発性メモリであり、ROM5は読み出し専用の不揮発性メモリであり、HDD6は読み出し、書き込み可能な不揮発性メモリである。ROM5、HDD6には、CPU7が読み出して実行するプログラム等が予め記憶されている。RAM4は、CPU7がROM5、HDD6に記憶されたプログラムを実行する際に、そのプログラムを一時的に保存するための記憶領域、および作業用のデータを一時的に保存するための記憶領域として用いられる。
CPU7は、パーソナルコンピュータ1に電源が投入されることによって起動すると、ROM5から所定のブートプログラムを読み出して実行し、このブートプログラムに規定されるオペレーティングシステム、その他のプログラムをHDD6から読み出して実行することにより、起動処理を行う。起動処理以後電源が遮断されるまで、CPU7は、入力装置3からの信号、オペレーティングシステムによって予め定められたスケジュール等に基づいて、HDD6に記録されている各プログラムを当該オペレーティングシステム上のプロセスとして実行する。また、上記した起動処理およびプロセスにおいて、CPU7は必要に応じて入力装置3から信号の入力を受け付け、またディスプレイ2に画像信号を出力し、またRAM4、HDD6に対してデータの読み出し/書き込みの制御を行う。
パーソナルコンピュータ1のCPU7が実行するプログラムの構成を図2に示す。
CPU7は、抽出プログラム11、モデルシミュレーションプログラム14、妥当性検証処理プログラム17、モデルによる妥当性検証結果表示プログラム19、表による妥当性検証結果表示プログラム20、不足テストケース抽出処理プログラム21等を実行する。これらプログラムは、ユーザが入力装置3に対して所定の操作をすることにより、または、他のプログラムから読み出されることにより、その実行が開始される。
なお、モデル収納部10、情報収納部12、テストケース収納部13、シミュレーション結果収納部15、妥当性判断基準収納部16、妥当性検証結果収納部18、テストケース不足の検査対象ブロック情報収納部22は、HDD6の記憶領域の一部である。
モデルは、図示しないモデルエディタ等のオペレーティングシステム上で実行されるプログラムをユーザが利用することにより作成され、さらに、モデル収納部10に記憶されるようになっている。モデルエディタとしては、例えばMATLAB(登録商標)上で動作するSIMULINK(登録商標)と呼ばれるソフトウェアを用いることができる。モデルは、例えば図3のごとくブロック50,60を有し、あるブロックの出力を他のブロックの入力にリンク(信号線)でつないでいる。図3においては、モデルはAbsブロック50とスイッチブロック60から構成され、詳しくは、入力1がAbsブロック50を介してスイッチブロック60のA端子に入力され、入力2がスイッチブロック60の切換端子Bに入力され、入力3がスイッチブロック60のC端子に入力され、スイッチブロック60の出力端子が観測可能ポイントとなっている。以下、図3のモデルについてテストケースの妥当性を自動検証する場合を説明する。
図2において、抽出プログラム11においてはモデル収納部10のモデルにおける検査対象ブロックの抽出、および、当該ブロックから観測可能ポイントまでのつながりを示す情報を抽出する。図3のモデルにおいては、検査対象ブロックはAbsブロック50とスイッチブロック60である。そして、図2の抽出プログラム11は情報収納部12に、モデルにおける検査対象ブロック名と、当該ブロックから観測可能ポイントまでのつながりを示す情報を収納する。
一方、モデルシミュレーションプログラム14は、モデル収納部10のモデル(図3)に対し、情報収納部12における、モデルでの検査対象ブロック名と、当該ブロックから観測可能ポイントまでのつながりを示す情報から、テストケース収納部13に用意されたテストケースを用いてモデルのシミュレーションを実行する。図3においては、入力1,2,3として所定の値を設定して(テストケースを用いて)シミュレーションする。このテストケースによるモデルのシミュレーションの実行により、シミュレーション結果としてブロックの入出力情報が得られる(後記する図6参照)。シミュレーション結果は図2のシミュレーション結果収納部15に収納する。
妥当性判断基準収納部16には妥当性判断基準が格納されている。図4には図3のモデルについての妥当性判断基準を示す。図4において、Absブロック50についての判断基準として、「入力値に正または負が入力されるか」という基準が用意されている。これを、判断基準(I)という。また、スイッチブロック60についての判断基準として、「入力Bがオンまたはオフか」という基準が用意されている。これを、判断基準(II)という。また、スイッチブロック60についての判断基準として、「目的の入力(AまたはB)側に切り換えられるように入力Bがなっているか」という基準が用意されている。これを、判断基準(III)という。また、スイッチブロック60についての判断基準として、「入力Aと入力Cとは異なるか」という基準が用意されている。これを、判断基準(IV)という。
図2の妥当性検証処理プログラム17は、シミュレーション結果収納部15のシミュレーション結果と、情報収納部12のモデルにおける検査対象ブロック名と、当該ブロックから観測可能ポイントまでのつながりを示す情報と、妥当性判断基準収納部16の妥当性判断基準から、テストケースの妥当性検証処理を行う。このとき、シミュレーションの実行により得られたブロックの入出力情報を用いてテストケースの妥当性が検証される。妥当性検証結果は妥当性検証結果収納部18に収納する(後記する図6の「可観測性」、「パス識別性」、「妥当性検証結果」を参照)。
図2のモデルによる妥当性検証結果表示プログラム19は、妥当性検証結果収納部18の妥当性検証結果によりモデルによる妥当性検証結果表示を行う。また、表による妥当性検証結果表示プログラム20は、妥当性検証結果収納部18の妥当性検証結果により表による妥当性検証結果表示を行う。モデルによる妥当性検証結果表示と表による妥当性検証結果表示は、図1のディスプレイ2を用いて行われる(画面表示される)。
図2における妥当性検証処理プログラム17の処理の流れを図5に示す。図5の処理は各検査対象ブロックについて各テストケース毎に実施される。
図3のモデルにおいて、まず、Absブロック50を検査対象ブロックとして図5の処理が実行される。
図5において、ステップ101で検査対象ブロックについての関連するデータを収集する。具体的には、図3におけるAbsブロック50を検査対象ブロックとして、Absブロック50から観測可能ポイントまでのつながりを示す情報と、図4におけるAbsブロック50についての判断基準(I)を収集する。
そして、図5のステップ102でテストケースのデータが検査対象ブロックに対して有効なデータであるか否か判定する。具体的には、図3のAbsブロック50を検査対象ブロックとしたとき、Absブロックに対する入力が「0」であると、図4の判断基準(I)を用いて入力値が正でも負でもないので条件を満たさず、無効なデータであると判定される。
この図5のステップ102において対象ブロックに対して有効なデータでないと、ステップ111に移行して無効なテストケースと判定する(検査対象を確認できない)。
一方、図5のステップ102において対象ブロックに対して有効なデータであると、ステップ103で接続先のブロックを探索する。具体的には、図3におけるAbsブロック50に対する接続先のスイッチブロック60を検索する。続いて、図5のステップ104でブロック(接続先ブロック)についての関連するデータを収集する。具体的には、図4におけるスイッチブロック60についての判断基準(III),(IV)を収集する。
引き続き、図5のステップ105で出力データは観測可能か否か判定する。つまり、接続先ブロックであるスイッチブロック60から前段の検査対象ブロックであるAbsブロック50の出力データが観測できるかどうかを判断する。具体的には、図3のスイッチブロック60について図4の判断基準(III)を用いて図3の入力A側に切り換えられるように入力Bがなっているかを判定する。図3において、スイッチブロック60の入力Bがオン側となっているとAbsブロック50の出力データは観測可能であり(可観測性を満たし)、また、入力Bがオフ側となっているとAbsブロック50の出力データは観測可能でない(可観測性を満たさない)ことになる。図5のステップ105において条件を満たさないと(出力データは観測可能でないと)、ステップ110に移行して無効なテストケースと判定する(検査対象を確認できるが可観測性を満たさない)。
一方、図5のステップ105において出力データは観測可能であると(可観測性を満たすと)、ステップ106でパス識別可能か否か判断する。具体的には、図3のスイッチブロック60について図4の判断基準(IV)を用いて図3の入力Aと入力Cとは異なるか否かを判定する。図3において、スイッチブロック60の入力Aと入力Cが異なればパス識別可能であり(パス識別性を満たし)、入力Aと入力Cが同じであればパス識別可能でない(パス識別性を満たさない)ことになる。図5のステップ106において判断基準(IV)の条件を満たさないと(パス識別可能でないと)、図5のステップ109に移行して無効なテストケースと判定(検査対象を確認できるが、パス識別性を満たさない)と判定する。
図5のステップ106においてパス識別可能であるとステップ107に移行する。ステップ107で、出力が観測可能ポイントか判定する。即ち、接続先が出力ポートなどの外部に値を出力するブロックかどうかを評価する。具体的には、図3のモデルでは、スイッチブロック60の出力は観測可能ポイントとなっている。そして、条件を満たすと(出力が観測可能ポイントとなっていると)、図5のステップ108に移行して有効なテストケースと判定する(検査対象を確認でき、可観測性、パス識別性を満たす)。
ステップ107において出力が観測可能ポイントでないとステップ103に戻り、ステップ103で更なる接続先を検索し、ステップ104,105,106,107の処理を実行して出力が観測可能ポイントとなるまでこれを繰り返す。
よって、図5のステップ103→104→105→107→103→…を繰り返すことにより、テストケースによるモデルのシミュレーションを通して、検査対象ブロックとしてのAbsブロック50の出力値が観測できるポイント(観測可能ポイント)まで有効であるか否か判定され、これにより妥当性検証が行われる。
このようにして、Absブロック50を検査対象ブロックとし、かつ、各テストケースについての図5の処理が行われる。
次に、図3のモデルにおいて、スイッチブロック60を検査対象ブロックとして図5の処理が実行される。
図5において、ステップ101で、図3におけるスイッチブロック60を検査対象ブロックとして、スイッチブロック60から観測可能ポイントまでのつながりを示す情報と、図4におけるスイッチブロック60についての判断基準(II)を収集する。
そして、図5のステップ102で、図3のスイッチブロック60の入力Bがオンまたはオフであるか否か判定する。この図5のステップ102において対象ブロックに対して有効なデータでないと、ステップ111に移行して無効なテストケースと判定する(検査対象を確認できない)。
一方、図5のステップ102において対象ブロックに対して有効なデータであると、ステップ103で、図3におけるスイッチブロック60には接続先が無く、図5のステップ104において図4におけるスイッチブロック60についての判断基準(III),(IV)を収集する。
図5のステップ105で、図3のスイッチブロック60について図4の判断基準(III)を用いて目的の入力(AまたはC)側に切り換えられるように入力Bがなっており、これにより目的の入力(AまたはC)に対応する出力が得られるか判定する。図5のステップ105において条件を満たさないと(出力データは観測可能でないと)、ステップ110に移行して無効なテストケースと判定する(検査対象を確認できるが可観測性を満たさない)。
一方、図5のステップ105において出力データは観測可能であると、ステップ106でパス識別可能か否か、即ち、分岐を伴うブロックとしてのスイッチブロックにおいてA,Cに入力する値が異なるか否かを判断する。具体的には、図3のスイッチブロック60について図4の判断基準(IV)を用いて図3の入力Aと入力Cとは異なるか否かを判定する。そして、判断基準(IV)の条件を満たさずパス識別可能でないとステップ109に移行して無効なテストケースと判定(検査対象を確認できるが、パス識別性を満たさない)と判定する。
図5のステップ106においてパス識別可能であるとステップ107に移行する。ステップ107で、図3のモデルでは、スイッチブロック60の出力は観測可能ポイントとなっているので、ステップ108に移行して有効なテストケースと判定する(検査対象を確認でき、可観測性、パス識別性を満たす)。
このようにして、スイッチブロック60を検査対象ブロックとし、かつ、各テストケースについての図5の処理が行われる。
次に、妥当性検証処理プログラム17による妥当性検証結果を説明する。図6にはその一例を示す。
図6において、テストケースの番号と、検査対象ブロック名と、検査項目と、テストケースのデータと、シミュレーション結果のデータと、可観測性と、パス識別性と、トータルの妥当性検証結果を示している。図6のテストケースのデータおよびシミュレーション結果のデータの詳細について、図3のように、テストケースのデータとして、入力1,2,3を示し、また、シミュレーション結果としてAbsブロックの入力1(in1)と、スイッチブロックの入力1(in1)と、スイッチブロックの入力2(in2)と、スイッチブロックの入力3(in3)と、出力1を示している。
図6の可観測性について、図5のステップ105でYESならば「○」を付し、NOならば「×」を付している。図6のパス識別性について、図5のステップ106でYESならば「○」を付し、NOならば「×」を付している。
図6の各テストケースにおいて、トータルの妥当性検証結果として、「A」,「B」,「C」,「D」で評価している。「A」は有効なテストケースと判定した場合(検査対象を確認でき、可観測性、パス識別性を満たす場合)、即ち、図5のステップ108の処理である。図6の「B」は無効なテストケースと判定した場合(検査対象を確認できるが、パス識別性を満たさない場合)、即ち、図5のステップ109の処理である。図6の「C」は無効なテストケースと判定した場合(検査対象を確認できるが、可観測性を満たさない場合)、即ち、図5のステップ110の処理である。図6の「D」は無効なテストケースと判定した場合(検査対象を確認できない場合)、即ち、図5のステップ111の処理である。
図6において、具体的には、テストケース番号1〜7については、次のようになる。
[テストケース番号1]:
検査対象ブロック名が「Absブロック」、検査項目が「負の値」、テストケースでの入力1が「−5」、入力2が「オン」、入力3が「3」である。シミュレーション結果は、Absブロックの入力1が「−5」、スイッチブロックの入力1が「5」、スイッチブロックの入力2が「オン」、スイッチブロックの入力3が「3」、出力1が「5」である。そして、図5のフローにおいてステップ101→102→103→104→105→106→107→108となり、これにより、可観測性が「○」、パス識別性が「○」、妥当性検証結果が「A」となる。
[テストケース番号2]:
検査対象ブロック名が「Absブロック」、検査項目が「負の値」、テストケースでの入力1が「−5」、入力2が「オフ」、入力3が「3」である。シミュレーション結果は、Absブロックの入力1が「−5」、スイッチブロックの入力1が「5」、スイッチブロックの入力2が「オフ」、スイッチブロックの入力3が「3」、出力1が「3」である。そして、図5のフローにおいてステップ101→102→103→104→105→110となり、これにより、可観測性が「×」、パス識別性が「−」(即ち、可観測性が無いのでパス識別性を判断しない)、妥当性検証結果が「C」となる。
[テストケース番号3]:
検査対象ブロック名が「Absブロック」、検査項目が「負の値」、テストケースでの入力1が「−5」、入力2が「オン」、入力3が「5」である。シミュレーション結果は、Absブロックの入力1が「−5」、スイッチブロックの入力1が「5」、スイッチブロックの入力2が「オン」、スイッチブロックの入力3が「5」、出力1が「5」である。そして、図5のフローにおいてステップ101→102→103→104→105→106→109となり、これにより、可観測性が「○」、パス識別性が「×」、妥当性検証結果が「B」となる。
[テストケース番号4]:
検査対象ブロック名が「Absブロック」、検査項目が「正の値」、テストケースでの入力1が「0」、入力2が「オン」、入力3が「3」である。シミュレーション結果は、Absブロックの入力1が「0」、スイッチブロックの入力1が「0」、スイッチブロックの入力2が「オン」、スイッチブロックの入力3が「3」、出力1が「0」である。そして、図5のフローにおいてステップ101→102→111となり、これにより、可観測性が「−」、パス識別性が「−」、妥当性検証結果が「D」となる。
[テストケース番号5]:
検査対象ブロック名が「Absブロック」、検査項目が「正の値」、テストケースでの入力1が「5」、入力2が「オン」、入力3が「3」である。シミュレーション結果は、Absブロックの入力1が「5」、スイッチブロックの入力1が「5」、スイッチブロックの入力2が「オン」、スイッチブロックの入力3が「3」、出力1が「5」である。そして、図5のフローにおいてステップ101→102→103→104→105→106→107→108となり、これにより、可観測性が「○」、パス識別性が「○」、妥当性検証結果が「A」となる。
[テストケース番号6]:
検査対象ブロック名が「スイッチブロック」、検査項目が「オン側」、テストケースでの入力1が「1」、入力2が「オン」、入力3が「2」である。シミュレーション結果は、Absブロックの入力1が「1」、スイッチブロックの入力1が「1」、スイッチブロックの入力2が「オン」、スイッチブロックの入力3が「2」、出力1が「1」である。そして、図5のフローにおいてステップ101→102→103→104→105→106→107→108となり、これにより、可観測性が「○」、パス識別性が「○」、妥当性検証結果が「A」となる。
[テストケース番号7]:
検査対象ブロック名が「スイッチブロック」、検査項目が「オフ側」、テストケースでの入力1が「3」、入力2が「オフ」、入力3が「4」である。シミュレーション結果は、Absブロックの入力1が「3」、スイッチブロックの入力1が「3」、スイッチブロックの入力2が「オフ」、スイッチブロックの入力3が「4」、出力1が「4」である。そして、図5のフローにおいてステップ101→102→103→104→105→106→107→108となり、これにより、可観測性が「○」、パス識別性が「○」、妥当性検証結果が「A」となる。
このようにして、テストケース妥当性自動検証プログラム(妥当性検証処理プログラム17)はモデルシミュレーションプログラム14と協動して、テストケースによるモデルのシミュレーションを行って当該シミュレーションにより得られたブロックの入出力情報を用いてテストケースの妥当性を検証する。これによって、テストケースによるモデルのシミュレーションを行って当該シミュレーションにより得られたブロックの入出力情報を用いてテストケースの妥当性を検証することにより、ブロックのつながりを加味して適切にテストケースの妥当性を自動検証することができる。即ち、テストケースによるモデルのシミュレーションを行ってそのシミュレーション結果を解析することにより、カバレッジだけでなく、ブロックの入出力情報の関連性等を考慮したテストケースの妥当性を自動検証することが可能となる。
図2における、表による妥当性検証結果表示プログラム20の実行結果として、表による妥当性検証結果表示の一例を、図7に示す。図7においては、図6でのテストケースの番号と、検査対象ブロック名と、検査項目と、テストケースでの入力1,2,3と、トータルの妥当性検証結果を表示している。
図2における、モデルによる妥当性検証結果表示プログラム19の実行結果として、モデルによる妥当性検証結果表示の一例を、図8に示す。図8においては、図6で妥当性検証結果が「C」となったテストケース番号2を表示している。図8において太い線で示す信号線は、選択したテストケースを入力した際の有効なパスを表す。また、信号線上の数値は、選択したテストケースにおける信号線の値を表す。なお、選択したテストケースにおいて有効なパスを表す際に、他の線とは異なる色にて示すようにしてもよく、具体的には、有効なパスを赤色で示し、その他のパスを黒色で示すようにしてもよい(赤い信号線にて、選択したテストケースにおいて有効なパスを表すようにしてもよい)。また、図8において符号70に示す欄において、テストケース番号(=「2」)と、検査対象ブロック名(=Absブロック)と、検査項目(=負の値)と、妥当性検証結果(=C)と、を表示している。
このように、テストケースの妥当性検証結果をモデル上で表示するための結果表示手段(図2のモデルによる妥当性検証結果表示プログラム19)を有しており、これにより、テストケースの妥当性の自動検証結果をモデルに反映することにより、モデル上でテストケースの妥当性検証結果を確認(視認)できる。具体的には、不適(NG)となった検査対象ブロックに対して、モデル上で検査対象ブロック名、テストケース入力ポイントから観測可能ポイントまでの有効パス、信号線の値を表示することにより不適となった原因(図8のスイッチブロックがオフ側になっていること)が明確となり、テストケースの修正(図8の入力2をオンに直すこと)を容易にすることが可能となる。また、例えば、すでにすべての検査対象ブロックに対してテストケースが存在するモデルに対して、そのモデルを変更した場合に、変更後のモデルに対して、変更前のテストケースを入力し、その妥当性検証結果から、有効な(変更後のモデルでも使用できる)テストケースを特定でき、テストケースの再利用性を向上させることが可能となる。
さらに、上述の「テストケースの可観測性」および「テストケースのパス識別性」について、より詳しく説明する。
具体例として、図9に示すように、Abs(絶対値)ブロック、スイッチブロック(分岐)を検査対象としたテストケースを挙げる。図10は、テストケースにおける可観測性、パス識別性情報を追加した例を示す。
図9,10の場合、スイッチブロックの制御入力(図9の信号B)の状態(分岐情報)と各入力ポート(図9の信号A、C)の比較結果(入力データの比較情報)のシミュレーション時の結果を保持し、以下のような判断により妥当性を検証する。
図10において、各テストケース(テストケース1,2,3,4)についての、入力1、入力2、入力3、分岐情報、入力データ比較結果、出力、テストケースの妥当性(Abs、Switch)を示す。
テストケース1は、スイッチブロックの検査としては有効であるが、Absブロックの検査としては、分岐情報がオフ側であるため、妥当なテストケースとはならない。また、テストケース2は、入力1が「4」、入力3が「4」であり、入力データ比較結果が同一であるため、テストケースとして妥当ではない。
一方、テストケース3,4は、両ブロックに対して妥当なテストケースである。そして、妥当なテストケースに対してカバレッジ100%を計測する。
このように、分岐情報、入力データの診断結果を用いることにより、検査対象ブロックに対するテストケースの妥当性を検証することができる。
即ち、図9において、1.シミュレーションでの入出力、2.分岐情報(可観測性を診断)、3.入力データの診断結果(パス識別性を診断)についての情報を元にパスを考慮し、テストケースの妥当性を検証する。
以上のように、テストケースによるモデルのシミュレーション実行中に、カバレッジを計測することに加え、『可観測性』、『パス識別性』の診断に必要な情報(分岐を伴う各ブロックに「分岐情報(可観測性を診断)」「入力データの比較結果(パス識別性を診断)」)を保持することよって、各テストケースに対して入力から観測可能ポイントまでのパス遷移を確認し、テストケースの妥当性を検証する。
なお、分岐を伴うブロックとして、以下のものを挙げることができる。
・SIMULINK(登録商標)におけるスイッチブロック、マルチポートスイッチブロック、Enabled Subsystemなど
観測可能ポイントとして、以下のものを挙げることができる。
・出力ポート、データストアメモリなど
さらに、図2においてテストケース妥当性検証結果に基づいて、不足テストケース抽出処理プログラム21は次のように処理する。妥当性検証結果収納部18の妥当性検証結果と、情報収納部12の情報と、妥当性判断基準収納部16の妥当性判断基準から、不足テストケース抽出処理を行う。この不足テストケースの抽出結果は、テストケース不足の検査対象ブロック情報収納部22に格納する。そして、モデルによる妥当性検証結果表示プログラム19や表による妥当性検証結果表示プログラム20により表示される。これによって、情報収納部12の情報(検査対象ブロック名と、当該ブロックから観測可能ポイントまでのつながりを示す情報)と、妥当性判断基準収納部16における検査対象ブロックに対する妥当性判断基準情報と、妥当性検証結果収納部18における妥当性検証結果情報から、モデルに対するテストケースとして不足している箇所が判定でき、さらに、妥当性判断基準に基づき、不足しているテストケースの作成を補助することが可能となる。その結果、不足したテストケースを補うのを容易にすることが可能となる。
上記実施形態によれば、以下のような効果を得ることができる。
(1)図2に示すごとく、テストケース妥当性自動検証プログラムとしての妥当性検証処理プログラム17において、モデルシミュレーションプログラム14との協動により、テストケースによるモデルのシミュレーションを行って当該シミュレーションにより得られたブロックの入出力情報を用いてテストケースの妥当性を検証する。これにより、ブロックのつながりを加味して適切にテストケースの妥当性を自動検証することができる。つまり、テストケースを検査対象ソフトウェアではなく、モデルに入力して、シミュレーション結果を解析することにより、カバレッジだけでなく、ブロックの入出力情報の関連性を考慮して適切にテストケースの妥当性を自動検証することができる。即ち、実行可能であるモデルを参照してCソースコードを作成するモデルベース開発において、作成した検査対象ソフトウェアに対しテストケースを入力するのではなくモデルに入力して、シミュレーション結果を解析することにより、適切にテストケースの妥当性を自動検証することができる。
詳しくは、図16の場合、テストケースはAbsブロックに対してカバレッジは100%であるが、テストケース1において、入力2がオフとなっているため、観測可能ポイントで負の入力に対する確認ができないことを考慮して、ある検査項目に対して、観測可能ポイントまでパスが有効であることに着目する概念として、「可観測性」を用いる。
また、図16の場合、テストケースはスイッチブロックに対してカバレッジは100%であるが、テストケース2において、切り換える値が共に4であるため、観測可能ポイントで切り換わりを確認することができないことを考慮して、ある検査項目に対して、切り換える値が同じでないことに着目する概念として、「パス識別性」を用いる。そして、本実施形態では、図11に示すように、カバレッジに加え、「可観測性」「パス識別性」という概念を取り入れ、モデルのシミュレーションを通して、各ブロックの入出力をもとにパスを確認することにより、テストケースの妥当性を検証する。
(2)「可観測性」に関して、図5のステップ103→104→105→107→103→…を繰り返すことにより、テストケースによるモデルのシミュレーションを通して、検査対象ブロックの出力値が観測できるポイントまで有効であるか否かによりテストケースの可観測性を考慮した妥当性検証を行うようにしたので、モデルのシミュレーションを実施することにより、検査対象ブロックから観測可能ポイントまでのデータの流れを確認することができる。換言すると、検査対象ブロック外のパスから出力されたデータが観測可能ポイントにつながるテストケースを排除することが可能となる。
(3)「パス識別性」に関して、図5のステップ106の処理を実行することにより、テストケースによるモデルのシミュレーションを通して、検査対象ブロックである分岐を伴うブロックに対する入力値が異なるか否かによりテストケースのパス識別性を考慮した妥当性検証を行うようにしたので、モデルのシミュレーションにより分岐を伴うブロックの出力を確認することができる(モデルのシミュレーションにより分岐しうるすべてのパスの演算結果を確認することができる)。換言すると、検査対象ブロックの出力が、他の分岐パスでの出力に対して同一ではない値であることを確認でき、同一な値をとるテストケースを排除することが可能となる。
(4)複数のブロックから構成されるモデルを仕様として作成したソフトウェアに対するテストケースの妥当性を自動検証した結果を表示する方法において(モデルによる妥当性検証結果表示プログラム19を用いた結果表示方法として)、テストケースによるモデルのシミュレーションを行って当該シミュレーションにより得られたブロックの入出力情報を用いたテストケースの妥当性検証結果を、図8に示すようにモデル上で表示するようにした。よって、テストケースによるモデルのシミュレーションを行った結果を解析することによるテストケースの妥当性の自動検証結果をモデルに反映することにより、モデル上でテストケースの妥当性検証結果を確認(視認)でき、これにより、テストケースの修正、追加をすることが可能となる。
(5)モデルによる妥当性検証結果表示プログラム19は、図8のように、テストケースの妥当性検証結果をモデル上で表示する際に、テストケースの番号も表示するようにした(図8では「No2」)。また、テストケースの妥当性検証結果をモデル上で表示する際に、検査対象としたブロック名も表示するようにした(図8では「Absブロック」)。これにより、不適となったテストケース番号や検査対象ブロック名を容易に知ることができる。
なお、前記実施形態は以下のように変更してもよい。
テストケースによるモデルのシミュレーションを通して、モデルに設定されている信号線の取り得る範囲内であるか否かにより妥当性検証を行うようにしてもよい。これを、図12,13を用いて具体例を挙げながら説明する。
図12においてはAbsブロック80と乗算ブロック81と比較ブロック82とスイッチブロック83とを有し、乗算ブロック81で入力2と入力3を乗算し、比較ブロック82において乗算ブロック81の出力が「100」以下であるとスイッチブロック83をオフ側に、また、乗算ブロック81の出力が「100」より大きいとスイッチブロック83をオン側にする。スイッチブロック83がオフ側のときは入力4がスイッチブロック83を通して出力され、スイッチブロック83がオン側のときは入力1がAbsブロック80を介してスイッチブロック83を通して出力される。
スイッチブロック83の検査では、入力2,3の値を調整して図13のような、カバレッジを満たすテストケースを作成する。しかし、実環境における入力2,3の取り得る範囲に、「0≦入力2≦2、0≦入力3≦30」という制約がある場合、「(入力2)×(入力3)≧100」が成立することはない。そのため、スイッチブロック83のオン側は、実環境では通り得ないパスとなる。
このように、ブロックの入力値の取り得る範囲をモデル上で設定した上で、テストケースの妥当性検証処理を実施することにより、図12の比較ブロック82の入力値が図13のテストケース1では「102」となり、またテストケース2では「100」となり、61以上となっている。つまり、シミュレーションによるブロックの入出力情報としての値、即ち、図12の比較ブロック82の入力値が61以上か否か判定する。そして、図13のように取り得ない範囲のテストケース1,2では妥当性検証結果(判定)として「×」となる。それゆえ、取り得ない範囲のテストケースを排除することができる。また、実環境では通り得ないパスを発見することが可能となる。
以上のように、モデルに規定されている実環境では取り得ない範囲となるテストケースを排除することが可能となるため、実環境では通り得ないパスを発見することが可能となる。
本実施形態に係るパーソナルコンピュータの構成を示す図。 パーソナルコンピュータのCPUが実行するプログラムの構成図。 説明のために用いたモデル図。 妥当性判断基準を示す図。 妥当性検証処理プログラムの処理の流れを示す図。 妥当性検証結果を示す図。 表による妥当性検証結果表示の一例を示す図。 モデルによる妥当性検証結果表示の一例を示す図。 検査対象ブロックを示す図。 テストケースの例を示す図。 テストケースの評価手順を示す図。 検査対象ブロックを示す図。 テストケースの例を示す図。 従来のテストケースの評価手順を示す図。 検査対象ブロックを示す図。 テストケースの例を示す図。
符号の説明
1…パーソナルコンピュータ、7…CPU、14…モデルシミュレーションプログラム、17…妥当性検証処理プログラム、19…モデルによる妥当性検証結果表示プログラム、20…表による妥当性検証結果表示プログラム。

Claims (7)

  1. 複数のブロックから構成されるモデルを仕様として作成したソフトウェアに対するテストケースの妥当性を自動検証するプログラムであって、
    テストケースによる前記モデルのシミュレーションを行って当該シミュレーションにより得られたブロックの入出力情報を用いてテストケースの妥当性を検証することを特徴とするテストケース妥当性自動検証プログラム。
  2. 請求項1に記載のテストケース妥当性自動検証プログラムにおいて、
    テストケースによるモデルのシミュレーションを通して、検査対象ブロックの出力値が観測できるポイントまで有効であるか否かにより妥当性検証を行うことを特徴とするテストケース妥当性自動検証プログラム。
  3. 請求項1に記載のテストケース妥当性自動検証プログラムにおいて、
    テストケースによるモデルのシミュレーションを通して、検査対象ブロックである分岐を伴うブロックに対する入力値が異なるか否かにより妥当性検証を行うことを特徴とするテストケース妥当性自動検証プログラム。
  4. 請求項1に記載のテストケース妥当性自動検証プログラムにおいて、
    テストケースによるモデルのシミュレーションを通して、モデルに設定されている信号線の取り得る範囲内であるか否かにより妥当性検証を行うことを特徴とするテストケース妥当性自動検証プログラム。
  5. 複数のブロックから構成されるモデルを仕様として作成したソフトウェアに対するテストケースの妥当性を自動検証した結果を表示する方法であって、
    テストケースによる前記モデルのシミュレーションを行って当該シミュレーションにより得られたブロックの入出力情報を用いたテストケースの妥当性検証結果を前記モデル上で表示するようにしたことを特徴とするテストケース妥当性自動検証結果表示方法。
  6. 請求項5に記載のテストケース妥当性自動検証結果表示方法において、
    前記テストケースの妥当性検証結果をモデル上で表示する際に、テストケースの番号も表示するようにしたことを特徴とするテストケース妥当性自動検証結果表示方法。
  7. 請求項5に記載のテストケース妥当性自動検証結果表示方法において、
    前記テストケースの妥当性検証結果をモデル上で表示する際に、検査対象としたブロック名も表示するようにしたことを特徴とするテストケース妥当性自動検証結果表示方法。
JP2007143521A 2007-05-30 2007-05-30 テストケース妥当性自動検証プログラムおよびテストケース妥当性自動検証結果表示方法 Pending JP2008299502A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007143521A JP2008299502A (ja) 2007-05-30 2007-05-30 テストケース妥当性自動検証プログラムおよびテストケース妥当性自動検証結果表示方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007143521A JP2008299502A (ja) 2007-05-30 2007-05-30 テストケース妥当性自動検証プログラムおよびテストケース妥当性自動検証結果表示方法

Publications (1)

Publication Number Publication Date
JP2008299502A true JP2008299502A (ja) 2008-12-11

Family

ID=40172991

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007143521A Pending JP2008299502A (ja) 2007-05-30 2007-05-30 テストケース妥当性自動検証プログラムおよびテストケース妥当性自動検証結果表示方法

Country Status (1)

Country Link
JP (1) JP2008299502A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017145300A1 (ja) * 2016-02-24 2017-08-31 三菱電機株式会社 テストケース生成装置及びテストケース生成プログラム
CN110941562A (zh) * 2019-12-16 2020-03-31 卡斯柯信号(北京)有限公司 测试用例的验证方法、装置及电子设备
CN114383856A (zh) * 2021-11-30 2022-04-22 江铃汽车股份有限公司 一种车辆自动测试方法、装置、存储介质及设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04133138A (ja) * 1990-09-26 1992-05-07 Hitachi Ltd システムテスト支援方法
JPH05165678A (ja) * 1991-12-12 1993-07-02 Mitsubishi Electric Corp ソフトウェア検査結果表示方法
JPH103405A (ja) * 1996-06-14 1998-01-06 Mitsubishi Electric Corp テスト支援装置
JP2000057014A (ja) * 1998-08-03 2000-02-25 Toshiba Corp テスト装置、テストケース評価装置、およびテスト結果解析装置
JP2005301568A (ja) * 2004-04-09 2005-10-27 Denso Corp 表示情報記憶制御装置および表示情報記憶制御プログラム
JP2006024006A (ja) * 2004-07-08 2006-01-26 Denso Corp テストケース生成装置、テストケース生成プログラム、モデルベース開発プログラム、ソースコード生成妥当性診断装置、ソースコード生成妥当性診断プログラム、およびモデルベース開発方法。
JP2006227958A (ja) * 2005-02-18 2006-08-31 Nomura Research Institute Ltd テストデータ生成システム及びテストデータ生成方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04133138A (ja) * 1990-09-26 1992-05-07 Hitachi Ltd システムテスト支援方法
JPH05165678A (ja) * 1991-12-12 1993-07-02 Mitsubishi Electric Corp ソフトウェア検査結果表示方法
JPH103405A (ja) * 1996-06-14 1998-01-06 Mitsubishi Electric Corp テスト支援装置
JP2000057014A (ja) * 1998-08-03 2000-02-25 Toshiba Corp テスト装置、テストケース評価装置、およびテスト結果解析装置
JP2005301568A (ja) * 2004-04-09 2005-10-27 Denso Corp 表示情報記憶制御装置および表示情報記憶制御プログラム
JP2006024006A (ja) * 2004-07-08 2006-01-26 Denso Corp テストケース生成装置、テストケース生成プログラム、モデルベース開発プログラム、ソースコード生成妥当性診断装置、ソースコード生成妥当性診断プログラム、およびモデルベース開発方法。
JP2006227958A (ja) * 2005-02-18 2006-08-31 Nomura Research Institute Ltd テストデータ生成システム及びテストデータ生成方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017145300A1 (ja) * 2016-02-24 2017-08-31 三菱電機株式会社 テストケース生成装置及びテストケース生成プログラム
JP6289778B2 (ja) * 2016-02-24 2018-03-07 三菱電機株式会社 テストケース生成装置及びテストケース生成プログラム
JPWO2017145300A1 (ja) * 2016-02-24 2018-04-12 三菱電機株式会社 テストケース生成装置及びテストケース生成プログラム
CN110941562A (zh) * 2019-12-16 2020-03-31 卡斯柯信号(北京)有限公司 测试用例的验证方法、装置及电子设备
CN110941562B (zh) * 2019-12-16 2023-10-31 卡斯柯信号(北京)有限公司 测试用例的验证方法、装置及电子设备
CN114383856A (zh) * 2021-11-30 2022-04-22 江铃汽车股份有限公司 一种车辆自动测试方法、装置、存储介质及设备

Similar Documents

Publication Publication Date Title
JP2006024006A (ja) テストケース生成装置、テストケース生成プログラム、モデルベース開発プログラム、ソースコード生成妥当性診断装置、ソースコード生成妥当性診断プログラム、およびモデルベース開発方法。
JP2006244073A (ja) 半導体設計装置
JP2010518382A5 (ja)
JP2007012003A (ja) フィーチャ指向ソフトウェア製品ラインの開発環境を提供するシステム
WO2012023296A1 (ja) 制御プログラム生成装置、制御プログラム生成プログラム、及び制御プログラム生成方法
US20090187892A1 (en) Apparatus and program for test case generation
US9880921B2 (en) Analytic and layer-based augmentation of code reviews
JP2008310663A (ja) 仕様検証プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、仕様検証装置、および仕様検証方法
JP2017084082A (ja) シミュレーション装置、試験シナリオファイル作成方法、及び試験シナリオファイルを用いた試験方法
CN106462405A (zh) 使用活动场所的互动学习工具
JP2009176186A (ja) プログラムテスト装置、およびプログラム
JP2008299502A (ja) テストケース妥当性自動検証プログラムおよびテストケース妥当性自動検証結果表示方法
CN101551773B (zh) 符号错误和赋值截断的二进制漏洞检测定位装置
US6643769B1 (en) System and method for enabling selective execution of computer code
CN113535539A (zh) 游戏编辑中调试方法、装置、设备及存储介质
CN107885493B (zh) 程序制作支持方法及程序制作支持装置
JP4215255B2 (ja) デグレード確認検査方法、デグレード確認検査システム、およびそのためのプログラム
JPWO2018154657A1 (ja) 等価性検証装置および等価性検証プログラム
CN115563008A (zh) 代码覆盖率检测系统、方法、装置和存储介质
JP2005301568A (ja) 表示情報記憶制御装置および表示情報記憶制御プログラム
JP2021117666A (ja) コード検査ツール、コード検査方法
JP2008310513A (ja) プログラム検査装置
JP6771664B2 (ja) 試験装置、試験システム、試験方法、および、プログラム
JP6878244B2 (ja) 運転操作評価システム
JP7363164B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090609

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110906

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120104