JP2016018390A - 検証支援方法、検証支援装置、及びプログラム - Google Patents
検証支援方法、検証支援装置、及びプログラム Download PDFInfo
- Publication number
- JP2016018390A JP2016018390A JP2014140781A JP2014140781A JP2016018390A JP 2016018390 A JP2016018390 A JP 2016018390A JP 2014140781 A JP2014140781 A JP 2014140781A JP 2014140781 A JP2014140781 A JP 2014140781A JP 2016018390 A JP2016018390 A JP 2016018390A
- Authority
- JP
- Japan
- Prior art keywords
- data
- execution
- program
- input data
- generation
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 161
- 238000012795 verification Methods 0.000 title claims abstract description 96
- 238000012545 processing Methods 0.000 claims abstract description 149
- 238000003860 storage Methods 0.000 claims abstract description 65
- 239000000284 extract Substances 0.000 claims abstract description 7
- 238000012360 testing method Methods 0.000 description 74
- 238000010586 diagram Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 9
- 238000013500 data storage Methods 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 101000622430 Homo sapiens Vang-like protein 2 Proteins 0.000 description 5
- 102100023520 Vang-like protein 2 Human genes 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 101100194362 Schizosaccharomyces pombe (strain 972 / ATCC 24843) res1 gene Proteins 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000002910 structure generation Methods 0.000 description 3
- 101100194363 Schizosaccharomyces pombe (strain 972 / ATCC 24843) res2 gene Proteins 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000002054 transplantation Methods 0.000 description 2
- 102100021202 Desmocollin-1 Human genes 0.000 description 1
- 101000968043 Homo sapiens Desmocollin-1 Proteins 0.000 description 1
- 101000880960 Homo sapiens Desmocollin-3 Proteins 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
[第1の実施形態]
図1は、本実施形態による検証支援システム100の一例を示すブロック図である。
この図に示すように、検証支援システム100は、検証支援装置1と、旧環境のコンピュータ装置2と、新環境のコンピュータ装置3とを備えている。
検証支援システム100は、例えば、COBOLによって旧環境(更改前の環境)で構築されているプログラムを、新しい環境である新環境(更改後の環境)に移植(更改)する場合に、プログラムが正しく新環境に移植されたか否かの検証を支援する。
新環境のコンピュータ装置3は、移植後(更改後)の動作環境であるコンピュータ装置である。
検証支援装置1は、入力部10と、表示部20と、記憶部30と、制御部40とを備えている。
図2は、実施形態におけるソース記憶部31が記憶するソースコードの一例を示す図である。図2に示す例では、ソースコード(SC1)は、COBOLにより記述されたプログラムであり、ソース記憶部31は、ソースコードをテキストファイルとして記憶している。なお、この図2において、ソースコードの左端の数字は、ソースコードの行数を示している。
ここで、中間データとは、ソースコードを構文解析したデータであり、例えば、図3に示すように、中間データ(XD1)は、XML(Extensible Markup Language)で記述されている。また、グラフ構造情報は、図4に示すように、ノードとエッジとで構成される数学的グラフ構造のデータである。中間データ、及びグラフ構造情報は、後述するグラフ生成部41によって生成される。中間データ、及びグラフ構造情報の詳細については、図3及び図4を参照して後述する。
実行環境記憶部34は、旧環境のコンピュータ装置2と、新環境のコンピュータ装置3とで、対象のプログラムを実行させるための環境情報(例えば、テストコードやスタブ)を記憶する。なお、この環境情報は、後述する実行制御部43によって構築(生成)される。
実行結果記憶部35は、旧環境のコンピュータ装置2と、新環境のコンピュータ装置3とで実行し対象のプログラムの実行結果、及び、後述する結果比較部44が比較した比較結果を記憶する。
また、データ処理ノードには、代入文、演算処理、文字列処理などのデータの処理情報が含まれている。例えば、図4に示すノードN2には、“42:MOVE ‘3’ TO BEAN1−4” というデータの処理情報を含んでいる。
また、グラフ生成部41は、生成したグラフ構造を示すグラフ構造情報をグラフ記憶部32に記憶させる。
データ生成部42は、生成した入力データを入力データ記憶部33に記憶させる。
具体的に、実行制御部43は、それぞれの環境でプログラムを実行させる、テストコード(テストドライバ、及び、入力データを含むスタブ)を生成し、生成したテストコード(テストドライバ、及びスタブ)と、ソースコードとを実行環境記憶部34に記憶させる。実行制御部43は、実行環境記憶部34が記憶するソースコード、テストコード(テストドライバ、及びスタブ)により、旧環境のコンピュータ装置2と、新環境のコンピュータ装置3とのそれぞれに、対象のプログラムを実行させる。なお、実行制御部43によるテストコードの実行動作の詳細については、後述する。
また、実行制御部43は、旧環境のコンピュータ装置2と、新環境のコンピュータ装置3とのそれぞれが対象のプログラムを実行した実行結果を実行結果記憶部35に記憶させる。
次に、図5を参照して、本実施形態におけるランダム生成処理について説明する。
図5は、本実施形態におけるランダム生成処理の一例を示す図である。
データ生成部42は、図5に示すグラフ構造GR2に対して、抽出したルートを検索することで、入力データを生成する対象の変数を特定する。この図に示すグラフ構造GR2では、変数“A”、“B”が、入力データを生成する対象の変数となる。データ生成部42は、この変数“A”、“B”に対して、乱数に基づいて、図5に示すような入力データD1を生成する。
このように、ランダム生成処理では、データ生成部42は、乱数に基づいて入力データを生成するため、大規模又は複雑なプログラムに対しても、入力データを生成することができる。また、データ生成部42は、乱数を生成するという簡易な手段により、入力データを生成することができる。
次に、図6を参照して、本実施形態におけるシンプル生成処理について説明する。
図6は、本実施形態におけるシンプル生成処理の一例を示す図である。
データ生成部42は、図6に示すグラフ構造GR3に対して、抽出したルートを検索することで、入力データを生成する対象の変数を特定する。この図に示すグラフ構造GR3では、変数“A”、“B”が、入力データを生成する対象の変数となる。データ生成部42は、抽出したルートごとに、この変数“A”、“B”に対して、分岐の条件を満たす値として、図6に示すような入力データD2を生成する。
このように、シンプル生成処理では、データ生成部42は、ルートごとに、分岐条件を単独で満たす入力データを生成するので、より簡易な手段により、入力データを生成することができる。また、データ生成部42は、入力データを生成する処理時間を短縮することができる。
次に、図7を参照して、本実施形態におけるシンボリック生成処理について説明する。
図7は、本実施形態におけるシンボリック生成処理の一例を示す図である。
データ生成部42は、図7に示すグラフ構造GR4に対して、抽出したルートごとに、各ノードをシンボリック式(図7シンボル式SB1)に変換する。データ生成部42は、各シンボル式を制約として、分岐処理ノードの分岐条件を満たす入力データを生成する。すなわち、データ生成部42は、各シンボル式を制約として、制約充足問題を解くことにより、入力データを生成する。なお、データ生成部42は、分岐条件を満たす入力データを生成する場合に、分岐処理ノードから遡って分岐条件を満たす入力データを生成してもよいし、ルートに沿って、シンボル式を演算して、分岐条件を満たす入力データを生成してもよい。
図7に示す例では、データ生成部42は、ルートRT4に対して、“A=any(任意)、B=−1”の入力データ(D3)を生成する。
このように、シンボリック生成処理では、データ生成部42は、ルートの途中で条件式に関わる演算がされている場合もあっても、適切な入力データを生成することができる。
図8は、本実施形態による検証支援システム100の動作の一例を示すフローチャートである。
この図において、まず、検証支援装置1の制御部40は、ソースコードを取得する(ステップS101)。すなわち、制御部40のグラフ生成部41は、ソース記憶部31
が記憶するソースコードを取得する。
この図において、ソースコードSC2には、条件式“A=B AND C=D”により、“処理1”と“処理2”とに分岐する分岐処理が記述されている。また、ソースコードSC3には、条件式“A=B”と条件式“C=D”との2回の分岐処理により、“処理1”と“処理2”とに分岐する処理が記述されている。この2つの処理は、同一の処理を実行するが、ソースコードSC2と、ソースコードSC3とでは、記述が異なっている。そのため、グラフ構造は、ソースコードSC2ではグラフ構造GR5に示すように1つのノードで表され、ソースコードSC3ではグラフ構造GR6に示すように2つのノードで表される。
このような場合には、データ生成部42は、ソースコードSC3のグラフ構造GR6において、2つのノードを1つに再構成し、図9に示すグラフ構造GR5のようなグラフ構造を生成する。このように、ノードの再構成を行うことにより、検証支援装置1は、グラフ構造を簡略化することができるとともに、実行結果をグラフ構造により比較し易くすることができる。
次に、データ生成部42は、対象のプログラムの規模に基づき、生成アルゴリズムを決定する(ステップS107)。例えば、データ生成部42は、対象のプログラムの規模を、例えば、ノードの数、ルートの数、IF文の数などに基づいて判定する。データ生成部42は、例えば、対象のプログラムの規模が“大規模”であると判定した場合に、生成アルゴリズムにランダム生成処理を選択する。また、データ生成部42は、例えば、対象のプログラムの規模が“中規模”であると判定した場合に、生成アルゴリズムにシンプル生成処理を選択する。また、データ生成部42は、例えば、対象のプログラムの規模が“小規模”であると判定した場合に、生成アルゴリズムにシンボリック生成処理を選択する。
ここで、図10を参照して、テストコードの実行動作について説明する。
図10は、本実施形態におけるテストコードの実行動作の一例を示す図である。
実行制御部43は、データ生成部42が生成した入力データに基づいて、図10に示すような、テストドライバTD1と、スタブSTB1と、テスト用ソースコードTC1(単体テスト用COBOLソースコード)とをテスト環境情報として生成する。そして、実行制御部43は、テスト環境情報を旧環境のコンピュータ装置2に送信して、テストコードを実行させる。
旧環境のコンピュータ装置2は、テストコードを実行する際に、次のように、テストコードを実行する。
次に、[STEP2]として、旧環境のコンピュータ装置2は、テストを実行する。すなわち、旧環境のコンピュータ装置2及び新環境のコンピュータ装置3は、テストドライバTD1のcall記述により、テスト用ソースコードTC1(単体テスト用COBOLソースコード)を呼び出して実行する。
次に、[STEP3]として、旧環境のコンピュータ装置2は、テスト用ソースコードTC1の実行において、スタブSTB1から値(入力データ)をゲット(取得)して、テストを実行する。
このように、旧環境のコンピュータ装置2は、実行制御部43が生成(作成)したテスト環境により、テストを実行する。
この図において、カバレッジ情報CV1は、旧環境のコンピュータ装置2によってテストコードを実行した実行結果を示し、カバレッジ情報CV2は、新環境のコンピュータ装置3によってテストコードを実行した実行結果を示している。
図11に示すように、結果比較部44は、旧環境のコンピュータ装置2によるカバレッジ情報CV1と、新環境のコンピュータ装置3によるカバレッジ情報CV2とを比較可能なように、並べて表示部20に表示させる。
一方で、例えば、実行された箇所、及び呼び出された累計回数に、旧環境と新環境とで差異が生じていない場合には、対象のプログラムにおいて、旧環境と新環境とで同値性が確認されたことになり、対象のプログラムの移植(更改)が問題ないことになる。
図12は、本実施形態におけるグラフ構造の生成処理の一例を示すフローチャートである。
この図に示すように、グラフ生成部41は、取得したソースコードの構文解析を行い、中間データを生成する(ステップS201)。すなわち、グラフ生成部41は、例えば、図2に示すソースコード(SC1)を、図3に示すようなXMLによる中間データ(XD1)に変換する。グラフ生成部41は、生成(変換)したMLによる中間データをグラフ記憶部32に記憶させる。
これにより、グラフ構造を示す情報が簡略化されるので、後でデータ生成部42が実行する入力データの生成処理における処理負荷(処理の計算量)を低減することになる。
ステップS203の処理後に、グラフ生成部41は、グラフ構造の生成処理を終了する。
図13は、本実施形態におけるランダム生成処理の一例を示すフローチャートである。
この図に示すように、まず、データ生成部42は、対象の変数を特定する(ステップS301)。すなわち、データ生成部42は、抽出したルートを検索することで、入力データを生成する対象の変数を特定する。
ステップS303において、データ生成部42は、対象の変数の範囲を考慮して、図5に示すように、ランダムに入力データを生成する。データ生成部42は、例えば、対象の変数が定義されている変数型の取り得る範囲内の乱数を生成し、生成した乱数に基づいて入力データを生成する。
データ生成部42は、予め指定された指定時間の経過後に、ランダム生成処理を終了する。
図14は、本実施形態におけるシンプル生成処理の一例を示すフローチャートである。
この図に示すように、まず、データ生成部42は、対象の変数を特定する(ステップS401)。すなわち、データ生成部42は、抽出したルートを検索することで、入力データを生成する対象の変数を特定する。
ステップS403において、データ生成部42は、図6に示すように、条件式から対象の変数の入力データを生成する。
データ生成部42は、予め指定された指定実行ルート数に達した後に、シンプル生成処理を終了する。
図15は、本実施形態におけるシンボリック生成処理の一例を示すフローチャートである。
この図に示すように、まず、データ生成部42は、ルートの共通部分の制約充足問題を解き、データを生成するルートを特定する(ステップS501)。ここで、データ生成部42は、共通部分の制約充足問題が解けなかった場合には、当該共通部分を含むルートを入力データの生成対象から除外する。また、データ生成部42は、後述するS503において、入力データ記憶部33に記憶させた解が得られないルートの特徴に基づいて、対象のルートを限定する。すなわち、データ生成部42は、解が得られないルートの特徴を示すルートを入力データの生成対象から除外する。
また、ステップS504において、データ生成部42は、制約充足問題を解くことができない場合には、制約充足問題の解が得られないルートの特徴を入力データ記憶部33に記憶させる。
データ生成部42は、予め指定された指定実行ルート数に達した後に、シンボリック生成処理を終了する。
これにより、本実施形態による検証支援方法は、第1の実行環境(旧環境)と第2の実行環境(新環境)との動作保障確認をより簡易に行うことができる。
これにより、本実施形態による検証支援方法は、プログラムを網羅的に実行するための入力データより確実に生成することができる。よって、本実施形態による検証支援方法は、より効率良くプログラムの検証を行うことができる。
これにより、分岐処理ノードごとに分岐条件を満たす入力データを生成するので、本実施形態による検証支援方法は、より簡易な手段により、プログラムを網羅的に実行するための入力データを生成することができる。よって、本実施形態による検証支援方法は、入力データを生成するための計算量を低減しつつ、プログラムを網羅的に実行するための入力データを生成することができる。
これにより、プログラムの規模に基づいて、適切な生成アルゴリズムにより、入力データが生成されるので、本実施形態による検証支援方法は、計算量を低減しつつ、プログラムを網羅的に実行するための入力データをより確実に生成することができる。
これにより、本実施形態による検証支援装置1及び検証支援システム100は、上述した本実施形態による検証支援方法と同様の効果を奏する。すなわち、本実施形態による検証支援装置1及び検証支援システム100は、より効率良くプログラムの検証を行うことができる。
次に、図面を参照して、本発明に係る第2の実施形態について説明する。
上述した第1の実施形態では、ランダム生成処理と、シンプル生成処理と、シンボリック生成処理とのうちのいずれかに基づいて、入力データを生成する例を説明したが、本実施形態では、ランダム生成処理と、シンプル生成処理と、シンボリック生成処理とを組み合わせて効率的に入力データを生成する例を説明する。
本実施形態では、データ生成部42の処理が、第1の実施形態と異なる。
図16は、本実施形態による検証支援システム100の動作の一例を示すフローチャートである。
この図において、ステップS601からステップS606までの処理は、図8に示すステップS101からステップS106までの処理と同様であるので、ここではその説明を省略する。
ステップS614からステップS620までの処理は、図8に示すステップS112からステップS118までの処理と同様であるので、ここではその説明を省略する。
これにより、本実施形態による検証支援方法は、適切な生成アルゴリズムの組合せにより、入力データが生成されるので、計算量を低減しつつ、プログラムを網羅的に実行するための入力データを生成することができる。よって、本実施形態による検証支援方法は、より効率良くプログラムの検証を行うことができる。
これにより、本実施形態による検証支援方法は、計算量を低減しつつ、プログラムを網羅的に実行するための入力データをより確実に生成することができる。
次に、本実施形態では、上述した第2の実施形態と同様に、ランダム生成処理と、シンプル生成処理と、シンボリック生成処理とを組み合わせて効率的に入力データを生成する別の例を説明する。
本実施形態では、データ生成部42及び実行制御部43の処理が、第1及び第2の実施形態と異なる。
図17は、本実施形態による検証支援システム100の動作の一例を示すフローチャートである。
この図において、ステップS701からステップS714までの処理は、図8に示すステップS101からステップS114までの処理と同様であるので、ここではその説明を省略する。
また、ステップS717からステップS720までの処理は、図8に示すステップS115からステップS118までの処理と同様であるので、ここではその説明を省略する。
これにより、本実施形態による検証支援方法は、繰り返しによって適切な生成アルゴリズムにより繰り返し入力データが生成されるので、プログラムを網羅的に実行するための入力データを効率良く生成することができる。
なお、データ生成部42は、例えば、前回と異なる生成アルゴリズムに基づいて、入力データを生成してもよいし、前回と同じ生成アルゴリズムに基づいて、入力データを生成してもよい。前回と異なる生成アルゴリズムに基づいて、入力データを生成した場合には、本実施形態による検証支援方法は、適切な生成アルゴリズムの組み合わせにより、入力データを効率良く生成することができる。
図18〜図20は、本実施形態による比較結果の表示の変形例を示す図である。
なお、本実施形態において、対象のプログラムは、クラス、パッケージ、モジュール、ファンクションなどと称する階層に分かれて構成されており、例えば、図18に示す例は、パッケージの階層における比較結果を表示する一例である。この場合、結果比較部44は、画面G2に示すような比較結果を表示する。ここで、結果比較部44は、サブ画面SG1に、旧環境での実行結果としてカバレッジ情報を示す棒グラフを表示させるとともに、新環境での実行結果としてカバレッジ情報を示す棒グラフを表示させる。
なお、結果表RES1において、例えば、各パッケージの結果部分をユーザが入力部10を介して指定した場合(例えば、マウスなどによりクリックした場合)、結果比較部44は、さらに下位の階層の比較結果を表示させるようにしてもよい。これにより、本実施形態による検証支援方法は、各階層の比較結果を確認し、対象のプログラム(システム)全体の比較結果を確認ことにより、対象のプログラム(システム)全体の検証が完了したか否かをユーザが判定することができる。
また、上述した例では、結果表RES1に示すような比較結果を表示させる例を説明したが、サブ画面SG1に示す棒グラフを、例えば、XMLの記述に変換して、テキスト情報として、テキスト比較ツール(例えば、diffなど)により比較してもよい。
このように、図19及び図20に示す変形例では、結果比較部44が、旧環境と新環境との相違箇所の表示色を異ならせて、表示部20に表示させるので、ユーザが相違箇所をより容易に認識することができる。
また、結果比較部44は、さらに、相違箇所の内容を相違箇所に表示させるので、ユーザは、旧環境と新環境とで相違が生じている内容を把握することができるとともに、その対策を検討し易くすることができる。
例えば、上記の各実施形態において、検証支援装置1が記憶部30を備える例を説明したが、これに限定されるものではなく、記憶部30の一部又は全部を検証支援装置1の外部に備えてもよい。例えば、ネットワーク上の記憶装置が、ソース記憶部31を備え、検証支援装置1は、ネットワーク上のソース記憶部31からソースコードを取得してもよい。
また、上記の各実施形態において、検証支援装置1は、1台の装置として説明したが、複数の装置から構成されてもよい。例えば、制御部40の一部を検証支援装置1の外部に備えてもよい。
また、「コンピュータシステム」は、インターネットやWAN、LAN、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、CD−ROM等の非一過性の記録媒体であってもよい。
2 旧環境のコンピュータ装置
3 新環境のコンピュータ装置
10 入力部
20 表示部
30 記憶部
31 ソース記憶部
32 グラフ記憶部
33 入力データ記憶部
34 実行環境記憶部
35 実行結果記憶部
40 制御部
41 グラフ生成部
42 データ生成部
43 実行制御部
44 結果比較部
100 検証支援システム
Claims (9)
- グラフ生成部が、プログラムを記述したソースコードを記憶するソースコード記憶部から前記ソースコードを取得し、取得した前記ソースコードを構文解析して、データの処理に関するノードであるデータ処理ノードと、処理の分岐に関するノードである分岐処理ノードとを含むグラフ構造を生成するグラフ生成ステップと、
データ生成部が、前記グラフ生成ステップにて生成したグラフ構造に基づいて、前記プログラムを実行する実行経路を抽出し、抽出した前記実行経路を前記プログラムに実行させるための入力データを生成するデータ生成ステップと、
実行制御部が、前記プログラムにより正常に動作することが確認されている第1の実行環境と、前記プログラムにより正常に動作することが確認されていない第2の実行環境とのそれぞれの実行環境において、前記データ生成ステップにて生成した入力データにより前記プログラムを実行させる実行制御ステップと
を含むことを特徴とする検証支援方法。 - 比較部が、前記第1の実行環境と前記第2の実行環境とのそれぞれで実行された実行経路と実行回数とを含むそれぞれの実行結果を比較する比較ステップを含む
ことを特徴とする請求項1に記載の検証支援方法。 - 前記データ生成ステップにおいて、
前記実行経路に対して、当該実行経路におけるデータ処理ノードの処理を制約として、前記分岐処理ノードの分岐条件を満たす前記入力データを生成する
ことを特徴とする請求項1又は請求項2に記載の検証支援方法。 - 前記データ生成ステップにおいて、
前記実行経路に対して、前記分岐処理ノードごとに、分岐条件を満たす前記入力データを生成する
ことを特徴とする請求項1から請求項3のいずれか一項に記載の検証支援方法。 - 前記データ生成ステップにおいて、
前記実行経路に対して、前記分岐処理ノードごとに、乱数に基づいて前記入力データを生成する第1の生成アルゴリズムと、
前記実行経路に対して、前記分岐処理ノードごとに、分岐条件を満たす前記入力データを生成する第2の生成アルゴリズムと、
前記実行経路に対して、当該実行経路におけるデータ処理ノードを制約として、前記分岐処理ノードの分岐条件を満たす前記入力データを生成する第3の生成アルゴリズムと
を組み合わせて、前記入力データを生成する
ことを特徴とする請求項1又は請求項2に記載の検証支援方法。 - 前記データ生成ステップにおいて、
前記第1の生成アルゴリズムと第2の生成アルゴリズムとのうちの少なくとも一方にて前記入力データを生成した後に、前記実行経路のうち、生成した前記入力データにて実行されない実行経路に対して、前記第3の生成アルゴリズムに基づいて前記入力データを生成する
ことを特徴とする請求項5に記載の検証支援方法。 - 前記データ生成ステップにおいて、
前記プログラムの規模に基づいて、
前記実行経路に対して、前記分岐処理ノードごとに、乱数に基づいて前記入力データを生成する第1の生成アルゴリズムと、
前記実行経路に対して、前記分岐処理ノードごとに、分岐条件を満たす前記入力データを生成する第2の生成アルゴリズムと、
前記実行経路に対して、当該実行経路におけるデータ処理ノードを制約として、前記分岐処理ノードの分岐条件を満たす前記入力データを生成する第3の生成アルゴリズムと
のうちのいずれかの生成アルゴリズムを選択し、選択した当該生成アルゴリズムに基づいて前記入力データを生成する
ことを特徴とする請求項1又は請求項2に記載の検証支援方法。 - プログラムを記述したソースコードを記憶するソースコード記憶部から前記ソースコードを取得し、取得した前記ソースコードを構文解析して、データの処理に関するノードであるデータ処理ノードと、処理の分岐に関するノードである分岐処理ノードとを含むグラフ構造を生成するグラフ生成部と、
前記グラフ生成部が生成したグラフ構造に基づいて、前記プログラムを実行する実行経路を抽出し、抽出した前記実行経路を前記プログラムに実行させるための入力データを生成するデータ生成部と、
前記プログラムにより正常に動作することが確認されている第1の実行環境と、前記プログラムにより正常に動作することが確認されていない第2の実行環境とのそれぞれの実行環境において、前記データ生成部が生成した入力データにより前記プログラムを実行させる実行制御部と
を備えることを特徴とする検証支援装置。 - コンピュータに、
プログラムを記述したソースコードを記憶するソースコード記憶部から前記ソースコードを取得し、取得した前記ソースコードを構文解析して、データの処理に関するノードであるデータ処理ノードと、処理の分岐に関するノードである分岐処理ノードとを含むグラフ構造を生成するグラフ生成ステップと、
前記グラフ生成ステップにて生成したグラフ構造に基づいて、前記プログラムを実行する実行経路を抽出し、抽出した前記実行経路を前記プログラムに実行させるための入力データを生成するデータ生成ステップと、
前記プログラムにより正常に動作することが確認されている第1の実行環境と、前記プログラムにより正常に動作することが確認されていない第2の実行環境とのそれぞれの実行環境において、前記データ生成ステップにて生成した入力データにより前記プログラムを実行させる実行制御ステップと
を実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014140781A JP6364263B2 (ja) | 2014-07-08 | 2014-07-08 | 検証支援方法、検証支援装置、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014140781A JP6364263B2 (ja) | 2014-07-08 | 2014-07-08 | 検証支援方法、検証支援装置、及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016018390A true JP2016018390A (ja) | 2016-02-01 |
JP6364263B2 JP6364263B2 (ja) | 2018-07-25 |
Family
ID=55233568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014140781A Active JP6364263B2 (ja) | 2014-07-08 | 2014-07-08 | 検証支援方法、検証支援装置、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6364263B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018049492A (ja) * | 2016-09-23 | 2018-03-29 | 富士通株式会社 | 解析装置、解析プログラムおよび解析方法 |
JP2019003385A (ja) * | 2017-06-14 | 2019-01-10 | 富士通株式会社 | 解析装置、解析プログラムおよび解析方法 |
JP2020144842A (ja) * | 2019-03-08 | 2020-09-10 | 富士通株式会社 | コンピュータ可読プログラム検査のための入力の生成 |
CN112347454A (zh) * | 2020-11-06 | 2021-02-09 | 上海悦易网络信息技术有限公司 | 一种验证信息生成方法及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06236295A (ja) * | 1992-03-16 | 1994-08-23 | Nippon Telegr & Teleph Corp <Ntt> | プログラム移植支援システム |
JP2000347900A (ja) * | 1999-06-02 | 2000-12-15 | Fujitsu Ltd | 入力パラメータ生成装置、その方法及び記録媒体 |
JP2010267023A (ja) * | 2009-05-13 | 2010-11-25 | Nippon Telegr & Teleph Corp <Ntt> | テストデータ生成方法及び装置及びプログラム |
US20130007772A1 (en) * | 2011-06-28 | 2013-01-03 | Unisys Corporation | Method and system for automated system migration |
WO2013058393A1 (ja) * | 2011-10-18 | 2013-04-25 | 日本電気株式会社 | 異常検出装置、プログラム、及び、方法 |
JP2014006643A (ja) * | 2012-06-22 | 2014-01-16 | Fujitsu Ltd | プログラム、テストケース生成方法およびテストケース生成装置 |
-
2014
- 2014-07-08 JP JP2014140781A patent/JP6364263B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06236295A (ja) * | 1992-03-16 | 1994-08-23 | Nippon Telegr & Teleph Corp <Ntt> | プログラム移植支援システム |
JP2000347900A (ja) * | 1999-06-02 | 2000-12-15 | Fujitsu Ltd | 入力パラメータ生成装置、その方法及び記録媒体 |
JP2010267023A (ja) * | 2009-05-13 | 2010-11-25 | Nippon Telegr & Teleph Corp <Ntt> | テストデータ生成方法及び装置及びプログラム |
US20130007772A1 (en) * | 2011-06-28 | 2013-01-03 | Unisys Corporation | Method and system for automated system migration |
WO2013058393A1 (ja) * | 2011-10-18 | 2013-04-25 | 日本電気株式会社 | 異常検出装置、プログラム、及び、方法 |
JP2014006643A (ja) * | 2012-06-22 | 2014-01-16 | Fujitsu Ltd | プログラム、テストケース生成方法およびテストケース生成装置 |
Non-Patent Citations (2)
Title |
---|
TAO SUN(孫) 他: "「マルチメディアシステムに対するQoS機能試験の一手法」", 情報処理学会論文誌, vol. 第45巻 第2号, JPN6018009524, 15 February 2004 (2004-02-15), JP, pages 475 - 486, ISSN: 0003760150 * |
西川 忍: "「Javaテスト・ツールJtestの威力を検証する」", 日経ソフトウェア, vol. 第3巻 第11号, JPN6018009525, 24 October 2000 (2000-10-24), JP, pages 104 - 109, ISSN: 0003760151 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018049492A (ja) * | 2016-09-23 | 2018-03-29 | 富士通株式会社 | 解析装置、解析プログラムおよび解析方法 |
JP2019003385A (ja) * | 2017-06-14 | 2019-01-10 | 富士通株式会社 | 解析装置、解析プログラムおよび解析方法 |
JP2020144842A (ja) * | 2019-03-08 | 2020-09-10 | 富士通株式会社 | コンピュータ可読プログラム検査のための入力の生成 |
JP7318516B2 (ja) | 2019-03-08 | 2023-08-01 | 富士通株式会社 | コンピュータ可読プログラム検査のための入力の生成 |
CN112347454A (zh) * | 2020-11-06 | 2021-02-09 | 上海悦易网络信息技术有限公司 | 一种验证信息生成方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
JP6364263B2 (ja) | 2018-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10943191B2 (en) | Designer tool for managing cloud computing services | |
JP6364263B2 (ja) | 検証支援方法、検証支援装置、及びプログラム | |
US9330369B2 (en) | Resource planning for data protection validation | |
US11182132B1 (en) | Determining functional equivalence of configurations of a model | |
US20170235661A1 (en) | Integration of Software Systems via Incremental Verification | |
US8955115B2 (en) | Automatic generation of security checks | |
CN108073390A (zh) | 统一管理多个工程中配置文件的方法、装置及系统 | |
Alhazov et al. | P systems working in maximal variants of the set derivation mode | |
Petroulakis et al. | Patterns for the design of secure and dependable software defined networks | |
WO2012036304A1 (ja) | 動作検証支援装置、動作検証支援方法、及び動作検証支援プログラム | |
Jena et al. | Test case creation from UML sequence diagram: a soft computing approach | |
US20210019136A1 (en) | Method, device, and computer program product for updating software | |
Târnaucă et al. | Modelling a flexible manufacturing system using reconfigurable finite capacity Petri nets | |
CN110737426A (zh) | 程序块创建方法、装置、计算机设备和存储介质 | |
JP5743663B2 (ja) | テスト支援システム、テスト支援方法、及びプログラム | |
Bouré et al. | First steps on asynchronous lattice-gas models with an application to a swarming rule | |
CN112632293B (zh) | 行业图谱的构建方法、装置、电子设备及存储介质 | |
CN107665124A (zh) | 模块化JavaScript文件处理方法、设备和服务器 | |
JP6665576B2 (ja) | 支援装置、支援方法及びプログラム | |
JP6287093B2 (ja) | ソフトウェア開発支援装置、ソフトウェア開発支援方法及びプログラム | |
JP2019144881A (ja) | セキュリティ評価サーバおよびセキュリティ評価方法 | |
Rosat et al. | Integral simplex using decomposition with primal cutting planes | |
Suzuki et al. | Exact computation of strongly connected reliability by binary decision diagrams | |
WO2024190228A1 (ja) | ソフトウェア検証装置、及びソフトウェア検証方法 | |
Bergomi et al. | Beyond traceability: Compared approaches to consistent security risk assessments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170512 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180209 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180327 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180516 |
|
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: 20180605 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180702 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6364263 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |