(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】特表2015-526826(P2015-526826A)
(43)【公表日】2015年9月10日
(54)【発明の名称】ソフトウェア検証用の状態ベースのテストケース生成のためのシステム及び方法
(51)【国際特許分類】
G06F 11/28 20060101AFI20150814BHJP
【FI】
G06F11/28 340A
【審査請求】未請求
【予備審査請求】未請求
【全頁数】17
(21)【出願番号】特願2015-529794(P2015-529794)
(86)(22)【出願日】2013年5月13日
(85)【翻訳文提出日】2015年3月2日
(86)【国際出願番号】US2013040757
(87)【国際公開番号】WO2014035495
(87)【国際公開日】20140306
(31)【優先権主張番号】13/599,351
(32)【優先日】2012年8月30日
(33)【優先権主張国】US
(81)【指定国】
AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IS,JP,KE,KG,KM,KN,KP,KR,KZ,LA,LC,LK,LR,LS,LT,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT,TZ,UA,UG,US,UZ,VC
(71)【出願人】
【識別番号】507342261
【氏名又は名称】トヨタ モーター エンジニアリング アンド マニュファクチャリング ノース アメリカ,インコーポレイティド
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100092624
【弁理士】
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100102819
【弁理士】
【氏名又は名称】島田 哲郎
(74)【代理人】
【識別番号】100114018
【弁理士】
【氏名又は名称】南山 知広
(72)【発明者】
【氏名】ジャレッド マイケル ファーンズワース
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042GB08
5B042HH17
5B042HH18
5B042NN37
(57)【要約】
ソフトウェア検証用の状態ベースのテストケース生成のためのシステム及び方法を開示する。1つの実施形態は、テストケースを生成用の車両ソフトウェアのプログラムブロックに対して第1の入力と、状態ベースの入力を含む第1の入力タイプとを決定することと、第1の入力タイプに基づいて、第1の入力のための値の順列を決定することと、状態ベースの入力によりテストケースを実行することにおいて、プログラムブロックに対して第1の入力のための値の順列を適用することを含むテストケースを実行することとを含む。いくつかの実施形態は、テストコンピューティング装置によって、テストケースが所定レベルの改良条件/判定カバレッジ(MC/DC)を満たすか否かを決定することと、テストケースが所定レベルのMC/DCを満たすか否かの表示を提供することとを含む。
【選択図】
図4
【特許請求の範囲】
【請求項1】
ソフトウェア検証用の状態ベースのテストケース生成のための方法であって、
テストコンピューティング装置によって、テストケースを生成するためのソフトウェアのプログラムブロックに対して第1の入力と、状態ベースの入力を含む第1の入力タイプとを決定することと、
前記テストコンピューティング装置によって、前記第1の入力タイプに基づいて、前記第1の入力のための値の順列を決定すること、
前記テストコンピューティング装置によって、前記状態ベースの入力により前記テストケースを実行することにおいて、前記プログラムブロックに対して前記第1の入力のための値の順列を適用することを含む前記テストケースを実行することと、
テストコンピューティング装置によって、前記テストケースが所定レベルの改良条件/判定カバレッジ(MC/DC)を満たすか否かを決定することと、
前記テストコンピューティング装置によって、前記テストケースが前記所定レベルのMC/DCを満たすか否かの表示を提供することと
を備える方法。
【請求項2】
前記テストコンピューティング装置によって、前記プログラムブロックに対して、第2の入力と第2の入力タイプとを決定することをさらに備え、
前記第2の入力タイプは、非状態ベースの入力を含み、
前記テストケースを実行することは、定数、ランダム、ランダムな整数、ランプ、シーケンス、遷移、及び順列のうちの少なくとも1つに従って前記第1の入力の各順列に対して非状態ベースの入力のための値を選択することをさらに備える請求項1に記載の方法。
【請求項3】
前記テストコンピューティング装置によって、前記所定レベルのMC/DCを決定することをさらに備える請求項1に記載の方法。
【請求項4】
前記テストコンピューティング装置によって、前記テストケースを生成するための前記ソフトウェアの前記プログラムブロックを決定することをさらに備える請求項1に記載の方法。
【請求項5】
前記テストコンピューティング装置によって、前記ソフトウェアのすべてのプログラムブロックに対してテストケースを決定することをさらに備える請求項1に記載の方法。
【請求項6】
前記テストコンピューティング装置よって、前記ソフトウェアが適切にプログラミングされているか否かを決定するテストケースを用いることをさらに備える請求項1に記載の方法。
【請求項7】
テストコンピューティング装置によって、ユーザが第1の入力及び第1の入力タイプを入力するためのユーザインタフェース提供することをさらに備える請求項1に記載の方法。
【請求項8】
ソフトウェア検証用の状態ベースのテストケース生成のためのシステムであって、テストコンピューティング装置によって実行される場合に、
テストケースを生成用の車両ソフトウェアのプログラムブロックに対して第1の入力と、状態ベースの入力を含む第1の入力タイプとを決定することと、
前記プログラムブロックに対して、第2の入力と、非状態ベースの入力を含む第2の入力タイプとを決定することと、
前記第1の入力タイプに基づいて、前記第1の入力のための値の順列を決定することと、
前記第2の入力タイプに基づいて、前記第2の入力に対して値を割り当てるためのメカニズムを決定することと、
前記状態ベース入力と非状態ベース入力によって前記テストケースを実行することであって、前記テストケースの実行は、前記プログラムブロックへの前記第1の入力に対する順列の値を前記第2の入力に対する値に適用することを含み、
前記テストケースが所定レベルの改良条件/判定カバレッジ(MC/DC)を満たすか否かを決定することと、
前記テストケースが前記所定レベルの前記MC/DCを満たすか否かの表示を提供することと
を、少なくとも前記テストコンピューティング装置に実行させるロジックを記憶するメモリを備えるテストコンピューティング装置を備えるシステム。
【請求項9】
前記第2の入力に対して値を割り当てるための前記メカニズムは、定数、ランダム、ランダムな整数、ランプ、シーケンス、遷移、及び順列の入力タイプのうちの少なくとも1つを備える請求項8に記載のシステム。
【請求項10】
前記ロジックは、前記テストコンピューティング装置に、さらに、第1の入力と、第1の入力タイプと、第2の入力と、第2の入力タイプとを受信するためのユーザインタフェースを提供させる請求項8に記載のシステム。
【請求項11】
前記ユーザインタフェースは、前記テストケースのグラフ表示を提供するためのテストケースプロットオプションをさらに備える請求項10のシステム。
【請求項12】
前記ユーザインタフェースは、前記第1の入力のテストのための複数のシーケンスを生成するためのシーケンス追加オプションをさらに備える請求項10のシステム。
【請求項13】
前記ロジックは、前記テストコンピューティング装置に、前記所定レベルのMC/DCをさらに決定させる請求項8に記載のシステム。
【請求項14】
前記車両ソフトウェアを記憶する車両コンピューティング装置をさらに備え、前記車両コンピューティング装置は、前記車両ソフトウェア及び前記テストケースのうちの少なくとも1つを前記テストコンピューティング装置と通信するように構成される請求項8に記載のシステム。
【請求項15】
テストコンピューティング装置によって実行される場合に、
テストするために車両の車両ソフトウェアからプログラムブロックを選択することと、
前記テストケースを生成するための前記プログラムブロックに対して第1の入力と、状態ベースの入力を含む第1の入力タイプとを決定することと、
前記プログラムブロックに対して、第2の入力と、非状態ベースの入力を含む第2の入力タイプとを決定することと、
前記第1の入力タイプに基づいて、前記第1の入力のための値の順列を決定することと、
前記第2の入力タイプ上に基づいて、前記第2の入力に対して値を割り当てるためのメカニズムを決定することと、
前記状態ベース入力と非状態ベース入力によって前記テストケースを実行することであって、前記テストケースの実行は、前記プログラムブロックへの前記第1の入力に対する順列の値を前記第2の入力に対する値に適用することを含み、
前記テストケースが所定レベルの改良条件/判定カバレッジ(MC/DC)を満たすか否かを決定することと、
前記テストケースが前記所定レベルの前記MC/DCを満たすか否かの表示を提供することと
を少なくとも前記テストコンピューティング装置に実行させるロジックを記憶する非一時的なコンピュータ読み取り可能媒体。
【請求項16】
前記ロジックは、前記テストコンピューティング装置に、前記所定レベルのMC/DCをさらに決定させる請求項15に記載の非一時的なコンピュータ読み取り可能媒体。
【請求項17】
前記非状態ベースの入力は、定数、ランダム、ランダムな整数、ランプ、シーケンス、遷移、及び順列の入力タイプのうちの少なくとも1つを備える請求項15に記載の非一時的なコンピュータ読み取り可能媒体。
【請求項18】
前記ロジックは、前記テストコンピューティング装置に、さらに、第1の入力と、第1の入力タイプと、第2の入力と、第2の入力タイプとを受信するためのユーザインタフェースを提供させる請求項15に記載の非一時的なコンピュータ読み取り可能媒体。
【請求項19】
前記ロジックは、前記テストコンピューティング装置に、さらに、第1の入力と、第1の入力タイプと、第2の入力と、第2の入力タイプとを受信するためのユーザインタフェースを提供させる請求項15に記載の非一時的なコンピュータ読み取り可能媒体。
【請求項20】
前記ユーザインタフェースは、前記第1の入力のテストのための複数のシーケンスを生成するためのシーケンス追加オプションをさらに備える請求項19に記載の非一時的なコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書に記載される実施形態は、概して、ソフトウェアの検証用のテストケースを生成することに関し、より具体的には、テストケースを生成するために状態ベースの決定を用いることに関する。
【背景技術】
【0002】
背景として、多くの車両は、何らかの機能を提供する統合化ソフトウェアを有する。車両が消費者に販売される前に、ソフトウェアが不適当なレベルのエラーを伴わずに機能を実行することを保証するために、ソフトウェアが検証される。ソフトウェア検証は、車両の使用をシミュレートすることを目的とする制御環境においていくつかのテストケースによりソフトウェアをテストすることを含むことができる。現在のテストケース生成ツールは、国際標準化機構(ISO)標準規格/推奨に準拠するためのテストケース生成の2つのメインクラスの方法を利用する。
【0003】
第1クラスは、ソフトウェアの正確性を証明するために数学を利用する形式的方法として説明され得る。但し、この第1クラスは、非線形数学、ルックアップテーブル、状態空間爆発、計算上の限界などが複雑なソフトウェアにおいて発生するという事実のために、多くの制限を有する。従って、この第1クラスは、多くの場合、小さなサイズの複雑でないソフトウェアに限定される。第2のクラスは、ターゲットとされたランダムテストケースを通じて改良条件/判定カバレッジ(MC/DC(modified condition/decision coverage))を提供するランダムテストケース生成として説明され得る。但し、ランダムテストケース生成は、複雑な若しくは大規模なソフトウェアに対して許容できるMC/DCを実現するには不充分な種類のテストケースを提供するだろう。
【発明の概要】
【発明が解決しようとする課題】
【0004】
ソフトウェア検証用の状態ベースのテストケース生成のためのシステム及び方法を開示する。方法の1つの実施形態は、テストケースを生成するための車両ソフトウェアのプログラムブロックに対して第1の入力及び第1の入力タイプを決定することと、第1の入力タイプに基づいて、第1の入力のための値の順列(permutation)を決定することと、状態ベースの入力によりテストケースを実行することとを含み、テストケースを実行することは、プログラムブロックに対して第1の入力のための値の順列を適用することを含む。いくつかの実施形態は、テストケースが改良条件/判定カバレッジ(MC/DC)の所定レベルを満たすか否かを決定することと、テストケースがMC/DCの所定レベルを満たすか否かの表示を提供することとを含む。
【課題を解決するための手段】
【0005】
別の実施形態において、システムは、テストコンピューティング装置によって実行される場合に、テストコンピューティング装置に、テストケースを生成するための車両ソフトウェアのプログラムブロックに対して第1の入力及び第1の入力タイプを決定させ、プログラムブロックに対して第2の入力及び第2の入力タイプを決定させ、第1の入力タイプに基づいて、第1の入力のための値の順列を決定させる、ロジックを記憶するメモリを有するテストコンピューティング装置を含む。いくつかの実施形態において、ロジックは、テストコンピューティング装置に、第2の入力のための値を割り当てるためのメカニズムを決定させ、状態ベースの入力及び非状態ベースの入力によりテストケースを実行させ、テストケースが改良条件/判定カバレッジ(MC/DC)の所定レベルを満たすか否かを決定させる。
【0006】
さらに別の実施形態において、非一時的なコンピュータ読み取り可能媒体は、テストコンピューティング装置に、テストする車両の車両ソフトウェアからプログラムブロックを選択させ、テストケースを生成するためのプログラムブロックに対して、第1の入力及び第1の入力タイプを決定させ、プログラムブロックに対して、第2の入力及び第2の入力タイプを決定させる。いくつかの実施形態において、非一時的なコンピュータ読み取り可能媒体は、テストコンピューティング装置に、第1の入力タイプに基づいて、第1の入力のための値の順列を決定させ、第2の入力タイプ上に基づいて、第2の入力に対して値を割り当てるためのメカニズムを決定させ、状態ベースの入力及び非状態ベースの入力によりテストケースを実行させ、テストケースを実行することは、第2の入力に対する値とともにプログラムブロックに対して第1の入力のための値の順列を適用することを含む。
【0007】
本開示の実施形態によって提供される、これらの特徴及び追加的な特徴は、図面とともに、以下の詳細な説明に鑑みて、さらに充分に理解されることになる。
【0008】
図面に示す実施形態は、事実上、例示的且つ模範的であり、本開示を限定するようには意図しない。例示的な実施形態の以下の詳細な説明は、同様の構造物が同様の参照符号によって示される以下の図面とともに読むことで、理解されることができる。
【図面の簡単な説明】
【0009】
【
図1】本明細書に開示の実施形態による、車両内のソフトウェアをテストするために利用されてもよい、テストコンピューティング装置を概略的に表現する。
【
図2A】本明細書に開示の実施形態による、複数のロジック層を図示する、制御仕様構造を概略的に表現する。
【
図2B】本明細書に開示の実施形態による、複数のロジック層を図示する、制御仕様構造を概略的に表現する。
【
図2C】本明細書に開示の実施形態による、複数のロジック層を図示する、制御仕様構造を概略的に表現する。
【
図3A】本明細書に開示の実施形態による、車両内の機能の実施ための論理回路を表現する。
【
図3B】本明細書に開示の実施形態による、テストケースを生成するために利用されてもよい、
図3Aからの論理回路から決定されてもよい入力を表現する。
【
図4】本明細書に開示の実施形態による、状態ベースのテストケースを生成するために利用されてもよいユーザインタフェースを表現する。
【
図5】本明細書に開示の実施形態による、状態ベースのテストケースを生成ためのフローチャートを表現する。
【発明を実施するための形態】
【0010】
本明細書に開示の実施形態は、ソフトウェア検証用のテストケースを生成するためのシステム及び方法を含む。従って、これらの実施形態は、MC/DCに対してモデル入力特性に基づいたテストケースを生成するコンピュータで実現される方法に関する。実施形態は、国際標準規格/推奨(例えばISO26262)に準拠するためにソフトウェアを検証するために利用することができる。概して、信頼できるソフトウェアに対する入力は、状態変数又は非状態変数として分類されることができる。ソフトウェア内の状態変数は、システムの状態又は演算の結果を示すフラグ又はモード変数として説明され得る。状態変数は、条件(condition)及び判定(decision)を表現するためにソフトウェアにおいて用いられる。条件は、例えば、オン/オフ、0/1、又は同種のものなどの表示であってもよい。判定は、概して、例えば、a&bが「ON」であれば、機能を実行するなど、1つ以上のブール演算子によって演算される条件から構成される。
【0011】
本明細書に開示のテストケースは、何らかの条件がテストケースの検証処理の間に少なくとも一度、真であるように生成されてもよい。検証の間に満たす条件は、各判定は、すべての結果を試み、判定内の各条件は、すべての起こり得る結果の値を想定し、各出入口点が起動され、判定内の各条件は、判定の結果に独立して影響を与えるように示されることを含んでもよい。
【0012】
非状態変数は、計算値、制御値、及びセンサ値を含む。非状態変数に関しては、本明細書に開示の実施形態は、ソフトウェアのテストのためのテストケース値を提供するために、定数、ランダム、ランダムな整数、ランプ、シーケンス、遷移、及び順列及び同種のものなどのメカニズムを利用することができる。
【0013】
いくつかの実施形態において、擬状態変数は、状態変数として扱われることができる。擬状態変数は、状態変数に類似した方式で判定に利用される非状態変数である。例えば、非状態変数が閾値を超える場合、機能を実行することができる(例えば、非状態変数は、0〜200の範囲を有することができ、非状態変数が50を超える場合に判定を行なうことができる)。例えば、非状態変数が閾値を超える場合、機能を実行することができる(例えば、非状態変数は、0〜200の範囲を有することができ、非状態変数が50を超える場合に判定を行なうことができる)。例として、いくつかの実施形態において、変数は2つの状態、50=オン及び51=オフに設定されてもよい。
【0014】
結果として、本明細書に開示の実施形態は、どの入力が、状態ベースの入力及び非状態ベースの入力として識別され得るのかを決定する。状態ベースの入力は、その状態ベースの入力にとって可能な入力値の順列ごとにテストされてもよい。さらに、非状態ベースの入力は、乱数、数列、及び/又は他の値を用いてテストされてもよい。これらの入力決定及び入力値選択に基づき、車両ソフトウェアは、より高い効率で最大限のMC/DCによりテストされることができる。
【0015】
ここで図面を参照すると、
図1は、本明細書に開示の実施形態による、車両ソフトウェア144cをテストするために利用されてもよい、テストコンピューティング装置112を概略的に表現する。図示した実施形態において、テストコンピューティング装置112は、プロセッサ130と、入出力ハードウェア132と、ネットワークインタフェースハードウェア134と、データ記憶コンポーネント136と、メモリコンポーネント140とを含む。メモリコンポーネント140は、揮発性及び/又は不揮発性メモリとして構成され、そのため、ランダムアクセスメモリ(SRAM、DRAM及び/又は他のタイプのRAMを含む)、フラッシュメモリ、セキュアデジタル(SD)メモリ、レジスタ、コンパクトディスク(CD)、ディジタルバーサタイルディスク(DVD)、及び/又は他のタイプの非一時的なコンピュータ読み取り可能媒体を含んでもよい。特定の実施形態に応じて、非一時的なコンピュータ読み取り可能媒体は、テストコンピューティング装置112及び/又はテストコンピューティング装置112とともに外部に存在してもよい。
【0016】
さらに、メモリコンポーネント140は、演算ロジック142、車両ソフトウェアテストロジック144a、テストケースロジック144b、及び車両ソフトウェア144cを記憶してもよい。車両ソフトウェア144cは、テストされているソフトウェアの一部であってもよい。同様に、車両ソフトウェアテストロジック144a及びテストケースロジック144bは、各々、例として、各々がコンピュータプログラム、ファームウェア、及び/又はハードウェアとして具現されてもよい複数の異なるロジックピースを含んでもよい。ローカルインタフェース146も、また、
図1に含まれており、テストコンピューティング装置112のコンポーネントの中の通信を容易にする、バス又は他のインタフェースとして実装されてもよい。
【0017】
プロセッサ130は、(データ記憶コンポーネント136及び/又はメモリコンポーネント140などから)命令を受信して実行するために動作可能な任意の処理コンポーネントを含んでもよい。入出力ハードウェア132は、モニタ、測位システム、キーボード、マウス、プリンタ、画像取り込み装置、マイクロホン、スピーカ、ジャイロスコープ、コンパス、及び/又はデータを受信し、送信し、及び又は示すための他の装置を含んでもよい、及び/又は、これらの装置とのインタフェースを確立するように構成されてもよい。ネットワークインタフェースハードウェア134は、アンテナ、モデム、LANポート、ワイヤレスフィデリティ(Wi−Fi)カード、WiMaxカード、モバイル通信ハードウェア、及び/又は他のネットワーク及び/又は装置と通信することための他のハードウェアを含む任意の有線若しくは無線のネットワーキングハードウェアを含んでもよいし、及び/又は、これらのネットワーキングハードウェアと通信するように構成されてもよい。この接続によって、テストコンピューティング装置112と他のコンピューティング装置との間の通信が容易になる。
【0018】
演算ロジック142は、テストコンピューティング装置112のコンポーネントを管理するためのオペレーティングシステム及び/又は他のソフトウェアを含んでもよい。同様に、前述のように、車両ソフトウェアテストロジック144aは、メモリコンポーネント140に属し、プロセッサ130に、車両ソフトウェアのテスト144cを実行させるように構成されてもよい。より詳細に以下に論じられるように、車両ソフトウェアテストロジック144aによって実行されるテストは、車両ソフトウェア144cがエラーを伴わずにプログラミングされていることを決定することであってもよい。さらに、テストケースロジック144bは、プロセッサ130に車両ソフトウェア144cをテストさせるためのテストケースを生成させるように構成されてもよい。他の機能も、また、含まれており、より詳細に以下に記述される。
【0019】
図1に図示されたコンポーネントは、単に例示的であって、この開示の範囲を限定するようには意図されない、ということを理解するべきである。コンポーネントがテストコンピューティング装置112内に存在するように
図1に示されているが、これは単なる一例である。いくつかの実施形態において、コンポーネントの1つ以上は、テストコンピューティング装置112の外部に存在してもよい。テストコンピューティング装置112が単一の装置として
図1に示されているが、これもまた単なる一例である、ということもまた理解されるべきである。いくつかの実施形態において、車両ソフトウェアテストロジック144a及びテストケースロジック144bは、異なる装置上に存在してもよい。
【0020】
さらに、テストコンピューティング装置112が個別の論理的なコンポーネントとして車両ソフトウェアテストロジック144a及びテストケースロジック144bにより図示されているが、これもまた、一例である。いくつかの実施形態において、単一のロジックピースが、記載された機能を、テストコンピューティング装置112に実行させてもよい。
【0021】
図2A〜
図2Cは、本明細書に開示の実施形態による、車両ソフトウェア内の複数のロジック層144cを図示する、制御仕様構造を概略的に表現する。具体的には、
図2Aは、車両ソフトウェアのアプリケーションレベル144cを表現する。車両ソフトウェア144cは、ステータスブロック212に対して送信される複数の初期入力210を含んでもよい。ステータスブロック212は、入力を処理し、機能ブロック214にデータを送信してもよい。機能ブロック214は、データをさらに処理してもよい。所望の結果が取得されて、且つ1つ以上の出力216に送信されるまで、これを継続してもよい。従って、2つのレベルのみの処理(ブロック212及び214)が
図2Aに表現されているが、車両102及び/又は車両コンピューティング装置104内の所望の機能を実施するために、より多数の又はより少数のレベルが利用されてもよい、ということは理解されるべきである。
【0022】
図2Bは、
図2A(例えば機能層)からの機能ブロック214を表現する。具体的には、機能ブロック214は、ステータスブロック212からの2つの出力だけでなく、
図2Aからの1つの初期入力210とともに示される。機能ブロック214は、車両ソフトウェア114cに従ってさらにデータを処理するための複数のモジュールブロックを含む。機能ブロックの出力226も、また、表現されており、
図2A内の次のブロックに送信されてもよい。
【0023】
図2Cは、
図2Bからのモジュールブロック224を表現する。具体的には、入力232はブロック234に対して提供され、そこでデータをさらに処理することができる。このデータは、その後、他のブロックによって再び処理され、出力236に送信されてもよい。この出力236は、その後、さらに他のアプリケーション層ブロック、機能層ブロックに送信され、及び/又は出力に送信されてもよい。
【0024】
図2Aは、アプリケーション層上に複数のブロックを図示しており、複数のブロックの各々は、それらのブロック内に処理コンポーネントを含んでもよい。アプリケーション層内の処理コンポーネントは、
図2B内の機能層内に詳細に表現される。同様に、
図2B内の機能的ブロックの各々は、
図2Cのモジュール層において表現される付加的な処理コンポーネントを含んでもよい。従って、車両ソフトウェア144c(
図1)を実施するために、車両コンピューティング装置104(同じく
図1)は、これらの層の各々のロジックを実行することになる。従って、車両ソフトウェア144cをテストする場合、テストコンピューティング装置112は、車両ソフトウェア144cがエラーを伴わずにプログラミングされていることを保証するために、各層上のブロックの各々をテストする。
【0025】
入力、第1の入力、第2の入力等の用語は、ここでは、車両ソフトウェア114cへの入力または車両ソフトウェア114cのロジックブロックに送られる他の値に言及するものとして用いられ得ることを理解されるべきである。従って、入力と言う用語は、ロジックコンポーネントに伝送される任意の値を識別するために用いられてもよい。
【0026】
図3Aは、本明細書に開示の実施形態によって、車両内の機能を実施するための論理回路300を表現する。具体的には、論理回路300は、
図3A、
図3B及び
図3Cにおいてそれぞれ表現された、アプリケーション層、機能層、及び/又はモジュール層上のブロックの内の一個におけるロジックを示し得る。図示されるように、論理回路300は、入力302a、302b(まとめて「入力302」と呼ぶ)を含む。入力302は、入力値が2つの可能性の内の1つ(0/1、オン/オフ、など)であるバイナリ入力(「フラグ」として識別される)、、入力が有限数の可能性の1つであるモード入力、及び/又は入力が無限数の可能性(又は極めて大きい数の可能性)の1つである可変入力、の形式をとってもよい。従って、フラグ及びモード入力は、状態ベースの入力であると決定されて、それにより、それに応じてテストされてもよい。現在の例において、入力302aは、双方がフラグ(バイナリ入力)であると決定されており、一方で、入力304は、可変入力であると決定されている。入力306は、モード入力であると決定されている。
【0027】
第1の入力タイプ、第2の入力タイプなどの入力タイプの決定は、
図3A−3Cに示されたアプリケーション層、機能層及びモジュール層のそれぞれにおけるブロックのそれぞれに対してなされ得ることを理解すべきである。入力タイプの決定に加えて、可能な入力値も入力の各々に対して決定されてもよい。
【0028】
一旦入力タイプ及び入力値が決定されれば、テストコンピューティング装置112は、
図3A〜
図3C内のブロックの各々に対してテストケースを生成してもよい。具体的には、テストケースは、値の順列(例えば、車両ソフトウェア144cにおける状態ベースの入力の全ての順列)を実行するロジックピースとして生成されても良い。特定の実施形態に応じて、可変入力のテストは、可能な値のサブセットのテストためのメカニズムを実行することを含んでもよい。例として、ランダム値は、状態ベースの入力値のそれぞれの順列のために利用されてもよい。上記したように、他のメカニズムが用いられてもよい。
【0029】
現在の例において、論理回路300は、入力302を受信する論理「積」演算子310を含む。論理「積」演算子310の出力は、値0及び100と共に第1のスイッチ312に送信される。第1のスイッチ312は、マルチポートスイッチ314に出力する。同様に、入力302も、また、論理「和」演算子316に送信される。論理「和」演算子316に対する出力は、「0」とともに、入力304を受信する第2のスイッチ318に送信される。第2のスイッチ318は、マルチポートスイッチ314に出力する。マルチポートスイッチ314は、値「0」及び入力306とともに、第1のスイッチ312及び第2のスイッチ318から出力を受信する。マルチポートスイッチ314は、所望の出力320を選択する。
【0030】
図3Bは、本明細書に開示の実施形態による、テストケースを生成するために利用され得る入力を示し、これは、
図3Aからの論理回路300から決定されてもよい。
図3Aからの論理回路300について図示されるように、チャート340は、入力の各々が、車両ソフトウェア144cをテストする際のテストケースにおいて実行されることを示すために提供され得る。図示されるように、この例の入力は、モード入力と、2つのフラグ入力と、1つの可変入力とを含む。従って、3つの状態ベースの入力が、入力値の全順列において実行される。さらに、可変入力は、状態ベースの入力の状態順列の各々に対してランダム値として実行される。
【0031】
一旦テストケースが展開されれば、テストコンピューティング装置112は、テストケースが所定の閾値(例えば95%、100%、など)を超えてMC/DCを満たすか否かを決定してもよい。テストケースが所定のMC/DCを満たす場合、車両ソフトウェア144cが適切にプログラミングされているか否かを決定するために、車両ソフトウェア144cにおいてテストケースが実行されてもよい。
【0032】
図4は、本明細書に開示の実施形態による、状態ベースのテストケースを生成するために利用されてもよいユーザインタフェース430を表現する。図示されるように、テストコンピューティング装置112は、新規のテストケースの生成のためのユーザインタフェース430を提供してもよい。ユーザは、
図2A〜
図2C内のブロックの各々に対する入力を決定し、入力欄432内の入力名称を識別してもよい。シーケンス列434において、ユーザは、その入力タイプに対して可能な値とともに用いられる入力タイプを識別してもよい。
【0033】
例として、第1行において、ユーザは、0及び1の可能な値とともに、状態ベースの入力として用いられる「フラグ1」という名の入力を入力した。第2行において、「モード1」という名の入力は、可能な0、2、及び4の値とともに、状態ベースの入力として用いられることになる。第3行において、「変数1」という名の入力は、可能な0〜100の値とともに、ランダム入力として用いられることになる。他の入力は、テストされている特定の車両ソフトウェア144cに応じて、実行され指定されてもよい。
【0034】
図4内に表現されたシーケンス指示は単に例示的である、ということは理解されるべきである。具体的には、定数、ランダム、ランダムな整数、ランプ(例えば急上昇する値)、シーケンス(例えばパターン)、遷移(例えば所定時間にわたる遷移データシーケンス)、順列(例えばマルチ入力に対してユニークな順列を生成する)、及び/又は他のもののような指示が使用され得る。単一のシーケンスのみが
図4に表現されているが、異なる値の入力を説明するために、いくつかの実施形態が複数のシーケンスを用いてもよい、ということも理解されるべきである。
【0035】
また、シーケンス追加オプション436、シーケンス削除オプション438、入力追加オプション440、入力削除オプション442、及びテストケースプロットオプション444が、
図4内に含まれる。シーケンス追加オプション436は、シーケンスを、現在のテストケースに追加するために利用されてもよい。同様に、シーケンス削除オプション438は、現在のシーケンスを削除するために利用されてもよい。入力追加オプション440は、付加的な入力を、テストケースに追加するために利用されてもよく、一方で、入力削除オプション442は、テストケース内の既存の入力を削除するために利用されていてもよい。テストケースプロットオプション444は、テストケースが適切なMC/DCを有するか否かを決定するために、テストケースのグラフ表示を提供するために利用されてもよい。
【0036】
さらに、テストケースファイルロードオプション446、テストケースファイル新規オプション448、テストケースファイル保存オプション450、テストケース生成/保存オプション452、及びモデル信号ビルダに対するテストケース追加オプション454が
図4に含まれる。具体的には、テストケースファイルロードオプション446は、現在のテストに対して、既存のテストケースを利用するために選択されてもよい。テストケースファイル新規オプション448は、新規テストケースを開始するために選択されてもよい。テストケースファイル保存オプション450は、現在のテストケースを保存するために選択されてもよい。テストケース生成/保存オプション452は、テストケースを保存するだけでなく、実施のための完成テストケースを生成するために選択されてもよい。モデル信号ビルダに対するテストケース追加オプション454は、テストケースをモデル信号ビルダに追加するために選択されてもよい。
【0037】
図5は、本明細書に開示の実施形態による、状態ベースのテストケースを生成ためのフローチャートを表現する。ブロック550内に示すように、車両ソフトウェア144cにおけるアプリケーション層ブロック、機能層ブロック、及び/又はモジュール層ブロックなどのプログラムブロックは、テストするために選択されてもよい。前述のように、ユーザは、プログラムブロックを識別するためにユーザインタフェース430と対話してもよい。ブロック552において、入力及び入力タイプが、そのモジュールに対して決定されてもよい。例として、この決定は、入力に対する可能な入力値を識別し、そして入力タイプを決定する、テストコンピューティング装置112によってなされてもよい。同様に、この決定は、ユーザから入力タイプを受信するテストコンピューティング装置112によってなされてもよい。それとは関係なく、入力は、状態ベースの入力及び非状態ベースの入力を含んでもよい。ブロック554において、状態ベースの入力に対して入力値のユニークな順列が決定されてもよい。ブロック556において、非状態ベースの入力に対して非状態ベースの入力値を割り当てるためのメカニズムが決定されてもよい。例として、非状態ベースの入力がランダム値、列、及び/又は他のメカニズムになるか否かを、ユーザは、ユーザインタフェース430において識別してもよい。ブロック558において、テストケースは、状態ベースの入力値及び非状態ベースの入力値の各々とともに生成され実行されてもよい。ブロック560において、テストケースから結果が解析されてもよい。ブロック562において、決定は、ターゲットのMC/DCが実現されたか否かに関してなされてもよい。実現されていなければ、フローチャートは、ブロック552に戻ってもよい。MC/DCが得られれば、ブロック564において、テストケースが検証され、車両ソフトウェア144cをテストするために利用されてもよい。
【0038】
車両ソフトウェア144cが本明細書において論じられたが、本開示の範囲が車両ソフトウェアのみに限定されない、ということは理解されるべきである。具体的には、本明細書に開示の実施形態は、少なくともプログラムブロックに対する入力の一部が状態ベースの入力として識別され得る場合に、あらゆるタイプのソフトウェアをテストするために利用されてもよい。
【0039】
以上に示したように、ソフトウェア検証用の状態ベースのテストケース生成のための様々な実施形態が開示される。具体的には、本明細書に開示の実施形態は、高等数学を用いるリスクを伴わずに、テストケースのための所定のレベルのMC/DCを実現する能力をユーザに提供することができる。従って、所定のレベルのMC/DCは、現行システムよりも、容易に且つ効率的に取得され得る。
【0040】
本開示の特定の実施形態及び態様が本明細書において図示され記載されたが、様々な他の変更及び変形は、本開示の精神及び範囲から逸脱せずに行なうことができる。さらに、様々な態様が本明細書において記載されたが、このような態様を順列に利用する必要はない。従って、添付された請求項が、本明細書に示され記載された実施形態の範囲内で、このような変更及び変形をすべて網羅するように意図される。
【0041】
本明細書に開示の実施形態が温度較正を推測するためのシステム、方法、及び非一時的なコンピュータ読み取り可能媒体を含む、ということは、ここで理解されるべきである。前述のように、このような実施形態は、車速、冷却液温度、及び/又は他の基準に基づいてもよい、動的な平滑化値を決定するように構成される。これらの実施形態は、単なる例示的であって、この開示の範囲を限定するためには意図されない、ということを理解するべきである。
【手続補正書】
【提出日】2015年3月3日
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ソフトウェア検証用の状態ベースのテストケース生成のための方法であって、
テストコンピューティング装置によって、テストケースを生成するためのソフトウェアのプログラムブロックに対して第1の入力と、状態ベースの入力を含む第1の入力タイプとを決定することと、
前記テストコンピューティング装置によって、前記第1の入力タイプに基づいて、前記第1の入力のための値の順列を決定することと、
前記テストコンピューティング装置によって、前記状態ベースの入力により前記テストケースを実行することにおいて、前記テストケースの実行は、前記プログラムブロックに対して前記第1の入力のための値の順列を適用することを含む、前記テストケースを実行することと、
前記テストコンピューティング装置によって、前記テストケースが所定レベルの改良条件/判定カバレッジ(MC/DC)を満たすか否かを決定することと、
前記テストコンピューティング装置によって、前記テストケースが前記所定レベルのMC/DCを満たすか否かの表示を提供することと、
を備える方法。
【請求項2】
前記テストコンピューティング装置によって、前記プログラムブロックに対して、第2の入力と第2の入力タイプとを決定することをさらに備え、
前記第2の入力タイプは、非状態ベースの入力を含み、
前記テストケースを実行することは、定数、ランダム、ランダムな整数、ランプ、シーケンス、遷移、及び順列のうちの少なくとも1つに従って、前記第1の入力の各順列に対して非状態ベースの入力のための値を選択することをさらに備える、請求項1に記載の方法。
【請求項3】
前記テストコンピューティング装置によって、前記所定レベルのMC/DCを決定することをさらに備える、請求項1に記載の方法。
【請求項4】
前記テストコンピューティング装置によって、前記テストケースを生成するための前記ソフトウェアの前記プログラムブロックを決定することをさらに備える、請求項1に記載の方法。
【請求項5】
前記テストコンピューティング装置によって、前記ソフトウェアのすべてのプログラムブロックに対してテストケースを決定することをさらに備える、請求項1に記載の方法。
【請求項6】
前記テストコンピューティング装置よって、前記ソフトウェアが適切にプログラミングされているか否かを決定するテストケースを用いることをさらに備える、請求項1に記載の方法。
【請求項7】
前記テストコンピューティング装置によって、ユーザが第1の入力及び第1の入力タイプを入力するためのユーザインタフェースを提供することをさらに備える、請求項1に記載の方法。
【請求項8】
ソフトウェア検証用の状態ベースのテストケース生成のためのシステムであって、テストコンピューティング装置によって実行される場合に、
テストケースを生成用の車両ソフトウェアのプログラムブロックに対して第1の入力と、状態ベースの入力を含む第1の入力タイプとを決定することと、
前記プログラムブロックに対して、第2の入力と、非状態ベースの入力を含む第2の入力タイプとを決定することと、
前記第1の入力タイプに基づいて、前記第1の入力のための値の順列を決定することと、
前記第2の入力タイプに基づいて、前記第2の入力に対して値を割り当てるためのメカニズムを決定することと、
前記状態ベース入力と非状態ベース入力によって前記テストケースを実行することであって、前記テストケースの実行は、前記プログラムブロックへの前記第1の入力に対する順列の値を前記第2の入力に対する値に適用することを含み、
前記テストケースが所定レベルの改良条件/判定カバレッジ(MC/DC)を満たすか否かを決定することと、
前記テストケースが前記所定レベルの前記MC/DCを満たすか否かの表示を提供することと、
を、少なくとも前記テストコンピューティング装置に実行させるロジックを記憶するメモリを備えるテストコンピューティング装置を備えるシステム。
【請求項9】
テストコンピューティング装置によって実行される場合に、
テストするために車両の車両ソフトウェアからプログラムブロックを選択することと、
前記テストケースを生成するための前記プログラムブロックに対して第1の入力と、状態ベースの入力を含む第1の入力タイプとを決定することと、
前記プログラムブロックに対して、第2の入力と、非状態ベースの入力を含む第2の入力タイプとを決定することと、
前記第1の入力タイプに基づいて、前記第1の入力のための値の順列を決定することと、
前記第2の入力タイプに基づいて、前記第2の入力に対して値を割り当てるためのメカニズムを決定することと、
前記状態ベース入力と非状態ベース入力によって前記テストケースを実行することであって、前記テストケースの実行は、前記プログラムブロックへの前記第1の入力に対する順列の値を前記第2の入力に対する値に適用することを含み、
前記テストケースが所定レベルの改良条件/判定カバレッジ(MC/DC)を満たすか否かを決定することと、
前記テストケースが前記所定レベルの前記MC/DCを満たすか否かの表示を提供することと、
を少なくとも前記テストコンピューティング装置に実行させるロジックを記憶する、非一時的なコンピュータ読み取り可能媒体。
【国際調査報告】