JP2009181292A - Mc/dcパターン生成装置 - Google Patents
Mc/dcパターン生成装置 Download PDFInfo
- Publication number
- JP2009181292A JP2009181292A JP2008019093A JP2008019093A JP2009181292A JP 2009181292 A JP2009181292 A JP 2009181292A JP 2008019093 A JP2008019093 A JP 2008019093A JP 2008019093 A JP2008019093 A JP 2008019093A JP 2009181292 A JP2009181292 A JP 2009181292A
- Authority
- JP
- Japan
- Prior art keywords
- truth table
- pattern
- serve
- row
- condition
- 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
Links
Images
Abstract
【課題】MC/DCパターンを効率良く生成することが可能なMC/DCパターン生成装置を提供する。
【解決手段】MC/DCパターン生成装置は、真理表作成手段と、サーブ真理表作成手段と、MC/DCパターン判定手段と、を備える。真理表作成手段は、入力された論理式に対して真理表を作成する。サーブ真理表作成手段は、真理表作成手段で作成した真理表の各行に対し、各条件変数をフリップ操作して生成されたサーブ行から成るサーブ真理表を作成する。MC/DCパターン判定手段は、サーブ真理表が属する行と異なる論理値であるサーブ行を探索し、MC/DCパターンとして決定する。このようにすることで、MC/DCパターンの選定に必要な探索空間を削減することができ、MC/DCパターンを効率的かつ迅速に求めることが可能となる。
【選択図】図7
【解決手段】MC/DCパターン生成装置は、真理表作成手段と、サーブ真理表作成手段と、MC/DCパターン判定手段と、を備える。真理表作成手段は、入力された論理式に対して真理表を作成する。サーブ真理表作成手段は、真理表作成手段で作成した真理表の各行に対し、各条件変数をフリップ操作して生成されたサーブ行から成るサーブ真理表を作成する。MC/DCパターン判定手段は、サーブ真理表が属する行と異なる論理値であるサーブ行を探索し、MC/DCパターンとして決定する。このようにすることで、MC/DCパターンの選定に必要な探索空間を削減することができ、MC/DCパターンを効率的かつ迅速に求めることが可能となる。
【選択図】図7
Description
本発明は、MC/DCパターンを自動生成する装置に関する。
ソフトウェアの検査手法において、テストデータを流しながら実行し、その結果を確かめることによって検査を実行する方法が行われている。この場合のテストデータは、ソフトウェアの要求仕様から用意されるものもあれば、ソフトウェアの構造分析に基づいて用意されるものもある。後者の場合のテストデータの選定基準として、プログラムの条件判断部に注目し、網羅的かつ効率的にソフトウェアの構造テストを実行できるテストカバレッジであるMC/DC(Modified Condition/Decision Coverage)が知られている。なお、特許文献1及び特許文献2には、MC/DCで用いられる真理表の作成を効率よく実行可能な方法が記載されている。
ところで、一般的に、MC/DCにおいて、条件判断部を構成する条件変数の数が多い場合、1つの条件判断部に対応するMC/DCパターンを生成するのに膨大な処理量が発生する。したがって、特にテスト対象のソフトウェアの量が多く複雑な場合には、検査処理を行うのに多くの時間が必要になる。
本発明は、上記のような課題を解決するためになされたものであり、MC/DCパターンを効率良く生成することが可能なMC/DCパターン生成装置を提供することを課題とする。
本発明の1つの観点では、入力された論理式からMC/DCパターンを生成するMC/DCパターン生成装置において、前記論理式に対して真理表を作成する真理表作成手段と、前記真理表作成手段で作成した前記真理表の各行に対し、各条件変数をフリップ操作して生成されたサーブ行から成るサーブ真理表を作成するサーブ真理表作成手段と、前記サーブ真理表作成手段により生成されたサーブ行のうち、前記サーブ真理表が属する行と異なる論理値であるサーブ行をMC/DCパターンとして決定するMC/DCパターン判定手段と、を備えることを特徴とする。
上記のMC/DCパターン生成装置は、真理表作成手段と、サーブ真理表作成手段と、MC/DCパターン判定手段と、を備える。これらの手段は、例えばECU(Electronic Control Unit)に該当する。真理表作成手段は、入力された論理式に対して真理表を作成する。サーブ真理表作成手段は、真理表作成手段で作成した真理表の各行に対し、各条件変数をフリップ操作して生成されたサーブ行から成るサーブ真理表を作成する。サーブ真理表を作成することにより、真理表からMC/DCパターンを構成する行を選定するのに必要な探索空間を限定することが可能となり、大幅に探索対象を削減することができる。MC/DCパターン判定手段は、サーブ真理表が属する行と異なる論理値であるサーブ行を探索し、MC/DCパターンとして決定する。このようにすることで、MC/DCパターンの生成に必要な処理量を削減することができ、MC/DCパターンを効率的かつ迅速に求めることが可能となる。
以下、図面を参照して本発明の好適な実施形態について説明する。
[概略構成]
まず、本実施形態に係るMC/DCパターン生成装置の構成について説明する。図1は、本実施形態に係るMC/DCパターン生成装置100の構成の一例を示すブロック図である。本実施例では、MC/DCパターン生成装置100は、主記憶装置20、CPU22、通信装置27、出力装置28、入力装置29、及び補助記憶装置36を備える。そして各装置は、バス30を介して相互に接続され、各装置間で必要な情報が伝送可能なように構成されている。MC/DCパターン生成装置100は、例えばPC(Personal Computer)によって実現することができる。
まず、本実施形態に係るMC/DCパターン生成装置の構成について説明する。図1は、本実施形態に係るMC/DCパターン生成装置100の構成の一例を示すブロック図である。本実施例では、MC/DCパターン生成装置100は、主記憶装置20、CPU22、通信装置27、出力装置28、入力装置29、及び補助記憶装置36を備える。そして各装置は、バス30を介して相互に接続され、各装置間で必要な情報が伝送可能なように構成されている。MC/DCパターン生成装置100は、例えばPC(Personal Computer)によって実現することができる。
CPU22は、主記憶装置20や補助記憶装置36にあらかじめ格納されているプログラムによって所定の動作を行う。
主記憶装置20は、作業エリアとして機能したり、必要なプログラムを格納する機能等を有する。主記憶装置20は、RAM(Random Access Memory)24及びROM(Read Only Memory)23を有する。そして、例えば作業エリアとしての機能はRAMが行い、必要なプログラムを格納する機能はROMが行うことができる。
通信装置27は、通信媒体300等の各種通信媒体を介し、同じ通信媒体に接続される装置と所定の通信プロトコルに従い情報(データ)を送受信するための装置である。
出力装置28は、MC/DCパターン生成装置100の使用者の操作に応答するための情報を出力表示するための装置である。出力装置28は、例えばブラウン管、CRT、液晶ディスプレイ、PDP、有機EL、プロジェクタ、スピーカ、ヘッドフォン等によって実現できる。
入力装置29は、MC/DCパターン生成装置100の使用者等が、MC/DCパターン生成装置100に対して必要な命令や情報を入力するための装置である。入力装置29は、例えばTV受信機で使用されるリモートコントローラや、PCで使用されるキーボード、マウス等によって実現できる。
補助記憶装置36は、MC/DCパターン生成装置100の動作を制御するためのプログラムを保存したり、MC/DCパターン生成装置100の動作に必要な情報を保持したりするためのものである。補助記憶装置36は、例えば、ハードディスク(HDD:Hard Disk Drive)、半導体ディスク、光ディスク等によって実現できる。
図1のMC/DCパターン生成装置100の構成は一例であり、必ずしも、この通りのものである必要はない。例えば、出力装置28は、MC/DCパターン生成装置100とは異なる装置で実現してもよい。この場合、MC/DCパターン生成装置100は別途D/Aコンバータ等の信号生成装置を具備し、MC/DCパターン生成装置100と出力装置28とはAVケーブルや同軸ケーブル等によって接続される。
次に、MC/DCパターン生成装置100がソフトウェアの構造テストを実行するにあたり必要な機能構成について説明する。図2は、MC/DCパターン生成装置100の機能構成の一例を示すブロック図である。図2において、分岐検出部40、MC/DCパターン生成部41、アサーション処理部42、テスト入力データ生成部43、及びシミュレーション部44はCPU22に該当し、テストデータベース51は例えば補助記憶装置36によって実現される。コード50は、補助記憶装置36または主記憶装置20に保持される。また、図2中の矢印は制御の流れを示し、丸枠内の番号は矢印が示す制御の順序の一例を示している。
まず、テスト対象であるC言語等の所定の言語により記載されたコード50に対し、分岐検出部40は、コードの中に記述された条件分岐における条件判断部分(例えば、C言語でのif文における条件式。以後「条件部」と呼ぶ。)を抽出する処理を行う。
MC/DCパターン生成部41は、真理表作成手段、サーブ真理表作成手段、及びMC/DCパターン判定手段を有し、分岐検出部40が抽出した条件部が示す論理式から、該当するMC/DCパターンを生成する。MC/DCパターンの生成方法の詳細は後述する。
そして、アサーション処理部42は、MC/DCパターン生成部41が生成したMC/DCパターンからアサーション(例えば、C言語でのassert文に相当するコード)を生成し、コード50における条件分岐の直前に挿入する。なお、アサーションを2以上挿入する場合、1つずつアサーションを分けてコード50を用意するのが好ましい。即ち、1つのアサーションに対し1つのコード50を新たに用意し、挿入する。
次に、テスト入力データ生成部43は、アサーションが挿入されたコード50を用いて、テスト用の入力データを生成する。即ち、テスト入力データ生成部43は、いわゆるソルバーとして機能する。
そして、テストデータベース51は、テスト入力データ生成部43が生成したテスト用入力データの記録を行う。シミュレーション部44は、上述のテスト用入力データを、コード50により生成されるプログラムに入力し、プログラムを実行することで、ソフトウェアにバグがないか判定を行う。
なお、上述のMC/DCパターン生成装置100の機能構成は一例であり、本発明が適用可能な機能構成はこれに限られない。例えば、分岐検出部40、アサーション処理部42、テスト入力データ生成装置43、テストデータベース51、シミュレーション装置44はそれぞれMC/DCパターン生成装置100とは別の装置によって実現してもよい。この場合、MC/DCパターン生成装置100は、通信装置27により各機能部分に対応する装置と制御信号やデータのやりとりを行うことになる。
[MC/DCパターン生成方法]
次に、図2におけるMC/DCパターン生成部41が行う処理の詳細を述べる。まず、MC/DCパターンの生成に使用される真理表について述べる。真理表は、論理式の変数(以後、「条件変数」と呼ぶ。)の値の組み合わせと各組み合わせによって生成される論理式の値(以後、「論理値」と呼ぶ。)とで構成される表である。条件変数の値及び論理値は、0または1のいずれかをとる。以後、一組の条件変数の値及びその論理値を、真理表の「行」と呼ぶ。
次に、図2におけるMC/DCパターン生成部41が行う処理の詳細を述べる。まず、MC/DCパターンの生成に使用される真理表について述べる。真理表は、論理式の変数(以後、「条件変数」と呼ぶ。)の値の組み合わせと各組み合わせによって生成される論理式の値(以後、「論理値」と呼ぶ。)とで構成される表である。条件変数の値及び論理値は、0または1のいずれかをとる。以後、一組の条件変数の値及びその論理値を、真理表の「行」と呼ぶ。
そして、MC/DCパターンは、次の条件1乃至3を満たす一組の行、即ち真理表を構成する行から選択された行の集合を指す。条件1は、論理式の条件変数、即ち真理値を構成する全ての条件変数が、0と1になることである。条件2は、論理値が0と1になることである。条件3は、全ての条件変数が論理式に独立的に影響を与えていることである。ここで、「ある条件変数が独立的に影響を与えている」とは、その条件変数以外の全ての条件変数の値を固定した上で、その条件変数の値を変更することで、論理式の結果(論理値)が変わること、即ち0から1、及び1から0への論理値の変更があることをいう。以後、条件1乃至3を「MC/DC条件」と呼ぶ。
ここで、MC/DCパターンの具体例を示す。図3は、ソフトウェア上からある条件部を抽出し、真理表を作成して、MC/DCパターンに該当する行を示した一例である。図3(a)は、ソフトウェア設計におけるフローチャートの一部である。図3(b)は、図3(a)のフローチャートの条件部A部分のコード部分を示す。条件部Aは、ここでは、変数c1、c2からなる論理式「c1∧c2」を表す「c1&&c2」となっている。図3(c)は、条件部Aが示す論理式から作成した真理表を示す。c1及びc2の値の組み合わせは4つ存在するため、真理表の行の数は4となる。そして、図3(c)では、各行に対するインデックス(以後、「行番号」と呼ぶ。)が割り振られている。以後、任意の行番号を表す整数Zに対し、対応する行を「行Z」と表現する。ここで、行1乃至3は、条件1乃至3を満たしている。即ち、条件変数c1、c2がいずれも0と1になっていることから条件1を満たす。さらに、条件部Aの論理値が0と1になっていることから条件2を満たす。そして、行1は、条件変数c2を固定した上で条件変数c1の値を変更することで論理値が0から1になり、行3は、条件変数c2を固定した上で条件変数c1の値を変更することで論理値が1から0になる。したがって、行1と行3とに対し条件変数c1が独立的に影響を与えている。また、行2は、条件変数c1を固定した上で条件変数c2の値を変更することで論理値が0から1になり、行3は、条件変数c1を固定した上で条件変数c2の値を変更することで論理値が1から0になる。したがって、行2と行3とに対し条件変数c2が独立的に影響を与えている。よって、行1乃至3に対し、論理式の全ての条件変数は独立的に影響を与えることになり、条件3を満たす。したがって、行1乃至3がMC/DCパターンを形成することになる。
なお、図3に示す例において、行1及び行3、行2及び行3の組のように、ある条件変数が独立的に影響を与える行であって、その条件変数の値が0の場合と1の場合とにそれぞれ該当する行の組は、MC/DCパターンを構成する。以後、このような行の組を、「MC/DCパターンを構成する行の組」と呼ぶ。そして、MC/DCパターンを構成する行の組に着目することで、MC/DCパターンとなる行を求めることができる。
次に、CPU22で条件部からMC/DCパターンを生成する方法について述べる。まず、本発明に依らないMC/DCパターン生成方法(以後、「比較例に係るMC/DCパターン生成方法」と呼ぶ。)による処理の手順を簡潔に説明する。図4は、CPU22が行う、比較例に係るMC/DCパターンの作成処理手順を示すフローチャートである。
まず、CPU22は、条件部に対応する論理式に対して真理表を作成する(ステップS1)。そして、CPU22は、論理式の条件変数ごとに真理表に新たな列(以後、「カラム」と呼ぶ。)を作成する(ステップS2)。次に、CPU22は、条件変数ごとに真理表の最初の行番号から最後の行番号まで進みながらMC/DC条件を満たす行を探索、即ちMC/DCパターンを構成する行の組を探索し、その結果を追加されたカラムに記入する(ステップS3)。そして、CPU22は、ステップS3終了後、カラムに記入されている全ての行番号に対応する行をMC/DCパターンとして特定する(ステップS4)。この方法では、上述したMC/DCパターンを構成する行の組がMC/DCパターンとなることを利用し、カラムにその対応を記載することで、MC/DCパターンを特定している。
図5に、上述のフローチャートの手順により論理式「q=(A∧D)∨(C∧E)」のMC/DCパターンを生成する概念図を示す。図5に示すように、まず、CPU22は、論理式から真理表を作成し、その真理表に条件変数のカラムを付加する。そして、条件変数ごとにMC/DCパターンを構成する行の組がないか検索し、当該行の組が存在した場合には、その対応がわかるようにその行番号をカラムに記載する。例えば、条件変数Aに対し、行2は行10とペアでMC/DC条件を満たすため、条件変数Aのカラムの欄にそれぞれ対応する行番号を記載する。そして、カラムに記載される行番号(2、3、5、6、7、9、10、11)が示す行は、MC/DC条件を満たす論理式のMC/DCパターンとなる。
次に、比較例に係るMC/DCパターン生成方法を実現するのに必要な処理量を表すプログラム上のループ数について述べる。ここで、対象となる論理式が含む条件変数の数(以後、「条件数」と呼ぶ。)をnとする。まず、論理式から真理表を作成するループ数は、条件変数の値の組み合わせ分だけループ数が掛かるため、2n(ここで、nは指数。)だけ要する。従って、図5の例では真理表作成のループ数は16である。さらに、図4のステップS3での条件変数ごとのMC/DCパターンを構成する行の組の探索は、それぞれの条件変数に対し、真理表を構成する行の2つ1組の全組み合わせの数だけ探索する必要があるため、条件数(n)に行の組み合わせ数(x=2n(xは整数。)とすると、xC2=2n−1×(2n−1))を乗じた数(n×2n−1×(2n−1))だけループ数を要する。したがって図5の例ではMC/DC条件を満たす行の探索に必要なループ数(以後、「探索ループ数」と呼ぶ。)は480である。
以上のように、図4のフローチャートの処理手順に従いMC/DCパターンを生成すると、n×2n−1×(2n−1)だけ、探索ループ数を要することになる。この場合、条件数の増加に伴い、必要なループ数が激増してしまい、結果としてCPU22の負荷が高くなり、処理が遅延化する。そこで、後述する本発明に係るMC/DCパターン生成方法では、行ごとに後述するサーブ真理表を生成し、MC/DCパターンを構成する行を探索するために必要な探索対象となる行(以後、「検索空間」と呼ぶ。)を減らすことで探索に必要なループ数を低減している。
次に、本発明に係るサーブ真理表の作成方法について述べる。サーブ真理表は、真理表の各行ごとに作成される真理表である。そして、サーブ真理表は、サーブ行を生成させる対象となる行(以後、「対象行」と呼ぶ。)に対し、いずれかの条件変数の値を1つ反転(フリップ)させた行(以後、「サーブ行」と呼ぶ。)から構成される。以後、いずれかの条件変数の値を1つ反転させることを、「条件変数をフリップ操作する。」と表現する。そして、サーブ行は、対象行に対し、全ての条件変数をフリップ操作した数だけ生成される。即ち、サーブ行は、対象行に対し、条件数だけ生成されることになる。そして、サーブ行の論理値は、例えば、元の真理表のうち、条件変数の値が同一の行の論理値を検索することによって決定することができる。
ここで、サーブ真理表の作成方法の具体例を示す。図6は、論理式「q=(A∧D)∨(C∧E)」からサーブ真理表を作成する概念図を示す。図6において、従来例と同様、論理式に対し、真理表を作成する。ここでは条件数が4なので、16個の行から真理表が構成される。そして、真理表の16個ある各行に対し、サーブ真理表を作成する。サーブ真理表は条件数である4個のサーブ行をそれぞれ有する。そして、図6において、サーブ行は、対象行に対し、破線枠70の条件変数の値がフリップされて生成される。即ち、対象行に対し、条件変数A、D、C、Eの各値をそれぞれ1つフリップさせた行がサーブ行となっている。そして、サーブ行の論理値は、真理表の行のうち、サーブ行と一致する行を検索し、その論理値を参照することにより決定することができる。
次に、サーブ真理表からMC/DCパターンを決定する方法について述べる。MC/DCパターンは、サーブ真理表の論理値とその対象行の論理値とを比較することによって決定することができる。具体的には、対象行の論理値と異なる論理値を持つサーブ行が存在する場合、上述の対象行とサーブ行とは、MC/DCパターンを構成する行の組である。言い換えると、対象行に対し、MC/DCパターンを構成する行の組となる可能性がある行は、対象行から条件数だけ生成されたサーブ行に限られる。したがって、各行に対し、その行から生成されたサーブ行の論理値を比較し、MC/DCパターンを構成する行の組となるサーブ行を探索することによってMC/DCパターンを決定することができる。
ここで、図6の例を用いて上述のMC/DCパターンを決定する具体例を示す。論理式「q=(A∧D)∨(C∧E)」からサーブ真理表を作成後、行1乃至16が作成したサーブ真理表の各サーブ行の論理値とその対象行の論理値とを比較する。具体的には、行1により生成されたサーブ真理表から対象行(行1)の論理値(q=1)と異なる論理値を有するサーブ行を検索する。そして、行1から生成されるサーブ行の論理値qは全て1であるため、行1に対し、MC/DCパターンを構成する行の組となるサーブ行は存在しないことがわかる。次に、行2により生成されたサーブ真理表から対象行(行2)の論理値(q=1)と異なる論理値を有するサーブ行を検索する。そして、行2から生成されるサーブ行2−1乃至2−4のうち、サーブ行2−1及び2−2は、行2とは異なる論理値(q=0)を有する。したがって、サーブ行2−1(即ち、行10)と、サーブ行2−2(即ち、行6)は、行2とともにMC/DCパターンを構成する行の組となることがわかる。即ち、行10及び行6はMC/DCパターンを構成する。以上の操作を以下の行3乃至行16まで行うことによって、全てのMC/DCパターンを構成する行を決定することができる。
次に、本発明に係るMC/DCパターン決定方法の処理の手順についてフローチャートを用いて説明する。図7は、CPU22が行う本発明に係るMC/DCパターンの作成処理を示すフローチャートである。なお、ステップS101は本発明における真理表作成手段、ステップS102、ステップS103はサーブ真理表作成手段、ステップS104はMC/DCパターン判定手段が、それぞれ行う処理に該当する。
まず、CPU22は、コードから抽出された条件部に対応する論理式から真理表を作成する(ステップS101)。そして、CPU22は、作成した真理表の各行に対し、サーブ真理表を作成する(ステップS102)。サーブ真理表は、対象行に対し、各条件変数をフリップ操作することにより生成される。そして、CPU22は、作成したサーブ真理表の各サーブ行の論理式を計算する(ステップS103)。このサーブ行の論理式の計算は、サーブ行と同一の行を真理表から検索することにより決定することができる。
そして、CPU22は、各行とそのサーブ行との論理値を比較し、異なる論理値を有するサーブ行をMC/DCパターンを構成する行として決定する(ステップS104)。以上の処理手順により、従来に比べ、MC/DCパターンを決定するにあたり必要な行の探索する対象、即ち検索空間を大幅に低減することが可能となる。
次に、本発明に係るMC/DCパターン生成方法の必要なループ数について説明する。ここで、対象となる論理式が含む条件数をnとする。まず、ステップS101において、CPU22が論理式から真理表を作成するループ数は、比較例に係るMC/DCパターン生成方法と同様、2n(ここで、nは指数。)である。従って、図6の例における真理表作成のループ数は16である。さらに、ステップS102乃至S104において、CPU22がサーブ真理表作成及びMC/DCパターンの決定に要する探索ループ数は、全ての行に対し生成されるサーブ行の数に等しいため、全ての行の数(2n)に条件数(n)を乗じた数に等しい。即ち、上述の探索ループ数は、2n×nとなる。従って、図6の例におけるステップS102乃至S104で必要な探索ループ数は64である。
ここで、図8に、本発明に係るMC/DCパターン生成方法の必要な総ループ数及び比較例に係るMC/DCパターン生成方法の必要な総ループ数を表す表を示す。ここで、「総ループ数」とは、真理表作成に必要なループ数(2n)とサーブ真理表作成及びMC/DCパターン探索に必要なループ数を加えたループ数を表す。図8(a)に示す表80は、比較例に係るMC/DCパターン生成方法での必要な総ループ数と条件数との関係を示す表である。図8(b)に示す表81は、本発明に係るMC/DCパターン生成方法での必要な総ループ数と条件数との関係を示す表である。表80及び表81に示すように、同じ条件数で必要な総ループ数が、条件数が大きくなるほど大きく異なることがわかる。特に条件数が3以上の場合には、飛躍的に総ループ数の削減を実現している。このように、本発明に係るMC/DCパターン生成方法を用いることにより、CPU22の処理負担を低減することができ、処理の迅速化が達成される。
[具体例]
次に、図9乃至図11を用いて、実際のCコードを対象に処理の具体例を示す。ここで示す例は、図2での分岐検出部40、MC/DCパターン生成部41、アサーション生成部42が行う処理の具体例である。
次に、図9乃至図11を用いて、実際のCコードを対象に処理の具体例を示す。ここで示す例は、図2での分岐検出部40、MC/DCパターン生成部41、アサーション生成部42が行う処理の具体例である。
図9(a)は、Cコードの一部を抽出した一例である。図9(a)に示すように、Cコード中に条件1と条件2の2つの条件部が存在する。そして、図9(b)は、図9(a)のCコードをフローチャートにして示した図である。図9(c)は、条件1と条件2とから生成されたMC/DCパターンを示す。
図10(a)は、図9(c)の各MC/DCパターンを実行するかの確認を行うアサーション作成の一例を示す。ここでは、MC/DCパターンは4つ存在するため、4つのMC/DCパターンのそれぞれに対しアサーションが作成される。そして、図10(b)は、図10(a)で作成したアサーションを図9(a)のCコードに挿入した例を示す。ここで、アサーションは複数存在するため、図2のアサーション処理部42の説明で述べたように、各アサーションを分離してコードに挿入する必要がある。図11は、図9(a)のCコードに各アサーションを分離してコードに挿入した一例を示す。そして、図11のアサーションを含むCコードをテスト入力データ生成部43で実行することにより、テスト用の入力データが生成されることになる。
20 主記憶装置
22 CPU
36 補助記憶装置
40 分岐検出部
41 MC/DCパターン生成部
42 アサーション処理部
43 テスト入力データ生成部
44 シミュレーション部
50 コード
51 テストデータベース
22 CPU
36 補助記憶装置
40 分岐検出部
41 MC/DCパターン生成部
42 アサーション処理部
43 テスト入力データ生成部
44 シミュレーション部
50 コード
51 テストデータベース
Claims (1)
- 入力された論理式からMC/DCパターンを生成するMC/DCパターン生成装置において、
前記論理式に対して真理表を作成する真理表作成手段と、
前記真理表作成手段で作成した前記真理表の各行に対し、各条件変数をフリップ操作して生成されたサーブ行から成るサーブ真理表を作成するサーブ真理表作成手段と、
前記サーブ真理表作成手段により生成されたサーブ行のうち、前記サーブ真理表が属する行と異なる論理値であるサーブ行をMC/DCパターンとして決定するMC/DCパターン判定手段と、を備えることを特徴とするMC/DCパターン生成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008019093A JP2009181292A (ja) | 2008-01-30 | 2008-01-30 | Mc/dcパターン生成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008019093A JP2009181292A (ja) | 2008-01-30 | 2008-01-30 | Mc/dcパターン生成装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009181292A true JP2009181292A (ja) | 2009-08-13 |
Family
ID=41035239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008019093A Pending JP2009181292A (ja) | 2008-01-30 | 2008-01-30 | Mc/dcパターン生成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009181292A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461906A (zh) * | 2014-12-30 | 2015-03-25 | 中国科学院软件研究所 | 一种基于代码转换的mc/dc覆盖准则的软件测试数据生成方法 |
JP2015526826A (ja) * | 2012-08-30 | 2015-09-10 | トヨタ モーター エンジニアリング アンド マニュファクチャリング ノース アメリカ,インコーポレイティド | ソフトウェア検証用の状態ベースのテストケース生成のためのシステム及び方法 |
JP2016021163A (ja) * | 2014-07-15 | 2016-02-04 | 富士通株式会社 | テストケース生成プログラム、テストケース生成方法及びテストケース生成装置 |
JP2016115287A (ja) * | 2014-12-17 | 2016-06-23 | 富士通株式会社 | テストケース生成プログラム、テストケース生成方法及びテストケース生成装置 |
-
2008
- 2008-01-30 JP JP2008019093A patent/JP2009181292A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015526826A (ja) * | 2012-08-30 | 2015-09-10 | トヨタ モーター エンジニアリング アンド マニュファクチャリング ノース アメリカ,インコーポレイティド | ソフトウェア検証用の状態ベースのテストケース生成のためのシステム及び方法 |
JP2016021163A (ja) * | 2014-07-15 | 2016-02-04 | 富士通株式会社 | テストケース生成プログラム、テストケース生成方法及びテストケース生成装置 |
JP2016115287A (ja) * | 2014-12-17 | 2016-06-23 | 富士通株式会社 | テストケース生成プログラム、テストケース生成方法及びテストケース生成装置 |
CN104461906A (zh) * | 2014-12-30 | 2015-03-25 | 中国科学院软件研究所 | 一种基于代码转换的mc/dc覆盖准则的软件测试数据生成方法 |
CN104461906B (zh) * | 2014-12-30 | 2017-08-25 | 中国科学院软件研究所 | 一种基于代码转换的mc/dc覆盖准则的软件测试数据生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11263116B2 (en) | Champion test case generation | |
US11475099B2 (en) | Optimization apparatus and method for controlling thereof | |
US10068031B2 (en) | Tabular data manipulation system and method | |
US10984331B2 (en) | Global policy framework analyzer | |
US9916235B2 (en) | Code failure locator | |
JP5791149B2 (ja) | データベース・クエリ最適化のためのコンピュータで実装される方法、コンピュータ・プログラム、およびデータ処理システム | |
JP2014186407A (ja) | テストケース生成方法、テストケース生成装置およびプログラム | |
US20210303938A1 (en) | Method and apparatus for optimizing video playback start, device and storage medium | |
JP2009181292A (ja) | Mc/dcパターン生成装置 | |
JP2007188443A (ja) | 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法 | |
US20210263837A1 (en) | Real time fault localization using combinatorial test design techniques and test case priority selection | |
US9727676B1 (en) | Method and apparatus for efficient generation of compact waveform-based timing models | |
US20080154571A1 (en) | Timing analysis method and apparatus for enhancing accuracy of timing analysis and improving work efficiency thereof | |
US8510693B2 (en) | Changing abstraction level of portion of circuit design during verification | |
US8458110B2 (en) | Verification support apparatus, verification support method, and computer product | |
US11960868B2 (en) | Branch objects for dependent optimization problems | |
US8396712B2 (en) | Method and system to generate finite state grammars using sample phrases | |
US20070250803A1 (en) | High-level synthesis method and high-level synthesis system | |
JP2008305019A (ja) | シミュレーション装置及びシミュレーション方法及びプログラム | |
US11836665B2 (en) | Explainable process prediction | |
KR102225820B1 (ko) | 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치 및 방법 | |
US8607175B1 (en) | Identifying logic blocks in a synthesized logic design that have specified inputs | |
US7475369B1 (en) | Eliminate false passing of circuit verification through automatic detecting of over-constraining in formal verification | |
JP2019144873A (ja) | ブロック線図解析装置 | |
CN117272918B (zh) | 在gui界面中进行时钟树规则配置的方法及相关设备 |