JP2015526826A - ソフトウェア検証用の状態ベースのテストケース生成のためのシステム及び方法 - Google Patents

ソフトウェア検証用の状態ベースのテストケース生成のためのシステム及び方法 Download PDF

Info

Publication number
JP2015526826A
JP2015526826A JP2015529794A JP2015529794A JP2015526826A JP 2015526826 A JP2015526826 A JP 2015526826A JP 2015529794 A JP2015529794 A JP 2015529794A JP 2015529794 A JP2015529794 A JP 2015529794A JP 2015526826 A JP2015526826 A JP 2015526826A
Authority
JP
Japan
Prior art keywords
input
test
test case
computing device
state
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
JP2015529794A
Other languages
English (en)
Other versions
JP6215949B2 (ja
Inventor
マイケル ファーンズワース ジャレッド
マイケル ファーンズワース ジャレッド
Original Assignee
トヨタ モーター エンジニアリング アンド マニュファクチャリング ノース アメリカ,インコーポレイティド
トヨタ モーター エンジニアリング アンド マニュファクチャリング ノース アメリカ,インコーポレイティド
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 トヨタ モーター エンジニアリング アンド マニュファクチャリング ノース アメリカ,インコーポレイティド, トヨタ モーター エンジニアリング アンド マニュファクチャリング ノース アメリカ,インコーポレイティド filed Critical トヨタ モーター エンジニアリング アンド マニュファクチャリング ノース アメリカ,インコーポレイティド
Publication of JP2015526826A publication Critical patent/JP2015526826A/ja
Application granted granted Critical
Publication of JP6215949B2 publication Critical patent/JP6215949B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

Abstract

ソフトウェア検証用の状態ベースのテストケース生成のためのシステム及び方法を開示する。1つの実施形態は、テストケースを生成用の車両ソフトウェアのプログラムブロックに対して第1の入力と、状態ベースの入力を含む第1の入力タイプとを決定することと、第1の入力タイプに基づいて、第1の入力のための値の順列を決定することと、状態ベースの入力によりテストケースを実行することにおいて、プログラムブロックに対して第1の入力のための値の順列を適用することを含むテストケースを実行することとを含む。いくつかの実施形態は、テストコンピューティング装置によって、テストケースが所定レベルの改良条件/判定カバレッジ(MC/DC)を満たすか否かを決定することと、テストケースが所定レベルのMC/DCを満たすか否かの表示を提供することとを含む。【選択図】図4

Description

本明細書に記載される実施形態は、概して、ソフトウェアの検証用のテストケースを生成することに関し、より具体的には、テストケースを生成するために状態ベースの決定を用いることに関する。
背景として、多くの車両は、何らかの機能を提供する統合化ソフトウェアを有する。車両が消費者に販売される前に、ソフトウェアが不適当なレベルのエラーを伴わずに機能を実行することを保証するために、ソフトウェアが検証される。ソフトウェア検証は、車両の使用をシミュレートすることを目的とする制御環境においていくつかのテストケースによりソフトウェアをテストすることを含むことができる。現在のテストケース生成ツールは、国際標準化機構(ISO)標準規格/推奨に準拠するためのテストケース生成の2つのメインクラスの方法を利用する。
第1クラスは、ソフトウェアの正確性を証明するために数学を利用する形式的方法として説明され得る。但し、この第1クラスは、非線形数学、ルックアップテーブル、状態空間爆発、計算上の限界などが複雑なソフトウェアにおいて発生するという事実のために、多くの制限を有する。従って、この第1クラスは、多くの場合、小さなサイズの複雑でないソフトウェアに限定される。第2のクラスは、ターゲットとされたランダムテストケースを通じて改良条件/判定カバレッジ(MC/DC(modified condition/decision coverage))を提供するランダムテストケース生成として説明され得る。但し、ランダムテストケース生成は、複雑な若しくは大規模なソフトウェアに対して許容できるMC/DCを実現するには不充分な種類のテストケースを提供するだろう。
ソフトウェア検証用の状態ベースのテストケース生成のためのシステム及び方法を開示する。方法の1つの実施形態は、テストケースを生成するための車両ソフトウェアのプログラムブロックに対して第1の入力及び第1の入力タイプを決定することと、第1の入力タイプに基づいて、第1の入力のための値の順列(permutation)を決定することと、状態ベースの入力によりテストケースを実行することとを含み、テストケースを実行することは、プログラムブロックに対して第1の入力のための値の順列を適用することを含む。いくつかの実施形態は、テストケースが改良条件/判定カバレッジ(MC/DC)の所定レベルを満たすか否かを決定することと、テストケースがMC/DCの所定レベルを満たすか否かの表示を提供することとを含む。
別の実施形態において、システムは、テストコンピューティング装置によって実行される場合に、テストコンピューティング装置に、テストケースを生成するための車両ソフトウェアのプログラムブロックに対して第1の入力及び第1の入力タイプを決定させ、プログラムブロックに対して第2の入力及び第2の入力タイプを決定させ、第1の入力タイプに基づいて、第1の入力のための値の順列を決定させる、ロジックを記憶するメモリを有するテストコンピューティング装置を含む。いくつかの実施形態において、ロジックは、テストコンピューティング装置に、第2の入力のための値を割り当てるためのメカニズムを決定させ、状態ベースの入力及び非状態ベースの入力によりテストケースを実行させ、テストケースが改良条件/判定カバレッジ(MC/DC)の所定レベルを満たすか否かを決定させる。
さらに別の実施形態において、非一時的なコンピュータ読み取り可能媒体は、テストコンピューティング装置に、テストする車両の車両ソフトウェアからプログラムブロックを選択させ、テストケースを生成するためのプログラムブロックに対して、第1の入力及び第1の入力タイプを決定させ、プログラムブロックに対して、第2の入力及び第2の入力タイプを決定させる。いくつかの実施形態において、非一時的なコンピュータ読み取り可能媒体は、テストコンピューティング装置に、第1の入力タイプに基づいて、第1の入力のための値の順列を決定させ、第2の入力タイプ上に基づいて、第2の入力に対して値を割り当てるためのメカニズムを決定させ、状態ベースの入力及び非状態ベースの入力によりテストケースを実行させ、テストケースを実行することは、第2の入力に対する値とともにプログラムブロックに対して第1の入力のための値の順列を適用することを含む。
本開示の実施形態によって提供される、これらの特徴及び追加的な特徴は、図面とともに、以下の詳細な説明に鑑みて、さらに充分に理解されることになる。
図面に示す実施形態は、事実上、例示的且つ模範的であり、本開示を限定するようには意図しない。例示的な実施形態の以下の詳細な説明は、同様の構造物が同様の参照符号によって示される以下の図面とともに読むことで、理解されることができる。
本明細書に開示の実施形態による、車両内のソフトウェアをテストするために利用されてもよい、テストコンピューティング装置を概略的に表現する。 本明細書に開示の実施形態による、複数のロジック層を図示する、制御仕様構造を概略的に表現する。 本明細書に開示の実施形態による、複数のロジック層を図示する、制御仕様構造を概略的に表現する。 本明細書に開示の実施形態による、複数のロジック層を図示する、制御仕様構造を概略的に表現する。 本明細書に開示の実施形態による、車両内の機能の実施ための論理回路を表現する。 本明細書に開示の実施形態による、テストケースを生成するために利用されてもよい、図3Aからの論理回路から決定されてもよい入力を表現する。 本明細書に開示の実施形態による、状態ベースのテストケースを生成するために利用されてもよいユーザインタフェースを表現する。 本明細書に開示の実施形態による、状態ベースのテストケースを生成ためのフローチャートを表現する。
本明細書に開示の実施形態は、ソフトウェア検証用のテストケースを生成するためのシステム及び方法を含む。従って、これらの実施形態は、MC/DCに対してモデル入力特性に基づいたテストケースを生成するコンピュータで実現される方法に関する。実施形態は、国際標準規格/推奨(例えばISO26262)に準拠するためにソフトウェアを検証するために利用することができる。概して、信頼できるソフトウェアに対する入力は、状態変数又は非状態変数として分類されることができる。ソフトウェア内の状態変数は、システムの状態又は演算の結果を示すフラグ又はモード変数として説明され得る。状態変数は、条件(condition)及び判定(decision)を表現するためにソフトウェアにおいて用いられる。条件は、例えば、オン/オフ、0/1、又は同種のものなどの表示であってもよい。判定は、概して、例えば、a&bが「ON」であれば、機能を実行するなど、1つ以上のブール演算子によって演算される条件から構成される。
本明細書に開示のテストケースは、何らかの条件がテストケースの検証処理の間に少なくとも一度、真であるように生成されてもよい。検証の間に満たす条件は、各判定は、すべての結果を試み、判定内の各条件は、すべての起こり得る結果の値を想定し、各出入口点が起動され、判定内の各条件は、判定の結果に独立して影響を与えるように示されることを含んでもよい。
非状態変数は、計算値、制御値、及びセンサ値を含む。非状態変数に関しては、本明細書に開示の実施形態は、ソフトウェアのテストのためのテストケース値を提供するために、定数、ランダム、ランダムな整数、ランプ、シーケンス、遷移、及び順列及び同種のものなどのメカニズムを利用することができる。
いくつかの実施形態において、擬状態変数は、状態変数として扱われることができる。擬状態変数は、状態変数に類似した方式で判定に利用される非状態変数である。例えば、非状態変数が閾値を超える場合、機能を実行することができる(例えば、非状態変数は、0〜200の範囲を有することができ、非状態変数が50を超える場合に判定を行なうことができる)。例えば、非状態変数が閾値を超える場合、機能を実行することができる(例えば、非状態変数は、0〜200の範囲を有することができ、非状態変数が50を超える場合に判定を行なうことができる)。例として、いくつかの実施形態において、変数は2つの状態、50=オン及び51=オフに設定されてもよい。
結果として、本明細書に開示の実施形態は、どの入力が、状態ベースの入力及び非状態ベースの入力として識別され得るのかを決定する。状態ベースの入力は、その状態ベースの入力にとって可能な入力値の順列ごとにテストされてもよい。さらに、非状態ベースの入力は、乱数、数列、及び/又は他の値を用いてテストされてもよい。これらの入力決定及び入力値選択に基づき、車両ソフトウェアは、より高い効率で最大限のMC/DCによりテストされることができる。
ここで図面を参照すると、図1は、本明細書に開示の実施形態による、車両ソフトウェア144cをテストするために利用されてもよい、テストコンピューティング装置112を概略的に表現する。図示した実施形態において、テストコンピューティング装置112は、プロセッサ130と、入出力ハードウェア132と、ネットワークインタフェースハードウェア134と、データ記憶コンポーネント136と、メモリコンポーネント140とを含む。メモリコンポーネント140は、揮発性及び/又は不揮発性メモリとして構成され、そのため、ランダムアクセスメモリ(SRAM、DRAM及び/又は他のタイプのRAMを含む)、フラッシュメモリ、セキュアデジタル(SD)メモリ、レジスタ、コンパクトディスク(CD)、ディジタルバーサタイルディスク(DVD)、及び/又は他のタイプの非一時的なコンピュータ読み取り可能媒体を含んでもよい。特定の実施形態に応じて、非一時的なコンピュータ読み取り可能媒体は、テストコンピューティング装置112及び/又はテストコンピューティング装置112とともに外部に存在してもよい。
さらに、メモリコンポーネント140は、演算ロジック142、車両ソフトウェアテストロジック144a、テストケースロジック144b、及び車両ソフトウェア144cを記憶してもよい。車両ソフトウェア144cは、テストされているソフトウェアの一部であってもよい。同様に、車両ソフトウェアテストロジック144a及びテストケースロジック144bは、各々、例として、各々がコンピュータプログラム、ファームウェア、及び/又はハードウェアとして具現されてもよい複数の異なるロジックピースを含んでもよい。ローカルインタフェース146も、また、図1に含まれており、テストコンピューティング装置112のコンポーネントの中の通信を容易にする、バス又は他のインタフェースとして実装されてもよい。
プロセッサ130は、(データ記憶コンポーネント136及び/又はメモリコンポーネント140などから)命令を受信して実行するために動作可能な任意の処理コンポーネントを含んでもよい。入出力ハードウェア132は、モニタ、測位システム、キーボード、マウス、プリンタ、画像取り込み装置、マイクロホン、スピーカ、ジャイロスコープ、コンパス、及び/又はデータを受信し、送信し、及び又は示すための他の装置を含んでもよい、及び/又は、これらの装置とのインタフェースを確立するように構成されてもよい。ネットワークインタフェースハードウェア134は、アンテナ、モデム、LANポート、ワイヤレスフィデリティ(Wi−Fi)カード、WiMaxカード、モバイル通信ハードウェア、及び/又は他のネットワーク及び/又は装置と通信することための他のハードウェアを含む任意の有線若しくは無線のネットワーキングハードウェアを含んでもよいし、及び/又は、これらのネットワーキングハードウェアと通信するように構成されてもよい。この接続によって、テストコンピューティング装置112と他のコンピューティング装置との間の通信が容易になる。
演算ロジック142は、テストコンピューティング装置112のコンポーネントを管理するためのオペレーティングシステム及び/又は他のソフトウェアを含んでもよい。同様に、前述のように、車両ソフトウェアテストロジック144aは、メモリコンポーネント140に属し、プロセッサ130に、車両ソフトウェアのテスト144cを実行させるように構成されてもよい。より詳細に以下に論じられるように、車両ソフトウェアテストロジック144aによって実行されるテストは、車両ソフトウェア144cがエラーを伴わずにプログラミングされていることを決定することであってもよい。さらに、テストケースロジック144bは、プロセッサ130に車両ソフトウェア144cをテストさせるためのテストケースを生成させるように構成されてもよい。他の機能も、また、含まれており、より詳細に以下に記述される。
図1に図示されたコンポーネントは、単に例示的であって、この開示の範囲を限定するようには意図されない、ということを理解するべきである。コンポーネントがテストコンピューティング装置112内に存在するように図1に示されているが、これは単なる一例である。いくつかの実施形態において、コンポーネントの1つ以上は、テストコンピューティング装置112の外部に存在してもよい。テストコンピューティング装置112が単一の装置として図1に示されているが、これもまた単なる一例である、ということもまた理解されるべきである。いくつかの実施形態において、車両ソフトウェアテストロジック144a及びテストケースロジック144bは、異なる装置上に存在してもよい。
さらに、テストコンピューティング装置112が個別の論理的なコンポーネントとして車両ソフトウェアテストロジック144a及びテストケースロジック144bにより図示されているが、これもまた、一例である。いくつかの実施形態において、単一のロジックピースが、記載された機能を、テストコンピューティング装置112に実行させてもよい。
図2A〜図2Cは、本明細書に開示の実施形態による、車両ソフトウェア内の複数のロジック層144cを図示する、制御仕様構造を概略的に表現する。具体的には、図2Aは、車両ソフトウェアのアプリケーションレベル144cを表現する。車両ソフトウェア144cは、ステータスブロック212に対して送信される複数の初期入力210を含んでもよい。ステータスブロック212は、入力を処理し、機能ブロック214にデータを送信してもよい。機能ブロック214は、データをさらに処理してもよい。所望の結果が取得されて、且つ1つ以上の出力216に送信されるまで、これを継続してもよい。従って、2つのレベルのみの処理(ブロック212及び214)が図2Aに表現されているが、車両102及び/又は車両コンピューティング装置104内の所望の機能を実施するために、より多数の又はより少数のレベルが利用されてもよい、ということは理解されるべきである。
図2Bは、図2A(例えば機能層)からの機能ブロック214を表現する。具体的には、機能ブロック214は、ステータスブロック212からの2つの出力だけでなく、図2Aからの1つの初期入力210とともに示される。機能ブロック214は、車両ソフトウェア114cに従ってさらにデータを処理するための複数のモジュールブロックを含む。機能ブロックの出力226も、また、表現されており、図2A内の次のブロックに送信されてもよい。
図2Cは、図2Bからのモジュールブロック224を表現する。具体的には、入力232はブロック234に対して提供され、そこでデータをさらに処理することができる。このデータは、その後、他のブロックによって再び処理され、出力236に送信されてもよい。この出力236は、その後、さらに他のアプリケーション層ブロック、機能層ブロックに送信され、及び/又は出力に送信されてもよい。
図2Aは、アプリケーション層上に複数のブロックを図示しており、複数のブロックの各々は、それらのブロック内に処理コンポーネントを含んでもよい。アプリケーション層内の処理コンポーネントは、図2B内の機能層内に詳細に表現される。同様に、図2B内の機能的ブロックの各々は、図2Cのモジュール層において表現される付加的な処理コンポーネントを含んでもよい。従って、車両ソフトウェア144c(図1)を実施するために、車両コンピューティング装置104(同じく図1)は、これらの層の各々のロジックを実行することになる。従って、車両ソフトウェア144cをテストする場合、テストコンピューティング装置112は、車両ソフトウェア144cがエラーを伴わずにプログラミングされていることを保証するために、各層上のブロックの各々をテストする。
入力、第1の入力、第2の入力等の用語は、ここでは、車両ソフトウェア114cへの入力または車両ソフトウェア114cのロジックブロックに送られる他の値に言及するものとして用いられ得ることを理解されるべきである。従って、入力と言う用語は、ロジックコンポーネントに伝送される任意の値を識別するために用いられてもよい。
図3Aは、本明細書に開示の実施形態によって、車両内の機能を実施するための論理回路300を表現する。具体的には、論理回路300は、図3A、図3B及び図3Cにおいてそれぞれ表現された、アプリケーション層、機能層、及び/又はモジュール層上のブロックの内の一個におけるロジックを示し得る。図示されるように、論理回路300は、入力302a、302b(まとめて「入力302」と呼ぶ)を含む。入力302は、入力値が2つの可能性の内の1つ(0/1、オン/オフ、など)であるバイナリ入力(「フラグ」として識別される)、、入力が有限数の可能性の1つであるモード入力、及び/又は入力が無限数の可能性(又は極めて大きい数の可能性)の1つである可変入力、の形式をとってもよい。従って、フラグ及びモード入力は、状態ベースの入力であると決定されて、それにより、それに応じてテストされてもよい。現在の例において、入力302aは、双方がフラグ(バイナリ入力)であると決定されており、一方で、入力304は、可変入力であると決定されている。入力306は、モード入力であると決定されている。
第1の入力タイプ、第2の入力タイプなどの入力タイプの決定は、図3A−3Cに示されたアプリケーション層、機能層及びモジュール層のそれぞれにおけるブロックのそれぞれに対してなされ得ることを理解すべきである。入力タイプの決定に加えて、可能な入力値も入力の各々に対して決定されてもよい。
一旦入力タイプ及び入力値が決定されれば、テストコンピューティング装置112は、図3A〜図3C内のブロックの各々に対してテストケースを生成してもよい。具体的には、テストケースは、値の順列(例えば、車両ソフトウェア144cにおける状態ベースの入力の全ての順列)を実行するロジックピースとして生成されても良い。特定の実施形態に応じて、可変入力のテストは、可能な値のサブセットのテストためのメカニズムを実行することを含んでもよい。例として、ランダム値は、状態ベースの入力値のそれぞれの順列のために利用されてもよい。上記したように、他のメカニズムが用いられてもよい。
現在の例において、論理回路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を選択する。
図3Bは、本明細書に開示の実施形態による、テストケースを生成するために利用され得る入力を示し、これは、図3Aからの論理回路300から決定されてもよい。図3Aからの論理回路300について図示されるように、チャート340は、入力の各々が、車両ソフトウェア144cをテストする際のテストケースにおいて実行されることを示すために提供され得る。図示されるように、この例の入力は、モード入力と、2つのフラグ入力と、1つの可変入力とを含む。従って、3つの状態ベースの入力が、入力値の全順列において実行される。さらに、可変入力は、状態ベースの入力の状態順列の各々に対してランダム値として実行される。
一旦テストケースが展開されれば、テストコンピューティング装置112は、テストケースが所定の閾値(例えば95%、100%、など)を超えてMC/DCを満たすか否かを決定してもよい。テストケースが所定のMC/DCを満たす場合、車両ソフトウェア144cが適切にプログラミングされているか否かを決定するために、車両ソフトウェア144cにおいてテストケースが実行されてもよい。
図4は、本明細書に開示の実施形態による、状態ベースのテストケースを生成するために利用されてもよいユーザインタフェース430を表現する。図示されるように、テストコンピューティング装置112は、新規のテストケースの生成のためのユーザインタフェース430を提供してもよい。ユーザは、図2A〜図2C内のブロックの各々に対する入力を決定し、入力欄432内の入力名称を識別してもよい。シーケンス列434において、ユーザは、その入力タイプに対して可能な値とともに用いられる入力タイプを識別してもよい。
例として、第1行において、ユーザは、0及び1の可能な値とともに、状態ベースの入力として用いられる「フラグ1」という名の入力を入力した。第2行において、「モード1」という名の入力は、可能な0、2、及び4の値とともに、状態ベースの入力として用いられることになる。第3行において、「変数1」という名の入力は、可能な0〜100の値とともに、ランダム入力として用いられることになる。他の入力は、テストされている特定の車両ソフトウェア144cに応じて、実行され指定されてもよい。
図4内に表現されたシーケンス指示は単に例示的である、ということは理解されるべきである。具体的には、定数、ランダム、ランダムな整数、ランプ(例えば急上昇する値)、シーケンス(例えばパターン)、遷移(例えば所定時間にわたる遷移データシーケンス)、順列(例えばマルチ入力に対してユニークな順列を生成する)、及び/又は他のもののような指示が使用され得る。単一のシーケンスのみが図4に表現されているが、異なる値の入力を説明するために、いくつかの実施形態が複数のシーケンスを用いてもよい、ということも理解されるべきである。
また、シーケンス追加オプション436、シーケンス削除オプション438、入力追加オプション440、入力削除オプション442、及びテストケースプロットオプション444が、図4内に含まれる。シーケンス追加オプション436は、シーケンスを、現在のテストケースに追加するために利用されてもよい。同様に、シーケンス削除オプション438は、現在のシーケンスを削除するために利用されてもよい。入力追加オプション440は、付加的な入力を、テストケースに追加するために利用されてもよく、一方で、入力削除オプション442は、テストケース内の既存の入力を削除するために利用されていてもよい。テストケースプロットオプション444は、テストケースが適切なMC/DCを有するか否かを決定するために、テストケースのグラフ表示を提供するために利用されてもよい。
さらに、テストケースファイルロードオプション446、テストケースファイル新規オプション448、テストケースファイル保存オプション450、テストケース生成/保存オプション452、及びモデル信号ビルダに対するテストケース追加オプション454が図4に含まれる。具体的には、テストケースファイルロードオプション446は、現在のテストに対して、既存のテストケースを利用するために選択されてもよい。テストケースファイル新規オプション448は、新規テストケースを開始するために選択されてもよい。テストケースファイル保存オプション450は、現在のテストケースを保存するために選択されてもよい。テストケース生成/保存オプション452は、テストケースを保存するだけでなく、実施のための完成テストケースを生成するために選択されてもよい。モデル信号ビルダに対するテストケース追加オプション454は、テストケースをモデル信号ビルダに追加するために選択されてもよい。
図5は、本明細書に開示の実施形態による、状態ベースのテストケースを生成ためのフローチャートを表現する。ブロック550内に示すように、車両ソフトウェア144cにおけるアプリケーション層ブロック、機能層ブロック、及び/又はモジュール層ブロックなどのプログラムブロックは、テストするために選択されてもよい。前述のように、ユーザは、プログラムブロックを識別するためにユーザインタフェース430と対話してもよい。ブロック552において、入力及び入力タイプが、そのモジュールに対して決定されてもよい。例として、この決定は、入力に対する可能な入力値を識別し、そして入力タイプを決定する、テストコンピューティング装置112によってなされてもよい。同様に、この決定は、ユーザから入力タイプを受信するテストコンピューティング装置112によってなされてもよい。それとは関係なく、入力は、状態ベースの入力及び非状態ベースの入力を含んでもよい。ブロック554において、状態ベースの入力に対して入力値のユニークな順列が決定されてもよい。ブロック556において、非状態ベースの入力に対して非状態ベースの入力値を割り当てるためのメカニズムが決定されてもよい。例として、非状態ベースの入力がランダム値、列、及び/又は他のメカニズムになるか否かを、ユーザは、ユーザインタフェース430において識別してもよい。ブロック558において、テストケースは、状態ベースの入力値及び非状態ベースの入力値の各々とともに生成され実行されてもよい。ブロック560において、テストケースから結果が解析されてもよい。ブロック562において、決定は、ターゲットのMC/DCが実現されたか否かに関してなされてもよい。実現されていなければ、フローチャートは、ブロック552に戻ってもよい。MC/DCが得られれば、ブロック564において、テストケースが検証され、車両ソフトウェア144cをテストするために利用されてもよい。
車両ソフトウェア144cが本明細書において論じられたが、本開示の範囲が車両ソフトウェアのみに限定されない、ということは理解されるべきである。具体的には、本明細書に開示の実施形態は、少なくともプログラムブロックに対する入力の一部が状態ベースの入力として識別され得る場合に、あらゆるタイプのソフトウェアをテストするために利用されてもよい。
以上に示したように、ソフトウェア検証用の状態ベースのテストケース生成のための様々な実施形態が開示される。具体的には、本明細書に開示の実施形態は、高等数学を用いるリスクを伴わずに、テストケースのための所定のレベルのMC/DCを実現する能力をユーザに提供することができる。従って、所定のレベルのMC/DCは、現行システムよりも、容易に且つ効率的に取得され得る。
本開示の特定の実施形態及び態様が本明細書において図示され記載されたが、様々な他の変更及び変形は、本開示の精神及び範囲から逸脱せずに行なうことができる。さらに、様々な態様が本明細書において記載されたが、このような態様を順列に利用する必要はない。従って、添付された請求項が、本明細書に示され記載された実施形態の範囲内で、このような変更及び変形をすべて網羅するように意図される。
本明細書に開示の実施形態が温度較正を推測するためのシステム、方法、及び非一時的なコンピュータ読み取り可能媒体を含む、ということは、ここで理解されるべきである。前述のように、このような実施形態は、車速、冷却液温度、及び/又は他の基準に基づいてもよい、動的な平滑化値を決定するように構成される。これらの実施形態は、単なる例示的であって、この開示の範囲を限定するためには意図されない、ということを理解するべきである。

Claims (20)

  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に記載の非一時的なコンピュータ読み取り可能媒体。
JP2015529794A 2012-08-30 2013-05-13 ソフトウェア検証用の状態ベースのテストケース生成のためのシステム及び方法 Active JP6215949B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/599,351 US9971676B2 (en) 2012-08-30 2012-08-30 Systems and methods for state based test case generation for software validation
US13/599,351 2012-08-30
PCT/US2013/040757 WO2014035495A1 (en) 2012-08-30 2013-05-13 Systems and methods for state based test case generation for software validation

Publications (2)

Publication Number Publication Date
JP2015526826A true JP2015526826A (ja) 2015-09-10
JP6215949B2 JP6215949B2 (ja) 2017-10-18

Family

ID=50184087

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015529794A Active JP6215949B2 (ja) 2012-08-30 2013-05-13 ソフトウェア検証用の状態ベースのテストケース生成のためのシステム及び方法

Country Status (4)

Country Link
US (1) US9971676B2 (ja)
JP (1) JP6215949B2 (ja)
DE (1) DE112013004307T5 (ja)
WO (1) WO2014035495A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10108536B2 (en) 2014-12-10 2018-10-23 General Electric Company Integrated automated test case generation for safety-critical software
US9940222B2 (en) 2015-11-20 2018-04-10 General Electric Company System and method for safety-critical software automated requirements-based test case generation
US20180253677A1 (en) * 2017-03-01 2018-09-06 Gregory James Foster Method for Performing Dynamic Data Analytics
CN107748721A (zh) * 2017-11-27 2018-03-02 中国航空无线电电子研究所 一种测试用例集自动生成方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009181292A (ja) * 2008-01-30 2009-08-13 Toyota Motor Corp Mc/dcパターン生成装置
JP2010113551A (ja) * 2008-11-06 2010-05-20 Kyushu Hitachi Maxell Ltd テスト計画表作成装置及びそのプログラム
JP2010267024A (ja) * 2009-05-13 2010-11-25 Nippon Telegr & Teleph Corp <Ntt> テストデータ生成方法及び装置及びプログラム
JP2012073692A (ja) * 2010-09-28 2012-04-12 Hitachi Ltd 組込システムの保守支援装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934934B1 (en) 1999-08-30 2005-08-23 Empirix Inc. Method and system for software object testing
EP1283422A1 (en) 2001-08-07 2003-02-12 Lucent Technologies Inc. Testbench for the validation of a device under test
WO2003054666A2 (en) 2001-12-19 2003-07-03 Steven Sims System and method for automated test-case generation for software
US7024589B2 (en) * 2002-06-14 2006-04-04 International Business Machines Corporation Reducing the complexity of finite state machine test generation using combinatorial designs
US7788556B2 (en) 2002-11-13 2010-08-31 Fujitsu Limited System and method for evaluating an erroneous state associated with a target circuit
US7478365B2 (en) 2004-01-13 2009-01-13 Symphony Services Corp. Method and system for rule-based generation of automation test scripts from abstract test case representation
WO2005085888A1 (en) * 2004-03-05 2005-09-15 Vfs Technologies Limited Testing of embedded systems
US7197382B2 (en) 2004-04-19 2007-03-27 Ford Global Technologies, Llc Method and system for determining engine state of a hybrid electric vehicle
US20070028219A1 (en) 2004-10-15 2007-02-01 Miller William L Method and system for anomaly detection
WO2006047741A2 (en) 2004-10-27 2006-05-04 Bae Systems Land & Armaments L.P. Software test environment for regression testing ground combat vehicle software
US20060101397A1 (en) * 2004-10-29 2006-05-11 Microsoft Corporation Pseudo-random test case generator for XML APIs
US7970594B2 (en) 2005-06-30 2011-06-28 The Mathworks, Inc. System and method for using model analysis to generate directed test vectors
US8473913B2 (en) * 2006-01-11 2013-06-25 Hitachi Data Systems Corporation Method of and system for dynamic automated test case generation and execution
US8949770B2 (en) 2007-04-03 2015-02-03 Ldra Technology, Inc. Automated management of software requirements verification
US20090006897A1 (en) * 2007-06-27 2009-01-01 Microsoft Corporation Automated service testing
KR101470319B1 (ko) 2008-02-15 2014-12-08 삼성전자주식회사 컴포넌트 모델 기반의 가상 소프트웨어 플랫폼을 생성하는방법, 이를 이용하여 소프트웨어 플랫폼 아키텍처를검증하는 방법 및 그 장치
US8612938B2 (en) 2009-01-05 2013-12-17 Tata Consultancy Services Limited System and method for automatic generation of test data to satisfy modified condition decision coverage
US8271950B2 (en) * 2009-07-06 2012-09-18 Microsoft Corporation Test generation from captured user interface status
US20110083121A1 (en) * 2009-10-02 2011-04-07 Gm Global Technology Operations, Inc. Method and System for Automatic Test-Case Generation for Distributed Embedded Systems
US8382575B2 (en) * 2010-09-17 2013-02-26 Speilo Manufacturing ULC System and method for identifying errors in slot machine and video lottery terminal games

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009181292A (ja) * 2008-01-30 2009-08-13 Toyota Motor Corp Mc/dcパターン生成装置
JP2010113551A (ja) * 2008-11-06 2010-05-20 Kyushu Hitachi Maxell Ltd テスト計画表作成装置及びそのプログラム
JP2010267024A (ja) * 2009-05-13 2010-11-25 Nippon Telegr & Teleph Corp <Ntt> テストデータ生成方法及び装置及びプログラム
JP2012073692A (ja) * 2010-09-28 2012-04-12 Hitachi Ltd 組込システムの保守支援装置

Also Published As

Publication number Publication date
DE112013004307T5 (de) 2015-05-21
JP6215949B2 (ja) 2017-10-18
WO2014035495A1 (en) 2014-03-06
US20140068339A1 (en) 2014-03-06
US9971676B2 (en) 2018-05-15

Similar Documents

Publication Publication Date Title
CN109074519B (zh) 信息处理装置、信息处理方法以及程序
US20190324772A1 (en) Method and device for processing smart contracts
JP6215949B2 (ja) ソフトウェア検証用の状態ベースのテストケース生成のためのシステム及び方法
TW201541278A (zh) 隨選檢測惡意程式之方法、電子裝置、及使用者介面
CN104063307B (zh) 一种软件测试方法和系统
US10394987B2 (en) Adaptive bug-search depth for simple and deep counterexamples
Friedrich et al. Fast simulation of large‐scale growth models
US20150331786A1 (en) Path execution reduction in software program verification
JP2022522790A (ja) ブロックチェーントランザクションを追跡するための方法およびデバイス
CN109101819A (zh) 一种漏洞检测方法及终端、存储介质
US9250890B2 (en) Optimizing performance of a computer system in response to a software change
CN112069507B (zh) 机器学习框架漏洞检测方法、系统、设备及可读存储介质
CN109522679B (zh) 基于分类处理的功能激励向量生成方法及系统
US10839132B2 (en) Automatic cover point generation based on register transfer level analysis
US20200285736A1 (en) Security-adaptive code execution
US9916412B2 (en) Automatic generation of test layouts for testing a design rule checking tool
US9892010B2 (en) Persistent command parameter table for pre-silicon device testing
CN115061825A (zh) 隐私计算、隐私数据和联邦学习的异构计算系统及方法
US10776077B2 (en) Method, apparatus and recording medium for processing division calculation
US9864585B2 (en) Rapid prototyping of backend services
JP6494887B1 (ja) 検査装置、検査方法及び検査プログラム
WO2019142266A1 (ja) テストケース生成装置、テストケース生成方法およびテストケース生成プログラム
JP6661500B2 (ja) 情報生成システム、装置、方法、及びプログラム
JP6572668B2 (ja) 検査方法
CN103914380A (zh) 结构测试中的边界值测试方法及其系统

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150303

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160317

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170517

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170921

R150 Certificate of patent or registration of utility model

Ref document number: 6215949

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350