(57)【特許請求の範囲】
【請求項１】
既存プログラムが変更されたテストの対象となる更新プログラムに対する１ないし複数の所定の変数へのテストデータとして、指定された前記変数について入力され得る全ての範囲の値を生成するとともに、生成した値を個々の変数のテストデータとして関連付けたテストの実行条件を生成処理する手段と、
前記既存プログラムに基づく既存システムが前記生成した実行条件で示された前記変数に基づくテスト動作を行なった際の該既存システムの出力を取得して記憶する手段と、
前記更新プログラムに基づく新システムが前記生成した実行条件で示された前記変数に基づくテスト動作を行なった際の該新システムの出力を取得して記憶する手段と、
前記既存システムおよび前記新システムの両出力を対比処理すると共に、対比結果に含まれる差分について、認知可能に出力する手段と、
を備え、
前記実行条件に含まれる所定の変数に対するテストデータのテスト順を、境界値および限界値について優先した後、試験済みとなる値の間の値である１の値を埋めるように優先付けし、その後更に試験済みとなる値の間の値である１の値を埋めるように優先付けするように繰り返して、前記所定の変数について入力され得る全ての範囲の値のテスト順を定め、
リアルタイムで行われる前記既存システムおよび前記新システムからの出力対比を、任意のタイミング又は予め設定したタイマ値により停止させ得る
ことを特徴とするプログラムテスト装置。
【請求項２】
請求項１記載のプログラムテスト装置であって、
前記所定の変数として、前記更新プログラムを解析して、新システムの使用する変数と該変数の取り得る全ての範囲を抽出する
ことを特徴とするプログラムテスト装置。
【請求項３】
請求項１又は２記載のプログラムテスト装置であって、
前記所定の変数として、文字変数を用いる場合に、文字種と入力文字数範囲を指定してその組み合わせ全てについて、該変数に関連付けて前記実行条件に含ませる
ことを特徴とするプログラムテスト装置。
【請求項４】
請求項１ないし３の何れか一項に記載のプログラムテスト装置であって、
前記所定の変数の入力され得る全ての範囲について、前記新システムから入力を受け得る範囲に限定して前記実行条件を生成する
ことを特徴とするプログラムテスト装置。
【請求項５】
請求項１ないし４の何れか一項に記載のプログラムテスト装置であって、
前記既存システムおよび前記新システムを前記実行条件に基づき並列動作させることによって得られる両システムの出力を、取得した順にリアルタイムに対比処理を行ない、対比結果の差分を順次認知可能に出力する
ことを特徴とするプログラムテスト装置。
【請求項６】
請求項１ないし５の何れか一項に記載のプログラムテスト装置であって、
前記出力の対比結果の差分に基づき、前記更新プログラムにおける抽出した差分に影響を与えたプログラムリスト列を認知可能に出力する
ことを特徴とするプログラムテスト装置。
【請求項７】
請求項１ないし６の何れか一項に記載のプログラムテスト装置であって、
前記出力の対比結果の差分について、前記既存プログラムと前記更新プログラムとのプログラムリストとしての差分および前記更新プログラムに基づき、更新に関連して変更されるべき出力事項であるか判定する
ことを特徴とするプログラムテスト装置。
【請求項８】
情報処理装置の制御部を、
既存プログラムが変更されたテストの対象となる更新プログラムに対する１ないし複数の所定の変数へのテストデータとして、指定された前記変数について入力され得る全ての範囲の値を生成するとともに、生成した値を個々の変数のテストデータとして関連付けたテストの実行条件を生成する手段と、
前記既存プログラムに基づく既存システムが前記生成した実行条件で示された前記変数に基づくテスト動作を行なった際の該既存システムの出力を取得して記憶する手段と、
前記更新プログラムに基づく新システムが前記生成した実行条件で示された前記変数に基づくテスト動作を行なった際の該新システムの出力を取得して記憶する手段と、
前記既存システムおよび前記新システムの両出力を対比すると共に、対比結果に含まれる差分について、認知可能に出力する手段
として動作させ、
前記制御部に、
前記実行条件に含まれる所定の変数に対するテストデータのテスト順を、境界値および限界値について優先した後、試験済みとなる値の間の値である１の値を埋めるように優先付けし、その後更に試験済みとなる値の間の値である１の値を埋めるように優先付けするように繰り返して、前記所定の変数について入力され得る全ての範囲の値のテスト順を定めて、
リアルタイムで行われる前記既存システムおよび前記新システムからの出力対比を、任意のタイミング又は予め設定したタイマ値により停止させる
動作を行わせる
ことを特徴とするプログラム。
【請求項９】
既存プログラムが変更されたテストの対象となる更新プログラムに対する１ないし複数の所定の変数へのテストデータとして、指定された前記変数について入力され得る全ての範囲の値を生成し、
生成した値を個々の変数のテストデータとして関連付けたテストの実行条件を、該実行条件に含まれる所定の変数に対するテストデータのテスト順を、境界値および限界値について優先した後、試験済みとなる値の間の値である１の値を埋めるように優先付けし、その後更に試験済みとなる値の間の値である１の値を埋めるように優先付けするように繰り返して、前記所定の変数について入力され得る全ての範囲の値のテスト順を定めて、前記既存プログラムに基づく既存システムと前記更新プログラムに基づく新システムとのリアルタイムで行う出力対比を任意のタイミング又は予め設定したタイマ値により停止させ得るように生成処理し、
前記既存システムが前記生成した実行条件で示された前記変数に基づくテスト動作を行なった際の該既存システムの出力を取得し、
前記新システムが前記生成した実行条件で示された前記変数に基づくテスト動作を行なった際の該新システムの出力を取得し、
前記既存システムおよび前記新システムの両出力を対比すると共に、対比結果に含まれる差分について、認知可能に出力する
ことを特徴とする情報処理システムによるプログラムテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置上に形成されるシステムを動作させるプログラムについて、そのプログラムの動作テストを行なうプログラムテストシステムに関する。
【背景技術】
【０００２】
新規の情報処理システムを構築する為の各種プログラムは、作成された際に動作テストが行なわれている。また、プログラムのテストは、既存システムを更新する場合にも実施されている。  
プログラムのテストために、情報処理システムで検討されている入力データとそれに対する出力データの組み合わせをチェック項目として設計し、問題があるパターンや無いパターンをひとつひとつ作成することが行われている。この場合、異常値や境界値などを仕様の要求事項として定義したり、プログラムの作成者によって検討したりして、入力データと出力データとの対応を積み上げていくのが一般的である。
【０００３】
この作業は、テスト結果としての入出力データを利用者が正しい値を全てチェック項目として記述しておかなければならず、チェック項目を作成することに手間がかかり、また正確性にも課題がある。これは、プログラムの作成前に、正しい結果とする項目の入出力関係を一つずつ正しく精確に判断することが求められるためである。
【０００４】
関連する技術としては、特許文献１が挙げられる。特許文献１には、プログラムリストから、変動するパラメータ（変数）とその範囲を抽出し、その範囲内からシステムにテスト実施時に入力すべきテストパターン（変数の組合せ）とテストデータ（変数値）とを生成し、その後、生成したテストパターンとテストデータを用いてテストを実施するシステムテスト装置が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２２１４４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
人為的にテスト項目（変数）とそのテストデータを作成してテストを行なう方法では、一般的に、既存システムを評価した時の評価項目である境界値や限界値について新システムでも実施し同じ結果が出ることを確認するとともに、改造観点で新たな評価項目を追加し確認するものである。この場合、既存システムで評価しなかった項目については改造前後で動作が変わったかどうかは確認できない。
【０００７】
また、特許文献１に記載されたように、プログラムリストを解析してテストパターンとテストデータとを生成して、テストを実施する場合では、新規に作成した部分について重点的にテストする一方、既存システムから変更を行っていない部分については、既存システムを評価した時の評価項目である境界値や限界値について新システムでも実施し同じ結果が出ることの確認を行うこととなる。この場合でも、既存システムで評価しなかった項目は改造前後で動作が変わったかどうかは確認できない。
【０００８】
また、既存のテスト方法では、網羅率が低いことも課題と捉えることができる。評価パターンが多い場合に、境界値、限界値といくつかのサンプリングデータのみによる評価を一般的に行っており、大規模システムに成るほど網羅度が低くなる傾向がある。
【０００９】
本発明は、上記課題に鑑みて成されたものであり、プログラムの新規作為時にテストを行なわなかった確認項目に対しても、後発的に発生する変更に伴い生ずる問題を低減させるテストを行なえるプログラムテスト装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係るプログラムテスト装置は、既存プログラムが変更されたテストの対象となる更新プログラムに対する１ないし複数の所定の変数へのテストデータとして、指定された前記変数について入力され得る全ての範囲の値を生成するとともに、生成した値を個々の変数のテストデータとして関連付けたテストの実行条件を生成処理する手段と、前記既存プログラムに基づく既存システムが前記生成した実行条件で示された前記変数に基づくテスト動作を行なった際の該既存システムの出力を取得して記憶する手段と、前記更新プログラムに基づく新システムが前記生成した実行条件で示された前記変数に基づくテスト動作を行なった際の該新システムの出力を取得して記憶する手段と、前記既存システムおよび前記新システムの両出力を対比処理すると共に、対比結果に含まれる差分について、認知可能に出力する手段と、を備え、前記実行条件に含まれる所定の変数に対するテストデータのテスト順を、境界値および限界値について優先した後、試験済みとなる値の間の値である１の値を埋めるように優先付けし、その後更に試験済みとなる値の間の値である１の値を埋めるように優先付けするように繰り返して、前記所定の変数について入力され得る全ての範囲の値のテスト順を定め、リアルタイムで行われる前記既存システムおよび前記新システムからの出力対比を、任意のタイミング又は予め設定したタイマ値により停止させ得ることを特徴とする。 
本発明に係るプログラムは、情報処理装置の制御部を、既存プログラムが変更されたテストの対象となる更新プログラムに対する１ないし複数の所定の変数へのテストデータとして、指定された前記変数について入力され得る全ての範囲の値を生成するとともに、生成した値を個々の変数のテストデータとして関連付けたテストの実行条件を生成する手段と、前記既存プログラムに基づく既存システムが前記生成した実行条件で示された前記変数に基づくテスト動作を行なった際の該既存システムの出力を取得して記憶する手段と、前記更新プログラムに基づく新システムが前記生成した実行条件で示された前記変数に基づくテスト動作を行なった際の該新システムの出力を取得して記憶する手段と、前記既存システムおよび前記新システムの両出力を対比すると共に、対比結果に含まれる差分について、認知可能に出力する手段として動作させ、前記制御部に、前記実行条件に含まれる所定の変数に対するテストデータのテスト順を、境界値および限界値について優先した後、試験済みとなる値の間の値である１の値を埋めるように優先付けし、その後更に試験済みとなる値の間の値である１の値を埋めるように優先付けするように繰り返して、前記所定の変数について入力され得る全ての範囲の値のテスト順を定めて、リアルタイムで行われる前記既存システムおよび前記新システムからの出力対比を、任意のタイミング又は予め設定したタイマ値により停止させる動作を行わせることを特徴とする。 
本発明に係るプログラムテスト方法は、既存プログラムが変更されたテストの対象となる更新プログラムに対する１ないし複数の所定の変数へのテストデータとして、指定された前記変数について入力され得る全ての範囲の値を生成し、生成した値を個々の変数のテストデータとして関連付けたテストの実行条件を、該実行条件に含まれる所定の変数に対するテストデータのテスト順を、境界値および限界値について優先した後、試験済みとなる値の間の値である１の値を埋めるように優先付けし、その後更に試験済みとなる値の間の値である１の値を埋めるように優先付けするように繰り返して、前記所定の変数について入力され得る全ての範囲の値のテスト順を定めて、前記既存プログラムに基づく既存システムと前記更新プログラムに基づく新システムとのリアルタイムで行う出力対比を任意のタイミング又は予め設定したタイマ値により停止させ得るように生成処理し、前記既存システムが前記生成した実行条件で示された前記変数に基づくテスト動作を行なった際の該既存システムの出力を取得し、前記新システムが前記生成した実行条件で示された前記変数に基づくテスト動作を行なった際の該新システムの出力を取得し、前記既存システムおよび前記新システムの両出力を対比すると共に、対比結果に含まれる差分について、認知可能に出力することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、プログラムの新規作為時にテストを行なわなかった確認項目に対しても、後発的に発生する変更に伴い生ずる問題を低減させるテストを行い得るプログラムテスト装置を提供できる。
【図面の簡単な説明】
【００１２】
【図１】実施の一形態のプログラムテストシステムの構成を示すブロック図である。
【図２】実施の一形態のプログラムテスト装置の動作を示すフローチャートである。
【図３】動作例の説明において使用するプログラムリストに含まれる変数を示す説明図である。
【図４】動作例の説明において既存の評価項目とする変数aの入力パターンと出力である戻り値との対応を示す説明図である。
【図５】動作例の説明において実行条件データとする情報を示す説明図である。
【図６】動作例の説明において既存システムおよび新システムから取得したテスト結果を示す説明図である。
【図７】動作例の説明において既存システムおよび新システムから取得したテスト結果を対比後の出力例を説明図である。
【図８】動作例の説明において既存のテストパターンで既存システムおよび新システムから取得したテスト結果を示す説明図である。
【図９】別の動作例の説明において実行条件データとする情報を示す説明図である。
【図１０】更に別の動作例の説明において文字変数の範囲を指定するユーザインタフェースを示す説明図である。
【図１１】更に別の動作例の説明において文字変数の組み合わせを示す説明図である。
【発明を実施するための形態】
【００１３】
本発明の実施形態を図１ないし図１１と動作例を用いて説明する。
【００１４】
図１は、実施の一形態のプログラムテストシステムの構成を示すブロック図である。  
図１に示す様に、プログラムテスト装置１０は、プログラム制御により動作するデータ処理装置２０と情報を記憶する記憶装置３０から構成され、キーボード等の入力装置４０と、ディスプレイ装置や印刷装置等の出力装置５０が接続されている。また、プログラムテスト装置１０には、既存プログラムに基づく既存システム１００と、更新プログラムに基づく新システム２００が接続されている。
【００１５】
データ処理装置２０は、テスト実行条件生成手段２１と、既存システム戻り値データ保存手段２２と、新システム戻り値データ保存手段２３と、データ比較出力手段２４とを備える。
【００１６】
テスト実行条件生成手段２１は、テストデータとする１ないし複数のパラメータ（変数）について、入力装置４０から指定を受け付けて、その変数について入力され得る全ての範囲（全定義域）を抽出生成する。その後生成した値を変数のテストデータとしてそれぞれ関連付けてテストの実行条件データとして生成し、記憶装置３０の実行条件記憶装置３１に格納する。また、テスト実行条件生成手段２１は、変数の指定を受けつけることに換えて、更新プログラムを構文解析により、新システム２００の使用する変数となり得る変数とその変数の取り得る範囲を抽出し、テストの実行条件データとして生成するようにしてもよい。また、テスト実行条件生成手段２１は、更新プログラムの構文解析と共に、既存プログラムの構文解析を行い、プログラム間の差分について識別して、新システム２００のみで使用する変数と既存システム１００のみで使用する変数を抽出して記憶保持するようにしてもよい。  
テストデータを生成する変数としては、数値変数や、文字変数、関数などが挙げられる。文字変数を用いる場合には、文字種と入力文字数範囲を指定することによって、入力され得る全ての範囲（組み合わせ）の値を生成すればよい。  
また、テストデータを生成する変数は、新システム２００から入力を受け得る範囲に限定して、変数の入力され得る全ての範囲としてもよい。このように限定すれば、テスト時間の削減が図れる。  
なお、実行条件として、どのパラメータと値の組から行なうかを示すテスト順が定められて記録されてもよい。テスト順は、例えば、境界値および限界値について優先した後、試験済みとなる値の間の値である１の値を埋めるように優先付けし、その後更に試験済みとなる値の間の値である１の値を埋めるように優先付けするように繰り返して、全ての範囲の値に順番付けしてもよいし、関数などを用いて定めてもよい。この順序に従うことによって、任意のタイミング又は予め設定したタイマ値などによりテストを停止させても、その時までに行ったテストが有効に利用できる。換言すれば、非常に長い時間のテストと成るようなプログラムに対しても、全ての領域に対して順次テストを行える環境を提供できる。  
また、実行条件データについては後に動作例に示して説明する。
【００１７】
既存システム戻り値データ保存手段２２は、既存システム１００が実行条件データを用いてテスト動作した際の戻り値（出力値）を記憶装置３０の入出力データ記憶部３２に保存する。また、既存システム１００に、実行条件記憶装置３１から得た実行条件データを受け渡すようにしてもよい。
【００１８】
新システム戻り値データ保存手段２３は、新システム２００が実行条件データを用いてテスト動作した際の戻り値（出力値）を記憶装置３０の入出力データ記憶部３２に保存する。また、新システム２００に、実行条件記憶装置３１から得た実行条件データを受け渡すようにしてもよい。
【００１９】
データ比較出力手段２４は、入出力データ記憶部３２から既存システム１００と新システム２００の戻り値データを取得し、同一入力に対する戻り値データを比較して、その比較結果を認知可能に出力装置５０に出力する。すなわち、プログラム更新の前後での出力の違いを対比できるように、差分を抽出して色分けや強調表示などにより示す。このとき、新システム２００および既存システム１００の一方でのみ使用する変数に起因する差分について個別に認知可能に提示してもよい。
【００２０】
また、データ比較出力手段２４は、既存システム１００および新システム２００を同時にテスト動作させることによって得られる両システムの出力を、取得すると共に即座にテスト対比結果として表示するようにしてもよい。このようにすれば、対比すべき両値がそろった時点でその結果の確認を行えるようになる。
【００２１】
また、データ比較出力手段２４は、出力の対比結果の差分に基づき、更新プログラムにおける抽出した差分に影響を与えたプログラムリスト列を認知可能に出力するようにしてもよい。
【００２２】
また、データ比較出力手段２４は、出力の対比結果の差分について、既存プログラムと更新プログラムとのプログラムリストとしての差分および更新プログラムに基づき、更新に関連して変更されるべき出力事項であるか判定するようにしてもよい。この判定の一例を示せば、差分が、更新プログラムでの変更部分に含まれる変数に因るか、また、含まれた変数を引用する関数に依るかなどである。
【００２３】
記憶装置３０は、実行条件記憶部３１と、入出力データ記憶部３２とを備えている。なおテスト量が小さければ、データ処理装置２０と記憶装置３０とを分けずにデータ処理装置２０の有する記憶手段を用いるようにしてもよい。 
実行条件記憶部３１は、実行条件として実行対象とするプログラムの入力パラメータ（変数）と想定定義域（範囲）を対応付けた形式で記憶する。  
入出力データ記憶部３２は、既存システム１００と新システム２００がそれぞれプログラム実行時（テスト時）に出力した値を入力に対応付けられた形式で記憶する。
【００２４】
既存システム１００は、修正される前の既存プログラムによって構築される情報処理システムである。既存システム１００では、内在する既存プログラム実行部１１０が既存プログラムに従い動作することによって所望のシステムとして動作する。既存プログラム実行部１１０は、既存システム戻り値データ保存手段２２に対して、示されたテストの実行条件に従ったテスト時の出力値を通知する。
【００２５】
新システム２００は、既存プログラムを修正されて作られた更新プログラムによって構築される情報処理システムである。新システム２００では、内在する更新プログラム実行部２１０が既存プログラムに従い動作することによって所望のシステムとして動作する。更新プログラム実行部１１０は、新システム戻り値データ保存手段２３に対して、示されたテストの実行条件に従ったテスト時の出力値を通知する。
【００２６】
なお、既存システム１００と新システム２００を動作させる方法は、個々のプログラムの種類に従い、上記と異なるように既存システムを動作させてもよい。
【００２７】
次に、図１及び図２を参照して本プログラムテストシステムの動作について詳細に説明する。
【００２８】
入力装置４０からプログラムテスト装置１０に対してプログラムテストの実行を指示されると、テスト実行条件生成手段２１は、指定されたパラメータ又は更新プログラムを解析して得たパラメータに対して、マシンの許す変数の範囲全ての入力パラメータデータ定義域を実行条件記憶部３１に保存する（ステップS１）。
【００２９】
既存システム戻り値データ保存手段２２は、実行条件記憶部３１から得たテストの実行条件データを既存プログラム実行部１１０に渡し、全ての定義域の値を入力としながら既存プログラム実行部１１０により既存システム１００を構築する既存プログラムを実行する。この際、既存システム戻り値データ保存手段２２は、定義域のそれぞれの値ごとの戻り値データを実行ごとに既存プログラム実行部１１０より取得し、入出力データ記憶部３２に保存する（ステップS２）。ここでいう出力データは戻り値のことである。
【００３０】
同様に、新システム戻り値データ保存手段２３は、実行条件記憶部３１から得たテストの実行条件データを更新プログラム実行部２１０に渡し、全ての定義域の値を入力としながら更新プログラム実行部２１０により新システム２００を構築する更新プログラムを実行する。この際、新システム戻り値データ保存手段２３は、定義域のそれぞれの値ごとの戻り値データを実行ごとに新プログラム実行部２１０より取得し、入出力データ記憶部３２に保存する（ステップS３）。
【００３１】
データ比較出力手段２４は入出力データ記憶部３２に保存した既存システム戻り値データと新システム戻り値データを比較し、その結果を認知可能な状態として出力装置５０に出力する（ステップS４）。
【００３２】
このように、プログラムテストシステムを構築することによって、プログラムの新規作為時にテストを行なわなかった変数に対しても、更新プログラムで使用する変数であれば更新に伴う差分を確認できる。
【００３３】
次に、具体例を用いて本実施形態の動作を説明する。 
図３は、動作説明で使用するプログラムリストに含まれる変数を示す説明図である。例示する変数として、図３のようなint test( int a )という関数があったとする。本来はさらにいろいろな変数が使われ、ライン数も格段に多く、出力値は複雑に変数を経由して決定する場合が多いのだが、ここでは分かりやすくするため、敢えて簡潔な例としている。
【００３４】
（Ａ）に示す既存プログラムに対する既存の評価項目が、aの範囲を-5≦a≦13（aは整数）とし、この中でaの境界値としてa=-5,-1,0,8,9,13を、境界値と境界値の間の値の代表値としてa=-3,4,11を、評価対象として挙げるとする。すると、既存システム１００の評価項目としては図４のような入出力結果を評価することになる。
【００３５】
ここで、図３（Ａ）に示した既存プログラムのint test( int a )の「r = a % 2;」の箇所を（Ｂ）に示すように更新プログラムとして「r = a % 4;」と変更する場合を説明する。すなわち、既存システム１００から新システム２００に更新する箇所を、「r = a % 2;」⇒「r = a % 4;」とする。
【００３６】
入力装置４０からプログラムテストの実行を指示されると、テスト実行条件生成手段２１は、実行条件データを生成して実行条件記憶部３１に保存する。この際、32ビットの整数を用いるシステムであれば変数aに-2,147,483,648から2,147,483,647の整数を図５のような形式で保存する（図２のステップS１）。
【００３７】
既存システム戻り値データ保存手段２２は、既存プログラム実行部１１０に実行条件記憶部３１から得た実行条件データを渡し、全ての定義域の値を入力としながら入力パラメータ4,294,967,296パターンのa=-2,147,483,648〜2,147,483,647を増分で増やしつつ順次 既存プログラム実行部１１０により既存プログラムを実行する。既存システム戻り値データ保存手段２２は、定義域のそれぞれの値ごとの戻り値データを実行ごとに既存プログラム実行部１１０より取得し、入出力データ記憶部３２に図６に示すように保存する（ステップS２）。
【００３８】
同様に、新システム戻り値データ保存手段２３は、更新プログラム実行部２１０に実行条件記憶部３１から得た実行条件データを渡し、全ての定義域の値を入力としながら入力パラメータ4,294,967,296パターンa=-2,147,483,648〜2,147,483,647を増分で増やしつつ順次 更新プログラム実行部２１０により更新プログラムを実行する。新システム戻り値データ保存手段２３は、定義域のそれぞれの値ごとの戻り値データを実行ごとに更新プログラム実行部２１０より取得し、入出力データ記憶部３２に図６に示すように保存する（ステップS３）。
【００３９】
データ比較出力手段２４は、図６に示すような新旧保存された戻り値データを比較するとa=2,3,6,7の場合の戻り値の値が異なっており、図７に例示するように認知可能に色付けや強調表示などによって不一致箇所を出力装置５０に対して出力する（ステップS４）。
【００４０】
その後、必要に応じて、更新プログラムリストの中から抽出した差分に影響を与えているプログラムリスト列「r = a % 4;」を認知可能に提示したり、既存プログラムと更新プログラムとのプログラムリストとしての差分である「r = a % 2;」を「r = a % 4;」に変更したことから生じている戻り値の差分であるか判定する処理を行なってもよい。
【００４１】
なお、図７に示した不一致箇所は、図８に示すように既存の評価項目に対する評価結果では改造前後の動作差異として検出できなかった値である。このことからも改造前後の動作差異が検出できるプログラムテスト装置の有効性が分かる。
【００４２】
このように本実施形態によれば、新システムのプログラムテスト用の入力データと出力データの組み合わせを開発者が用意する必要がなくなり、作業工数を削減できることである。マシンの許す変数の範囲全ての入力データの組み合わせから出力データを実際に自動実行して結果を得るためである。
【００４３】
また、プログラムのテストの網羅度が高まる。これは、入力データをひとつひとつではなく全定義域として実行するため、膨大な組み合わせをテストできるからである。一般的には入力データの組み合わせが膨大である場合、境界値、限界値といくつかのサンプリングデータのみの評価となり想定範囲の境界値や特異データの組み合わせでテストをする。図７と図８とを用いて説明したように、既存のテストでは検出できなかった改造前後の動作差異が検出できていることが分かる。
【００４４】
次に、別の具体例を用いて本実施形態の動作を説明する。 
本例では、変数とする入力パラメータが２つ以上である点で先の具体的動作例と異なっている。テストデータの組み合わせは多くなるが実施は同様である。また、入力パラメータが整数値ではなく実数値の場合でも入力データとして指定してもよい。  
例示する変数として、int test2( int a, int b )という関数について、入力データはa、bで定義域をそれぞれ-2,147,483,648≦a≦2,147,483,647、-2,147,483,648≦b≦2,147,483,647（a,bは整数）とする。
【００４５】
入力装置４０からプログラムのテストの実行を指示されると、テスト実行条件生成手段２１は、マシンの許すそれぞれの変数の範囲全ての入力パラメータデータ定義域を抽出し、実行条件データとして図９のような形式で実行条件記憶部３１に保存する（ステップS１）。  
既存システム戻り値データ保存手段２２は、既存プログラム実行部１１０から、入力パラメータ4,294,967,296パターン×4,294,967,296パターンで既存システム１００が動作した際のそれぞれの値ごとの戻り値データを取得し、入出力データ記憶部３２に保存する（ステップS２）。  
同様に、新システム戻り値データ保存手段２３は、新プログラム実行部２１０から、入力パラメータ4,294,967,296パターン×4,294,967,296パターンで新システム２００が動作した際のそれぞれの値ごとの戻り値データを取得し、入出力データ記憶部３２に保存する（ステップS３）。  
データ比較出力手段２４は、新旧保存されたデータを比較し、不一致箇所を出力装置５０から提示する（ステップS４）。
【００４６】
次に、更に別の具体例を用いて本実施形態の動作を説明する。本実施例は、数値データの変わりに文字データを入力データとした動作を説明する。指定された変数や更新プログラムから抽出された文字変数は、文字種と文字数との組み合わせによって、変数について入力され得る全ての範囲の値を表現できる。
【００４７】
例えば、図１０のようなUI画面から文字種と文字数を選択し、テスト実行条件生成手段２１が指定された文字変数の入力され得る全ての範囲の値として文字種と文字数を実行条件記憶部３１に保存する。なお、自動抽出の場合でも、新システムのユーザインタフェースへの入力制限数を反映させて文字数を取得すればよい。
【００４８】
既存システム戻り値データ保存手段２２と新システム戻り値データ保存手段２３は、定義域のそれぞれの値ごとの戻り値データを、既存システム１００または新システム２００から取得し、入出力データ記憶部３２に保存する。  
データ比較出力手段２４は入出力データ記憶部３２に保存した既存システム戻り値データと新システム戻り値データを比較し、結果を出力装置５０に出力する。
【００４９】
ここで、図１１を用いて評価する文字種と文字数の全組み合わせ方をアルファベット文字の場合で示す。  
まず１文字目で全文字種（a,b,c,・・・x,y,z,A,B,C,・・・,Z）を入力データとして評価する。  
次に、２文字のパターンは、それぞれの１文字に全１文字を組み合わせる。そして、aに対して全１文字（a,b,c,・・・x,y,z,A,B,C,・・・,Z）を２文字目として２文字とする（aa,ab,ac,・・・ax,ay,az,aA,aB,aC,・・・,aZ）。同様にbに対して全１文字（a,b,c,・・・x,y,z,A,B,C,・・・,Z）を２文字目として２文字とする（ba,bb,bc,・・・bx,by,bz,bA,bB,bC,・・・,bZ）。 これを繰り返し、全２文字のパターンを評価する。  
次に、上記全２文字パターンに全1文字パターンを３文字目として組み合わせる。同様に全３文字パターンに全1文字パターンを４文字目として組み合わせる。これを繰り返し、指定された文字数までの文字パターンを評価する。 
なお、文字を複数種類組み合わせて用いることも可能であり、その場合には、組み合わせパターンを同様の方法で増やせばよい。
【００５０】
以上説明したように、テストデータを自動作成し、新規開発時には網羅できていなかった確認項目があっても、改造前後の動作差異の見落としを減少させてテストの網羅度をアップすることができる。  
すなわち、上記プログラムテスト装置を用いることによって、プログラムの新規作為時にテストを行なわなかった確認項目に対しても、後発的に発生する変更に伴い生ずる問題を低減させるテストを行なえるプログラムテスト装置を提供できる。
【００５１】
なお、プログラムテスト装置の各部および各手段は、ハードウェアとソフトウェアの組み合わせを用いて実現すればよい。ハードウェアとソフトウェアとを組み合わせた形態では、ＲＡＭにプログラムテスト用プログラムが展開され、該プログラムに基づいて制御部（ＣＰＵ）等のハードウェアを動作させることによって、各部および各種手段を実現する。また、前記プログラムは、記憶媒体に記録されて頒布されても良い。当該記録媒体に記録されたプログラムは、有線、無線、又は記録媒体そのものを介して、メモリに読込まれ、制御部等を動作させる。尚、記録媒体を例示すれば、オプティカルディスクや磁気ディスク、半導体メモリ装置、ハードディスクなどが挙げられる。
【００５２】
上記実施の形態を別の表現で説明すれば、プログラムテスト装置として動作させる情報処理装置を、ＲＡＭに展開されたプログラムテスト用プログラムに基づき、上記データ処理装置および記憶装置として動作させることで実現することが可能である。
【００５３】
また、本発明の具体的な構成は前述の実施の形態に限られるものではなく、この発明の要旨を逸脱しない範囲の変更があってもこの発明に含まれる。
【００５４】
また、上記の実施形態の一部又は全部は、以下のようにも記載されうる。尚、以下の付記は本発明をなんら限定するものではない。  
［付記１］
既存プログラムが変更されたテストの対象となる更新プログラムに対する１ないし複数の所定の変数へのテストデータとして、指定された前記変数について入力され得る全ての範囲の値を生成するとともに、生成した値を個々の変数のテストデータとして関連付けたテストの実行条件を生成する手段と、
前記既存プログラムに基づく既存システムが前記生成した実行条件で示された前記変数に基づくテスト動作を行なった際の該既存システムの出力を取得して記憶する手段と、
前記更新プログラムに基づく新システムが前記生成した実行条件で示された前記変数に基づくテスト動作を行なった際の該新システムの出力を取得して記憶する手段と、
前記既存システムおよび前記新システムの両出力を対比すると共に、対比結果に含まれる差分について、認知可能に出力する手段と
を備えることを特徴とするプログラムテスト装置。
【００５５】
［付記２］
上記付記記載のプログラムテスト装置であって、
前記所定の変数として、前記更新プログラムを解析して、新システムの使用する変数と該変数の取り得る範囲を抽出する
ことを特徴とするプログラムテスト装置。
【００５６】
［付記３］
上記付記記載のプログラムテスト装置であって、
前記所定の変数として、文字変数を用いる場合に、文字種と入力文字数範囲を指定してその組み合わせ全てについて、該変数に関連付けた実行条件に含ませる
ことを特徴とするプログラムテスト装置。
【００５７】
［付記４］
上記付記記載のプログラムテスト装置であって、
前記所定の変数の入力され得る全ての範囲について、前記新システムから入力を受け得る範囲に限定して実行条件を生成する
ことを特徴とするプログラムテスト装置。
【００５８】
［付記５］
上記付記記載のプログラムテスト装置であって、
前記既存システムおよび前記新システムを前記実行条件に基づき並列動作させることによって得られる両システムの出力を、取得した順にリアルタイムに対比を行ない、対比結果の差分を順次認知可能に出力する
ことを特徴とするプログラムテスト装置。
【００５９】
［付記６］
上記付記記載のプログラムテスト装置であって、
前記実行条件に含まれる所定の変数に対するテストデータのテスト順を、境界値および限界値について優先した後、試験済みとなる値の間の値である１の値を埋めるように優先付けし、その後更に試験済みとなる値の間の値である１の値を埋めるように優先付けするように繰り返して、前記変数について入力され得る全ての範囲の値のテスト順を定め、
リアルタイムで行われる前記既存システムおよび前記新システムからの出力対比を、任意のタイミング又は予め設定したタイマ値により停止させ得る
ことを特徴とするプログラムテスト装置。
【００６０】
［付記７］
上記付記記載のプログラムテスト装置であって、
前記出力の対比結果の差分に基づき、前記更新プログラムにおける抽出した差分に影響を与えたプログラムリスト列を認知可能に出力する
ことを特徴とするプログラムテスト装置。
【００６１】
［付記８］
上記付記記載のプログラムテスト装置であって、
前記出力の対比結果の差分について、前記既存プログラムと前記更新プログラムとのプログラムリストとしての差分および前記更新プログラムに基づき、更新に関連して変更されるべき出力事項であるか判定する
ことを特徴とするプログラムテスト装置。
【００６２】
［付記９］
情報処理装置の制御部を、
既存プログラムが変更されたテストの対象となる更新プログラムに対する１ないし複数の所定の変数へのテストデータとして、指定された前記変数について入力され得る全ての範囲の値を生成するとともに、生成した値を個々の変数のテストデータとして関連付けたテストの実行条件を生成する手段と、
前記既存プログラムに基づく既存システムが前記生成した実行条件で示された前記変数に基づくテスト動作を行なった際の該既存システムの出力を取得して記憶する手段と、
前記更新プログラムに基づく新システムが前記生成した実行条件で示された前記変数に基づくテスト動作を行なった際の該新システムの出力を取得して記憶する手段と、
前記既存システムおよび前記新システムの両出力を対比すると共に、対比結果に含まれる差分について、認知可能に出力する手段
として動作させることを特徴とするプログラム。
【００６３】
［付記１０］
上記付記記載のプログラムであって、
前記制御部に、前記所定の変数として、前記更新プログラムを解析して、新システムの使用する変数と該変数の取り得る範囲を抽出させる
ことを特徴とするプログラム。
【００６４】
［付記１１］
上記付記記載のプログラムであって、
前記所定の変数として、文字変数を用いる場合に、文字種と入力文字数範囲を指定してその組み合わせ全てについて、該変数に関連付けた実行条件に含ませる
ことを特徴とするプログラム。
【００６５】
［付記１２］
上記付記記載のプログラムであって、
前記所定の変数の入力され得る全ての範囲について、前記新システムから入力を受け得る範囲に限定して実行条件を生成させる
ことを特徴とするプログラム。
【００６６】
［付記１３］
上記付記記載のプログラムであって、
前記既存システムおよび前記新システムを前記実行条件に基づき並列動作させることによって得られる両システムの出力を、取得した順にリアルタイムに対比を行なわせ、対比結果の差分を順次認知可能に出力させる
ことを特徴とするプログラム。
【００６７】
［付記１４］
上記付記記載のプログラムであって、
前記実行条件に含まれる所定の変数に対するテストデータのテスト順を、境界値および限界値について優先した後、試験済みとなる値の間の値である１の値を埋めるように優先付けし、その後更に試験済みとなる値の間の値である１の値を埋めるように優先付けするように繰り返して、前記変数について入力され得る全ての範囲の値のテスト順を定め、
リアルタイムで行われる前記既存システムおよび前記新システムからの出力対比を、任意のタイミング又は予め設定したタイマ値により停止させ得るように動作させる
ことを特徴とするプログラム。
【００６８】
［付記１５］
上記付記記載のプログラムであって、
前記出力の対比結果の差分に基づき、前記更新プログラムにおける抽出した差分に影響を与えたプログラムリスト列を認知可能に出力させる
ことを特徴とするプログラム。
【００６９】
［付記１６］
上記付記記載のプログラムであって、
前記出力の対比結果の差分について、前記既存プログラムと前記更新プログラムとのプログラムリストとしての差分および前記更新プログラムに基づき、更新に関連して変更されるべき出力事項であるか判定させる
ことを特徴とするプログラム。
【００７０】
［付記１７］
既存プログラムが変更されたテストの対象となる更新プログラムに対する１ないし複数の所定の変数へのテストデータとして、指定された前記変数について入力され得る全ての範囲の値を生成し、
生成した値を個々の変数のテストデータとして関連付けたテストの実行条件を生成し、
前記既存プログラムに基づく既存システムが前記生成した実行条件で示された前記変数に基づくテスト動作を行なった際の該既存システムの出力を取得し、
前記更新プログラムに基づく新システムが前記生成した実行条件で示された前記変数に基づくテスト動作を行なった際の該新システムの出力を取得し、
前記既存システムおよび前記新システムの両出力を対比すると共に、対比結果に含まれる差分について、認知可能に出力する
ことを特徴とするプログラムテスト方法。
【００７１】
［付記１８］
上記付記記載のプログラムテスト方法であって、
前記所定の変数として、前記更新プログラムを解析して、新システムの使用する変数と該変数の取り得る範囲を抽出する
ことを特徴とするプログラムテスト方法。
【００７２】
［付記１９］
上記付記記載のプログラムテスト方法であって、
前記所定の変数として、文字変数を用いる場合に、文字種と入力文字数範囲を指定してその組み合わせ全てについて、該変数に関連付けた実行条件に含ませる
ことを特徴とするプログラムテスト方法。
【００７３】
［付記２０］
上記付記記載のプログラムテスト方法であって、
前記所定の変数の入力され得る全ての範囲について、前記新システムから入力を受け得る範囲に限定して実行条件を生成する
ことを特徴とするプログラムテスト方法。
【００７４】
［付記２１］
上記付記記載のプログラムテスト方法であって、
前記既存システムおよび前記新システムを前記実行条件に基づき並列動作させることによって得られる両システムの出力を、取得した順にリアルタイムに対比を行い、対比結果の差分を順次認知可能に出力する
ことを特徴とするプログラムテスト方法。
【００７５】
［付記２２］
上記付記記載のプログラムテスト方法であって、
前記実行条件に含まれる所定の変数に対するテストデータのテスト順を、境界値および限界値について優先した後、試験済みとなる値の間の値である１の値を埋めるように優先付けし、その後更に試験済みとなる値の間の値である１の値を埋めるように優先付けするように繰り返して、前記変数について入力され得る全ての範囲の値のテスト順を定め、
リアルタイムで行われる前記既存システムおよび前記新システムからの出力対比を、任意のタイミング又は予め設定したタイマ値により停止させ得るように動作する
ことを特徴とするプログラムテスト方法。
【００７６】
［付記２３］
上記付記記載のプログラムテスト方法であって、
前記出力の対比結果の差分に基づき、前記更新プログラムにおける抽出した差分に影響を与えたプログラムリスト列を認知可能に出力する
ことを特徴とするプログラムテスト方法。
【００７７】
［付記２４］
上記付記記載のプログラムテスト方法であって、
前記出力の対比結果の差分について、前記既存プログラムと前記更新プログラムとのプログラムリストとしての差分および前記更新プログラムに基づき、更新に関連して変更されるべき出力事項であるか判定させる
ことを特徴とするプログラムテスト方法。
【産業上の利用可能性】
【００７８】
本発明は、あらゆるプログラム言語のテストに利用可能である。
【符号の説明】
【００７９】
１０    プログラムテスト装置
２０    データ処理装置
２１    テスト実行条件生成手段
２２    既存システム戻り値データ保存手段
２３    新システム戻り値データ保存手段
２４    データ比較出力手段
３０    記憶装置
３１    実行条件記憶部
３２    入出力データ記憶部
４０    入力装置
５０    出力装置
１００  既存システム
１１０  既存プログラム実行部
２００  新システム
２１０  更新プログラム実行部
【図１】
0005874891.tif 000002
【図２】
0005874891.tif 000003
【図３】
0005874891.tif 000004
【図４】
0005874891.tif 000005
【図５】
0005874891.tif 000006
【図６】
0005874891.tif 000007
【図７】
0005874891.tif 000008
【図８】
0005874891.tif 000009
【図９】
0005874891.tif 000010
【図１０】
0005874891.tif 000011
【図１１】
0005874891.tif 000012