以下、本発明によるプログラム改修装置について、実施の形態を用いて説明する。なお、以下の実施の形態において、同じ符号を付した構成要素及びステップは同一または相当するものであり、再度の説明を省略することがある。
(実施の形態1)
本発明の実施の形態1による情報処理システムについて、図面を参照しながら説明する。本実施の形態による情報処理システムは、プログラム改修時の作業ミスを低減可能なプログラム改修装置を備えたものである。
図1は、本実施の形態による情報処理システム100の構成を示すブロック図である。本実施の形態による情報処理システム100は、テスト環境装置1と、プログラム改修装置2とを備える。テスト環境装置1では、後述する作業情報が生成される。プログラム改修装置2は、その作業情報を受け付け、その作業情報を用いてプログラムの改修を行うものである。テスト環境装置1、プログラム改修装置2は、例えば、パーソナルコンピュータや、サーバ、特定の処理に特化した専用機器等であってもよい。テスト環境装置1と、プログラム改修装置2との間での作業情報の授受は、例えば、有線または無線の通信回線を介して行われてもよく、着脱可能な記録媒体を用いて行われてもよく、その他の手段を介して行われてもよい。通信回線は、例えば、インターネットやイントラネット、公衆電話回線網等であってもよい。また、テスト環境装置1側をテスト環境と呼び、プログラム改修装置2側を本番環境と呼ぶこともある。本番環境は、実際に業務等で使用されている環境である。例えば、本番環境は、銀行のシステムであってもよく、ネットワーク上のサーバ(例えば、ネットワーク上のショッピングモールのサーバ等でもよい)であってもよく、その他の業務等で使用されている環境であってもよい。本実施の形態による情報処理システム100は、テスト環境において適切に実行されたプログラム改修のコマンドと、そのコマンドの実行結果とを記録し、それを用いて本番環境において、プログラム改修と、その検証とを行うものである。プログラム改修とは、例えば、機能追加等のプログラムの改良であってもよく、プログラムの修正であってもよく、あるいは、プログラムを変更するその他の処理であってもよい。
図2は、本実施の形態によるテスト環境装置1の構成を示すブロック図である。図2において、本実施の形態によるテスト環境装置1は、テスト環境プログラム記憶部11と、コマンド受付部12と、テスト環境コマンド実行部13と、作業情報蓄積部14と、作業情報出力部15と、表示部16と、テスト環境改修済プログラム記憶部17とを備える。
テスト環境プログラム記憶部11では、後述するプログラム改修装置2のプログラム記憶部23で記憶されるプログラムと同じプログラムが記憶される。このプログラムはどのようなものであってもよい。例えば、アプリケーションプログラムであってもよく、データベースのプログラムであってもよく、その他の種類のプログラムであってもよい。このプログラムは、例えば、前述のように、銀行のシステムやネットワーク上のサーバ等のシステムを稼働させるプログラムであってもよい。また、このプログラムは、例えば、プログラムの一部(例えば、モジュールやライブラリ等)であってもよく、全体であってもよい。また、このプログラムは、例えば、プログラム言語で記述されたものであってもよく、あるいは、他のプログラムが実行時に参照する外部変数等のデータやパラメータ等であってもよい。また、このプログラムは、外部変数等のデータやパラメータ、あるいは、モジュールやライブラリ等を含むものであってもよい。このプログラムがプログラム言語で記述されたものである場合に、その形式は、例えば、ソースプログラムであってもよく、実行形式のプログラムであってもよい。そのプログラムは、例えば、インタプリタ形式のものであってもよく、コンパイラ形式のものであってもよい。
テスト環境プログラム記憶部11にプログラムが記憶される過程は問わない。例えば、記録媒体を介してプログラムがテスト環境プログラム記憶部11で記憶されるようになってもよく、通信回線等を介して送信されたプログラムがテスト環境プログラム記憶部11で記憶されるようになってもよく、あるいは、入力デバイスを介して入力されたプログラムがテスト環境プログラム記憶部11で記憶されるようになってもよい。テスト環境プログラム記憶部11での記憶は、RAM等における一時的な記憶でもよく、あるいは、長期的な記憶でもよい。テスト環境プログラム記憶部11は、所定の記録媒体(例えば、半導体メモリや磁気ディスク、光ディスクなど)によって実現されうる。
コマンド受付部12は、コマンドの入力を受け付ける。このコマンド受付部12が受け付けるコマンドは、テスト環境プログラム記憶部11で記憶されているプログラムの改修のために実行されるものである。プログラムの改修は、例えば、モジュール等の入れ替えや、データベースのデータ補正、ライブラリの入れ替え、パラメータ、設定等の変更であってもよい。通常、そのコマンドは、手順書等にしたがって入力されることになる。本実施の形態では、テスト環境改修済プログラム記憶部17で記憶されている改修済プログラムをテスト環境プログラム記憶部11で記憶されているプログラムに適用するためのコマンドが、コマンド受付部12で受け付けられるものとする。改修対象のプログラムがネットワーク上のショッピングモールのサーバを稼働させるプログラムである場合には、そのコマンドは、例えば、そのサーバをショッピングモールの客が使用できなくするコマンド、プログラムの実行をとめるコマンド、プログラムの少なくとも一部を、改修済プログラムに入れ替えるコマンド、改修済プログラムの適用されたプログラムの実行を開始するコマンド、サーバをショッピングモールの客が使用できるようにするコマンド等であってもよい。また、コマンド受付部12は、テスト環境装置1に対するコマンド以外の入力を受け付けてもよい。なお、このテスト環境におけるコマンドの入力は、例えば、プログラム改修に関する手順書の検証のためや、手順書の作成のために行われるものであってもよい。コマンド受付部12は、例えば、入力デバイス(例えば、キーボードやマウス、タッチパネルなど)から入力されたコマンド等を受け付けてもよく、有線もしくは無線の通信回線を介して送信されたコマンド等を受信してもよい。なお、コマンド受付部12は、受け付けを行うためのデバイス(例えば、モデムやネットワークカードなど)を含んでもよく、あるいは含まなくてもよい。また、コマンド受付部12は、ハードウェアによって実現されてもよく、あるいは所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
テスト環境コマンド実行部13は、テスト環境プログラム記憶部11で記憶されているプログラムに対して、コマンド受付部12が受け付けたコマンドを実行する。なお、コマンド受付部12が受け付けた複数のコマンドが全体としてテスト環境プログラム記憶部11で記憶されているプログラムを改修するために用いられるのであれば、個々のコマンドは、そうでなくてもよい。例えば、あるコマンドは、ディレクトリの移動のコマンドや、ディレクトリのパスを表示するコマンド、テスト環境改修済プログラム記憶部17で記憶されている改修済プログラムを所定の場所にコピーするコマンド等であってもよい。本実施の形態では、テスト環境コマンド実行部13がコマンド受付部12で受け付けられたコマンドを実行することにより、テスト環境改修済プログラム記憶部17で記憶されている改修済プログラムが、テスト環境プログラム記憶部11で記憶されているプログラムに適用されることになるものとする。また、このテスト環境でのコマンドの実行は、エラーの存在しうるコマンドの実行であるため、例えば、コマンドの実行前にチェックポイントを作成しておき、コマンドの実行の結果が適切なものでない場合には、任意のチェックポイントにロールバック(後進復帰)することができるようにしてもよい。なお、このようなロールバックの技術はすでに公知であり、その詳細な説明を省略する。
作業情報蓄積部14は、テスト環境コマンド実行部13によるコマンドの実行に応じて、実行されたコマンドと、コマンドの実行結果に関する情報である結果情報とを有する実行情報を1以上有する作業情報を所定の記録媒体に蓄積する。一の実行情報は、一のコマンドと、その一のコマンドの実行に対応する戻り値に関する結果情報とを有する。したがって、作業情報蓄積部14が、テスト環境コマンド実行部13によるコマンドの実行に応じて、順次、実行情報を蓄積していくことによって、結果として、その1以上の実行情報を有する作業情報が所定の記録媒体に蓄積されることになる。また、結果情報は、コマンドの実行に対する戻り値そのものであってもよく、その戻り値に関する条件であってもよく、その他の戻り値に関する情報であってもよい。戻り値に関する条件とは、例えば、戻り値に「normal end」が含まれることであってもよく、戻り値に「completed normally」が含まれることであってもよい。作業情報が蓄積される所定の記録媒体は、例えば、半導体メモリや、光ディスク、磁気ディスク等であり、作業情報蓄積部14が有していてもよく、あるいは作業情報蓄積部14の外部に存在してもよい。また、その所定の記録媒体は、作業情報を一時的に記憶するものであってもよく、そうでなくてもよい。
作業情報出力部15は、作業情報蓄積部14が蓄積した作業情報を出力する。ここで、この出力は、プログラム改修装置2に作業情報を渡すための出力であれば、その内容を問わない。この出力は、例えば、所定の機器(例えば、プログラム改修装置2でもよく、他の中継の装置でもよい)への通信回線を介した送信でもよく、記録媒体(着脱可能な記録媒体でもよい)への蓄積でもよく、他の構成要素への引き渡しでもよい。なお、作業情報出力部15は、出力を行うデバイス(例えば、通信デバイスや、記録媒体とのインターフェースなど)を含んでもよく、あるいは含まなくてもよい。また、作業情報出力部15は、ハードウェアによって実現されてもよく、あるいは、それらのデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
表示部16は、テスト環境装置1における情報を適宜、表示する。表示部16は、例えば、コマンド受付部12が受け付けたコマンドを表示し、また、そのコマンドの実行に応じた戻り値を表示してもよい。また、表示部16は、コマンドの実行に関する操作や、作業情報の出力に間操作を受け付けるための画面等を表示してもよい。なお、表示部16は、それらの表示を行う表示デバイス(例えば、CRTや液晶ディスプレイなど)を含んでもよく、あるいは含まなくてもよい。また、表示対象の表示は、別の装置においてなされてもよい。その場合には、表示部16は、装置の外部に対して表示対象の情報を送信するものであってもよい。また、表示部16は、ハードウェアによって実現されてもよく、あるいは表示デバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
テスト環境改修済プログラム記憶部17では、改修済プログラムが記憶される。この改修済プログラムは、後述するプログラム改修装置2の改修済プログラム記憶部30で記憶される改修済プログラムと同様のものである。この改修済プログラムがテスト環境プログラム記憶部11で記憶されているプログラムに適用されることにより、プログラムの改修が行われることになる。この改修済プログラムは、例えば、プログラム言語で記述されたもの(例えば、ライブラリやモジュール等であってもよい)であってもよく、あるいは、外部変数等のデータやパラメータ等であってもよい。本実施の形態では、改修済プログラムが、例えば、プログラムにおいて入れ替えられるモジュールやライブラリ、データ、パラメータ等である場合について主に説明する。
テスト環境改修済プログラム記憶部17に改修済プログラムが記憶される過程は問わない。例えば、記録媒体を介して改修済プログラムがテスト環境改修済プログラム記憶部17で記憶されるようになってもよく、通信回線等を介して送信された改修済プログラムがテスト環境改修済プログラム記憶部17で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された改修済プログラムがテスト環境改修済プログラム記憶部17で記憶されるようになってもよい。テスト環境改修済プログラム記憶部17での記憶は、RAM等における一時的な記憶でもよく、あるいは、長期的な記憶でもよい。テスト環境改修済プログラム記憶部17は、所定の記録媒体(例えば、半導体メモリや磁気ディスク、光ディスクなど)によって実現されうる。
なお、テスト環境プログラム記憶部11と、作業情報蓄積部14が作業情報を蓄積する所定の記録媒体と、テスト環境改修済プログラム記憶部17とのうち、任意の二以上の記憶部や記録媒体は、同一の記録媒体によって実現されてもよく、あるいは、別々の記録媒体によって実現されてもよい。前者の場合には、例えば、プログラムを記憶している領域がテスト環境プログラム記憶部11となり、作業情報を記憶している領域が作業情報蓄積部14が作業情報を蓄積する所定の記録媒体となってもよい。
図3は、本実施の形態によるプログラム改修装置2の構成を示すブロック図である。図3において、本実施の形態によるプログラム改修装置2は、作業情報受付部21と、作業情報記憶部22と、プログラム記憶部23と、受付部24と、コマンド実行部25と、判断部26と、出力部27と、環境依存対応情報記憶部28と、作業情報変更部29と、改修済プログラム記憶部30とを備える。
作業情報受付部21は、作業情報出力部15が出力した作業情報を受け付け、作業情報記憶部22に蓄積する。作業情報受付部21は、例えば、有線もしくは無線の通信回線を介して送信された作業情報を受信してもよく、所定の記録媒体(例えば、光ディスクや磁気ディスク、半導体メモリなど)から読み出された作業情報を受け付けてもよい。なお、作業情報受付部21は、受け付けを行うためのデバイス(例えば、モデムやネットワークカードなど)を含んでもよく、あるいは含まなくてもよい。また、作業情報受付部21は、ハードウェアによって実現されてもよく、あるいは所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
作業情報記憶部22では、作業情報が記憶される。その作業情報は、前述のように、テスト環境においてプログラム改修のために実行されたコマンドと、コマンドの実行結果に関する情報である結果情報とを有する実行情報を1以上有する情報である。作業情報記憶部22で記憶される作業情報は、前述のように、作業情報受付部21が受け付けて蓄積したものである。作業情報記憶部22での記憶は、RAM等における一時的な記憶でもよく、あるいは、長期的な記憶でもよい。作業情報記憶部22は、所定の記録媒体(例えば、半導体メモリや磁気ディスク、光ディスクなど)によって実現されうる。
プログラム記憶部23では、本番環境におけるプログラムが記憶される。このプログラムが、プログラム改修装置2において改修の対象となるプログラムである。このプログラムは、前述のテスト環境プログラム記憶部11で記憶されるプログラムと同様のものである。プログラム記憶部23にプログラムが記憶される過程は問わない。例えば、記録媒体を介してプログラムがプログラム記憶部23で記憶されるようになってもよく、通信回線等を介して送信されたプログラムがプログラム記憶部23で記憶されるようになってもよく、あるいは、入力デバイスを介して入力されたプログラムがプログラム記憶部23で記憶されるようになってもよい。プログラム記憶部23での記憶は、RAM等における一時的な記憶でもよく、あるいは、長期的な記憶でもよい。プログラム記憶部23は、所定の記録媒体(例えば、半導体メモリや磁気ディスク、光ディスクなど)によって実現されうる。
受付部24は、作業情報に含まれるコマンドの実行指示を受け付ける。その指示は、例えば、「実行指示」ボタンがクリックされることによって受け付けられてもよい。また、受付部24は、それ以外の受け付けを行ってもよい。例えば、作業情報を用いたコマンドの実行時に修正が必要な場合には、受付部24は、その修正のためのコマンドの入力を受け付けてもよい。受付部24は、例えば、入力デバイス(例えば、キーボードやマウス、タッチパネルなど)から入力された情報を受け付けてもよく、有線もしくは無線の通信回線を介して送信された情報を受信してもよい。なお、受付部24は、受け付けを行うためのデバイス(例えば、入力デバイスやネットワークカードなど)を含んでもよく、あるいは含まなくてもよい。また、受付部24は、ハードウェアによって実現されてもよく、あるいは所定のデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
コマンド実行部25は、プログラム記憶部23で記憶されているプログラムに対して、作業情報に含まれる各コマンドを実行することによりプログラム改修を行う。コマンド実行部25は、作業情報の各実行情報に含まれるコマンドを、順番に実行していくものとする。本実施の形態では、コマンド実行部25は、受付部24が受け付けたコマンドの実行指示に応じて、作業情報に含まれる1個のコマンドを実行するものとする。その実行される1個のコマンドは、まだ実行されていないコマンドであって、最後に実行されたコマンドの次のコマンドである。本実施の形態では、コマンド実行部25が作業情報に含まれる各コマンドを実行することにより、プログラム記憶部23で記憶されているプログラムに、改修済プログラム記憶部30で記憶されている改修済プログラムを適用することが行われるものとする。プログラムに改修済プログラムを適用するとは、例えば、プログラムに含まれるモジュールやライブラリ等を、改修済プログラムであるモジュールやライブラリ等に置き換えることであってもよい。また、コマンド実行部25は、そのコマンドの実行に応じて、戻り値を取得する。また、コマンド実行部25は、後述する作業情報変更部29による変更後の作業情報を用いてプログラム改修を行うものとする。
判断部26は、コマンド実行部25によるコマンドの実行結果と、そのコマンドと同じ実行情報に含まれる結果情報とが整合するかどうか判断する。
結果情報が戻り値そのものである場合には、判断部26は、コマンド実行部25によるコマンドの実行結果である戻り値と、結果情報とを比較し、一致するときには整合すると判断し、一致しないときには整合しないと判断してもよい。例えば、ある実行情報にコマンド「cd/ tmp;pwd」と結果情報「/tmp」とが含まれていたとする。そして、コマンド実行部25がコマンド「cd/ tmp;pwd」を実行した際に、戻り値が「/tmp」である場合には、判断部26は、その戻り値と、結果情報とが一致するため、両者が整合すると判断する。
結果情報が戻り値そのものではなく、戻り値に関する条件である場合には、判断部26は、コマンド実行部25によるコマンドの実行結果である戻り値と、結果情報とを比較し、その戻り値が結果情報の条件を満たすときには整合すると判断し、その戻り値が結果情報の条件を満たさないときには整合しないと判断してもよい。例えば、ある実行情報にコマンド「/usr/local/bin/scripts/register_pkg.sh/ xxxxx.list」と、結果情報「*completed normally*」とが含まれていたとする。その結果情報における「*」は、任意の0以上の文字の並びにマッチするものであるとする。そして、コマンド実行部25がコマンド「/usr/local/bin/scripts/register_pkg.sh/ xxxxx.list」を実行した際に、戻り値が「MSG−0124 Operation completed normally.」である場合には、判断部26は、その戻り値が結果情報の条件を満たすため、両者が整合すると判断する。
出力部27は、判断部26による判断の結果を出力する。出力部27は、例えば、判断の結果のみを出力してもよく、コマンドと、戻り値と、判断の結果とを出力してもよい。また、判断の結果が不整合である場合には、出力部27は、さらに、判断で用いられた結果情報をも出力してもよく、あるいは、出力しなくてもよい。本実施の形態では、受付部24が受け付けた実行指示に応じて、コマンドが1個ずつ実行されるため、出力部27は、コマンド実行部25が実行した1個のコマンドに対応する判断の結果を出力するものとする。ここで、この出力は、判断部26による判断結果をユーザに通知することができるのであれば、その出力方法を問わない。この出力は、例えば、表示デバイス(例えば、CRTや液晶ディスプレイなど)への表示でもよく、所定の機器への通信回線を介した送信でもよく、プリンタによる印刷でもよく、スピーカによる音声出力でもよく、記録媒体への蓄積でもよく、他の構成要素への引き渡しでもよい。本実施の形態では、出力部27が表示を行う場合について説明する。なお、出力部27は、出力を行うデバイス(例えば、表示デバイスやプリンタなど)を含んでもよく、あるいは含まなくてもよい。また、出力部27は、ハードウェアによって実現されてもよく、あるいは、それらのデバイスを駆動するドライバ等のソフトウェアによって実現されてもよい。
環境依存対応情報記憶部28では、1以上の環境依存対応情報が記憶される。環境依存対応情報は、テスト環境における環境に依存する情報であるテスト環境依存情報と、本番環境における環境に依存する情報である本番環境依存情報とを有する情報である。一の環境依存対応情報に含まれるテスト環境依存情報と本番環境依存情報とは、互いに対応する情報である。環境に依存する情報とは、アドレス、装置の名称、情報のパス、時刻の群から選ばれる1以上の情報である。アドレスは、IPアドレスであってもよく、その他のアドレスであってもよい。また、装置の名称は、いわゆるホスト名であってもよく、あるいは、装置を識別可能なその他の名称であってもよい。通常、テスト環境装置1と、プログラム改修装置2とは別の装置であるため、両者のアドレスや装置の名称は異なっていることが多いと考えられる。また、テスト環境装置1と、プログラム改修装置2とは別の装置であるため、両者でディレクトリ構造が異なっていることがあり、フォルダやファイルのパスが両者で異なっていることがあると考えられる。また、テスト環境でのコマンドの実行の日時と、本番環境でのコマンドの実行の日時とにはタイムラグが存在する。テスト環境でまずコマンドが実行されてから、本番環境でコマンドが実行されるからである。したがって、そのようなテスト環境と、本番環境とで異なる情報を対応付けるのが、環境依存対応情報である。この環境依存対応情報は、例えば、人手によって作成されたものであってもよく、あるいは、テスト環境装置1とプログラム改修装置2との両方の装置にアクセス可能な装置によって自動的に作成されたものであってもよい。
環境依存対応情報記憶部28に1以上の環境依存対応情報が記憶される過程は問わない。例えば、記録媒体を介して1以上の環境依存対応情報が環境依存対応情報記憶部28で記憶されるようになってもよく、通信回線等を介して送信された1以上の環境依存対応情報が環境依存対応情報記憶部28で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された1以上の環境依存対応情報が環境依存対応情報記憶部28で記憶されるようになってもよい。環境依存対応情報記憶部28での記憶は、RAM等における一時的な記憶でもよく、あるいは、長期的な記憶でもよい。環境依存対応情報記憶部28は、所定の記録媒体(例えば、半導体メモリや磁気ディスク、光ディスクなど)によって実現されうる。また、環境依存対応情報に含まれる各情報は、その情報そのものであってもよく、あるいは、その情報の格納されている位置を示すポインタやアドレスであってもよい。他の情報についても同様であるとする。
作業情報変更部29は、環境依存対応情報記憶部28で記憶されている1以上の環境依存対応情報を用いて、作業情報におけるテスト環境における環境に依存する情報を、本番環境における環境に依存する情報に変更する。作業情報変更部29は、環境依存対応情報を用いて、例えば、作業情報のコマンドを変更してもよく、結果情報を変更してもよく、あるいは、その両方を変更してもよい。作業情報変更部29は、例えば、ある環境依存対応情報に含まれるテスト環境依存情報を検索キーとして作業情報を検索し、ヒットした場合に、そのヒットした箇所を、その環境依存対応情報に含まれる本番環境依存情報に置換することによって、この変更を行ってもよい。
改修済プログラム記憶部30では、改修済プログラムが記憶される。この改修済プログラムは、プログラム記憶部23で記憶されているプログラムに適用されることにより、プログラムの改修を行うためのものである。この改修済プログラムは、前述のテスト環境改修済プログラム記憶部17で記憶される改修済プログラムと同様のものであり、例えば、改修済のモジュールやライブラリ等であってもよい。
改修済プログラム記憶部30に改修済プログラムが記憶される過程は問わない。例えば、記録媒体を介して改修済プログラムが改修済プログラム記憶部30で記憶されるようになってもよく、通信回線等を介して送信された改修済プログラムが改修済プログラム記憶部30で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された改修済プログラムが改修済プログラム記憶部30で記憶されるようになってもよい。改修済プログラム記憶部30での記憶は、RAM等における一時的な記憶でもよく、あるいは、長期的な記憶でもよい。改修済プログラム記憶部30は、所定の記録媒体(例えば、半導体メモリや磁気ディスク、光ディスクなど)によって実現されうる。
なお、作業情報記憶部22と、プログラム記憶部23と、環境依存対応情報記憶部28と、改修済プログラム記憶部30とのうち、任意の二以上の記憶部は、同一の記録媒体によって実現されてもよく、あるいは、別々の記録媒体によって実現されてもよい。前者の場合には、例えば、作業情報を記憶している領域が作業情報記憶部22となり、プログラムを記憶している領域がプログラム記憶部23となる。
次に、テスト環境装置1の動作について図4のフローチャートを用いて説明する。
(ステップS101)コマンド受付部12は、コマンドの入力を受け付けたかどうか判断する。そして、コマンドの入力を受け付けた場合には、ステップS102に進み、そうでない場合には、ステップS107に進む。コマンド受付部12が受け付けたコマンドは、図示しない記録媒体で一時的に記憶されてもよい。
(ステップS102)テスト環境コマンド実行部13は、その時点でのチェックポイントを作成し、図示しない記録媒体に蓄積する。
(ステップS103)テスト環境コマンド実行部13は、コマンド受付部12が受け付けたコマンドを実行する。そして、その実行に応じた戻り値を受け取る。その戻り値は、表示部16によって表示されるものとする。テスト環境コマンド実行部13が受け取った戻り値は、図示しない記録媒体で一時的に記憶されてもよい。
(ステップS104)コマンド受付部12は、戻り値が適切である旨の入力を受け付けたかどうか判断する。そして、戻り値が適切である旨の入力を受け付けた場合には、ステップS105に進み、戻り値が不適切である旨の入力を受け付けた場合には、ステップS106に進む。
(ステップS105)作業情報蓄積部14は、コマンド受付部12が受け付けたコマンドと、その実行結果である戻り値とを含む実行情報を生成し、所定の記録媒体で記憶されている作業情報に追記する。そして、ステップS101に戻る。
(ステップS106)テスト環境コマンド実行部13は、ロールバックを行う。このロールバックの際に、指定されたチェックポイントまで戻ってもよく、あるいは、直前に実行されたコマンドの実行前のチェックポイントまで戻ってもよい。そして、ステップS101に戻る。
(ステップS107)コマンド受付部12は、作業情報の出力の指示を受け付けたかどうか判断する。そして、作業情報の出力の指示を受け付けた場合には、ステップS108に進み、そうでない場合には、ステップS101に戻る。
(ステップS108)作業情報出力部15は、作業情報蓄積部14が蓄積した作業情報を出力する。そして、ステップS101に戻る。なお、出力された作業情報は、作業情報蓄積部14が作業情報を蓄積する所定の記録媒体から削除されてもよく、あるいは、出力した旨のフラグ等が設定されてもよい。後者の場合には、それ以降の出力において、出力した旨のフラグ等の設定されている作業情報を出力しないようにしてもよい。
なお、図4のフローチャートのステップS105において、戻り値そのものである結果情報を含む実行情報が追記される場合について説明したが、そうでなくてもよい。例えば、前述のように、戻り値に関する条件である結果情報を含む実行情報が追記されてもよい。その場合には、コマンド受付部12が、その条件に関する入力を受け付け、それに応じて作業情報蓄積部14が、戻り値に関する条件である結果情報を含む実行情報を作業情報に追記してもよい。その入力は、例えば、戻り値のうち、必須の箇所を示すものであってもよい。そして、その入力に応じた結果情報は、必須の箇所であることが示された範囲の前後に、任意の0以上の文字の並びが存在してもよいことを示す「*」を追加したものであってもよい。なお、図4のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、プログラム改修装置2の動作について図5のフローチャートを用いて説明する。
(ステップS201)作業情報受付部21は、作業情報を受け付けたかどうか判断する。そして、作業情報を受け付けた場合には、ステップS202に進み、そうでない場合には、ステップS204に進む。
(ステップS202)作業情報受付部21は、受け付けた作業情報を作業情報記憶部22に蓄積する。
(ステップS203)作業情報変更部29は、環境依存対応情報記憶部28で記憶されている1以上の環境依存対応情報を用いて、作業情報に含まれる各テスト環境依存情報を、対応する本番環境依存情報にそれぞれ変更する。そして、ステップS201に戻る。
(ステップS204)受付部24は、プログラムの改修を行う旨の指示を受け付けたかどうか判断する。そして、その指示を受け付けた場合には、ステップS205に進み、そうでない場合には、ステップS201に戻る。
(ステップS205)コマンド実行部25は、作業情報記憶部22で記憶されている作業情報において、それまでに実行していないコマンドを含む実行情報のうち、最も順番の早い実行情報に含まれるコマンドを実行する。そして、そのコマンドの実行に応じた戻り値を受け取る。コマンド実行部25が受け取った戻り値は、図示しない記録媒体で一時的に記憶されてもよい。
(ステップS206)判断部26は、ステップS205でコマンド実行部25が実行したコマンドと、そのコマンドと同じ実行情報に含まれる結果情報とが整合するかどうか判断する。そして、その判断結果を示す情報を生成する。
(ステップS207)出力部27は、判断部26による判断結果を出力する。なお、出力部27は、判断結果と共に、コマンドや戻り値なども出力してもよい。
(ステップS208)受付部24は、次のコマンドの実行指示を受け付けたかどうか判断する。そして、次のコマンドの実行指示を受け付けた場合には、ステップS209に進み、そうでない場合には、ステップS210に進む。その次のコマンドの実行指示は、例えば、次のコマンドを実行する旨のボタンの選択等であってもよい。
(ステップS209)コマンド実行部25は、作業情報に次の実行情報が存在するかどうか、すなわち、次のコマンドが存在するかどうか判断する。そして、次のコマンドが存在する場合には、ステップS205に戻り、次のコマンドを実行する。一方、次のコマンドが存在しない場合には、作業情報に含まれるすべてのコマンドを実行したことになるため、プログラムを改修する一連の処理は終了となる。なお、この場合には、出力部27は、プログラムの改修が終了した旨をユーザに出力してもよく、あるいは、そうでなくてもよい。
(ステップS210)受付部24は、手作業による修正の指示を受け付けたかどうか判断する。そして、手作業による修正の指示を受け付けた場合には、ステップS211に進み、そうでない場合には、ステップS208に戻る。その手作業による修正の指示は、例えば、修正を行う旨のボタンの選択等であってもよい。
(ステップS211)コマンド実行部25は、受付部24が受け付けた手作業による修正の指示に応じて、例えば、コマンド入力画面を表示させ、そのコマンド入力画面において入力されたコマンド等を実行する。そして、修正のための一連のコマンドの入力が終了すれば、ステップS208に戻る。
なお、図5のフローチャートにおいて、作業情報が受け付けられて蓄積された直後に、環境依存情報に関する変更が行われる場合について示したが、そうでなくてもよい。例えば、作業情報を用いたプログラムの改修が行われる直前に環境依存情報に関する変更が行われてもよく、あるいは、作業情報が受け付けられてから、作業情報を用いたプログラムの改修が行われるまでの他のタイミングで環境依存情報に関する変更が行われてもよい。なお、図5のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、本実施の形態による情報処理システム100の動作について、具体例を用いて説明する。なお、この具体例において、テスト環境改修済プログラム記憶部17及び改修済プログラム記憶部30では、改修済プログラムであるモジュールM001及びライブラリL001が記憶されているものとする。モジュールM001及びライブラリL001は、改修済のものである。
まず、テスト環境装置1において、ユーザが、プログラム改修の手順書に応じて、図6(a)で示されるように、コマンド「C001」を入力し、エンターキーを押下したとする。すると、コマンド受付部12において、そのコマンド「C001」が受け付けられ、テスト環境コマンド実行部13に渡される(ステップS101)。テスト環境コマンド実行部13は、コマンドを受け付けると、その時点のチェックポイントを図示しない記録媒体に蓄積する(ステップS102)。そして、そのコマンド「C001」を実行し、戻り値「R001」を取得する(ステップS103)。テスト環境コマンド実行部13は、その戻り値「R001」を表示部16に渡す。すると、表示部16は、図6(b)で示されるように、その戻り値を表示する。なお、図6(a)では、戻り値が得られていないため、「記録」ボタンも「ロールバック」ボタンもクリックできないようにグレーアウトされているが、図6(b)では、両ボタンをクリックできるようになっている。そして、ユーザが手順書を参照して、その戻り値が適切であると考えた場合には、「記録」ボタンをクリックする。すると、コマンド受付部12は、その入力を受け付け、戻り値が問題ないと判断し(ステップS104)、テスト環境コマンド実行部13に、戻り値が問題ない旨を渡す。そして、テスト環境コマンド実行部13は、作業情報蓄積部14に、コマンド「C001」と、戻り値「R001」とを渡す。すると、作業情報蓄積部14は、コマンド「C001」と、戻り値「R001」とを含む実行情報を構成し、その実行情報に実行IDを対応付けて図7(a)で示されるように所定の記録媒体に蓄積する(ステップS105)。なお、実行IDは、実行情報が追記されるごとに1ずつインクリメントされる、実行情報を識別する情報であり、また、実行情報の実行順序を示す情報である。この具体例では、説明の便宜上、コマンドが「C001」等であり、また戻り値が「R001」等である場合について説明するが、実際には、コマンドは、「/usr/local/bin/scripts/register_pkg.sh/ xxxxx.list」や、「cp −pr P/sob/tmp/Rel* /tmp/」、「cd/ tmp;pwd」等であり、また、戻り値は、「MSG−0124 Operation completed normally.」や、null(ヌル)、「/tmp」等である。
一方、図6(b)の表示において、ユーザが手順書を参照し、その戻り値が適切でないと考えた場合には、「ロールバック」ボタンをクリックする。すると、受付部24は、その入力を受け付け、戻り値に不備があると判断し(ステップS104)、テスト環境コマンド実行部13に、戻り値に問題がある旨を渡す。すると、テスト環境コマンド実行部13は、最新のチェックポイントにロールバックする(ステップS106)。なお、ここでは、1個前のチェックポイントにロールバックする場合について説明するが、2個以上前のチェックポイントにロールバックしてもよい。そのときには、戻り先のチェックポイントがユーザによって選択されてもよい。また、2個以上前のチェックポイントにロールバックする場合には、作業情報蓄積部14は、それまでに蓄積した実行情報のうち、ロールバックに応じて実行されなかったことになるコマンドを含む実行情報を削除してもよい。
このように、手順書に応じたコマンドの実行が行われることによって、順次、作業情報が作成されていくことになる(ステップS101〜S106)。そして、テスト環境改修済プログラム記憶部17で記憶されている改修済プログラムであるモジュールM001及びライブラリL001が、テスト環境プログラム記憶部11で記憶されているプログラムに適用されることになる。すなわち、テスト環境プログラム記憶部11で記憶されているプログラムにおいて、あるモジュールやライブラリが、モジュールM001やライブラリL001に入れ替わることになる。このコマンドの実行は、例えば、その手順書の検証のために行われるものであってもよい。なお、最終的に、作業情報が図7(b)で示されるようになったとする。その後、ユーザが、作業情報を出力する旨を入力したとする。すると、その入力がコマンド受付部12で受け付けられ、作業情報出力部15に渡される(ステップS107)。そして、作業情報出力部15は、作業情報蓄積部14が所定の記録媒体に蓄積した図7(b)で示される作業情報を、その記録媒体から読み出し、図示しないファイルサーバに送信する(ステップS108)。その後、作業情報出力部15は、その出力した作業情報を、その所定の記録媒体から削除する。
次に、プログラム改修装置2のユーザが、プログラム改修装置2を操作して、図示しないファイルサーバから作業情報を取得する処理を実行したとする。すると、作業情報受付部21は、その処理に応じて、図示しないファイルサーバから作業情報を受信し(ステップS201)、作業情報記憶部22に蓄積する(ステップS202)。なお、この時点において、環境依存対応情報記憶部28では、図8で示される環境依存対応情報が記憶されていたとする。図8で示される1個目の環境依存対応情報(1番目のレコード)は、テスト環境装置1と、プログラム改修装置2とのIPアドレスを対応付けるものである。2番目の環境依存対応情報は、テスト環境装置1と、プログラム改修装置2との装置の名称を対応付けるものである。3番目の環境依存対応情報は、テスト環境装置1と、プログラム改修装置2とにおけるファイル「data」のパスを対応付けるものである。この環境依存対応情報は、例えば、ユーザによって生成され、環境依存対応情報記憶部28に蓄積されたものであってもよい。
作業情報変更部29は、図8で示される3個の環境依存対応情報のうち、1番目の環境依存対応情報からテスト環境依存情報のIPアドレス「192.168.0.2」を読み出し、それを検索キーとして、作業情報記憶部22で記憶されている作業情報を検索する。そして、ヒットしたIPアドレスを、本番環境依存情報のIPアドレス「192.168.0.3」に置換する。同様にして、作業情報変更部29は、装置の名称、情報のパスについても、検索及び置換を行う(ステップS203)。このようにして、環境依存情報の変更が行われる。なお、その変更後の作業情報も、図7(b)で示されるものと同様のものであったとする。
その後、ユーザが、作業情報を用いたプログラムの改修を行う旨を入力したとする。すると、受付部24は、プログラムの改修を行う旨の入力を受け付けたと判断し(ステップS204)、その旨をコマンド実行部25に渡す。そして、コマンド実行部25は、図7(b)の作業情報から、1番目のコマンド「C001」を読み出して実行し、その実行に応じた戻り値「R001」を取得する(ステップS205)。また、コマンド実行部25は、実行したコマンドの実行情報に応じた実行ID「001」と、戻り値「R001」とを判断部26に渡す。判断部26は、受け取った実行ID「001」に対応する実行情報に含まれる結果情報「R001」を作業情報記憶部22から読み出し、その結果情報と、戻り値とが整合するかどうか判断する。この場合には、両者が一致して整合するため、判断部26は、実行ID「001」に対応する実行情報に含まれるコマンド「C001」と、コマンド実行部25から受け取った戻り値「R001」と、判断結果である「問題ありません」とを出力部27に渡す(ステップS206)。すると、出力部27は、それらの情報を図示しないディスプレイに表示する(ステップS207)。図9は、そのようにして表示された判断結果等の一例を示す図である。図9において、ユーザが、「次のコマンド実行」ボタンをクリックすると、受付部24は、次のコマンドの実行指示を受け付け(ステップS208)、次のコマンドの実行指示をコマンド実行部25に渡す。すると、コマンド実行部25は、作業情報記憶部22において、次のコマンドが存在するかどうか判断し、この場合には、次のコマンドが存在するため、そのコマンド「C002」を実行する(ステップS209,S205)。このようにして、順次、作業情報に含まれるコマンドが実行されることになる。
なお、コマンド「C012」が実行された場合に、その戻り値は、「R012'」であり、作業情報においてコマンド「C012」に対応付けられている結果情報「R012」と異なっていたとする。すると、判断部26は、両者が不一致であり整合しないため、コマンド「012」と、戻り値「R012'」と、判断結果である「テスト環境の戻り値(R012)と相違しています」とを出力部27に渡す(ステップS206)。すると、出力部27は、それらの情報を、図10で示されるように、図示しないディスプレイに表示する(ステップS207)。この表示を見たユーザが、修正が必要であると判断し、「修正」ボタンをクリックすると、受付部24は、修正の指示を受け付け、修正を行う旨をコマンド実行部25に渡す(ステップS210)。すると、コマンド実行部25は、図示しないディスプレイにコマンド入力画面を表示させ、それに応じて入力された修正のためのコマンドを実行する。例えば、コマンド「C012」が改修済プログラム記憶部30で記憶されている改修済プログラムをコピーするコマンドであり、戻り値「R012'」によって、そのコピーが適切に行われなかったことが示された場合に、ユーザは、手順書を参照しながら、コマンドを手入力することにより、改修済プログラムの適切なコピーを行うようにしてもよい。また、その修正のための一連のコマンドの入力が終了し、その旨の入力を受付部24が受け付けた場合に、コマンド実行部25は、コマンド入力画面の表示を終了させる(ステップS211)。その結果、図10の表示に戻ったとする。そして、ユーザが、図10の画面における「次のコマンド実行」ボタンをクリックすると、前述のように、次のコマンド「C013」が実行される(ステップS208,S209,S205)。このようにして、順次、作業情報に含まれるコマンドが自動実行され、プログラムの改修が行われる。そして、改修済プログラム記憶部30で記憶されている改修済プログラムであるモジュールM001及びライブラリL001が、プログラム記憶部23で記憶されているプログラムに適用されることになる。すなわち、適用後のプログラムでは、あるモジュールとして、改修済のモジュールM001が用いられることになり、あるライブラリとして、改修後のライブラリL001が用いられることになる。
なお、この具体例では、図10の判断結果の出力において、修正を行う場合について説明したが、戻り値「R012'」と、結果情報「R012」との相違が問題のないものである場合には、「次のコマンド実行」ボタンをクリックして、次のコマンドの実行に進んでもよいことは言うまでもない。
以上のように、本実施の形態による情報処理システム100によれば、テスト環境においてプログラム改修のために実行されたコマンドを本番環境であるプログラム改修装置2において半自動的に実行することにより、プログラム改修を行うことができる。このように、テスト環境において適切に実行された結果を用いるため、プログラム改修におけるミスを低減させることができる。特に、少なくともテスト環境において実行されているため、検証不足が発生しないようにすることができる。また、作業情報が、テスト環境において適切に実行された結果であることによって、その作業情報自体が適切な手順書となり、手順書の不備を解消することができる。従来、テストで順次実行されたコマンドと、それをもとに手作業で作成された手順書とに齟齬が存在することもあったが、本実施の形態によるテスト環境装置1のように、自動的に作業情報を生成することによって、テストで順次実行されたコマンドと作業情報とに齟齬の生じる可能性を低減させることができる。また、その作業情報に含まれるコマンドが順次、自動的に実行されることにより、操作間違いのミスが発生しないようにできる。従来、本番環境において、手順書を参照しながらプログラム改修を行っていた場合には、手順書に書かれていることと、コマンド入力等の操作とにずれが生じ、その結果、適切なプログラム改修を行えないことがあったが、そのようなことを防止することができる。
また、テスト環境において、手順書の検証時のコマンド入力に応じて作業情報を生成することができる。そのため、作業情報をわざわざ作成しなくてもよいことになり、作業情報の生成に関する労力を軽減することができる。また、環境依存対応情報を用いて、環境依存の情報を変更することにより、テスト環境装置1と、プログラム改修装置2との環境の違いに起因する不適切なプログラム改修が行われたり、不適切な判断が行われたりすることを回避することができる。
なお、前述のように、作業情報変更部29が環境依存対応情報を用いて作業情報を変更するタイミングは問わない。例えば、作業情報変更部29は、プログラム改修の直前に、環境依存対応情報を用いた作業情報の変更を行ってもよい。特に、環境依存対応情報に、時刻に関する情報が含まれている場合に、作業情報変更部29は、本番環境依存情報の時刻が、プログラム改修時の時刻となるように変更した上で、その変更後の環境依存対応情報を用いた作業情報の変更を行ってもよい。
また、環境依存対応情報を用いた作業情報の変更は、テスト環境装置1において作業情報が生成されてから、プログラム改修装置2において、その作業情報が使用されるまでの間に行われるのであれば、その処理のタイミングや、その処理の場所は問わない。例えば、テスト環境装置1において、環境依存対応情報を用いた作業情報の変更が行われてもよく、あるいは、テスト環境装置1でもなく、プログラム改修装置2でもない第三の装置において、環境依存対応情報を用いた作業情報の変更が行われてもよい。あるいは、環境依存対応情報を用いた作業情報の変更は行われなくてもよい。そのように、プログラム改修装置2以外において環境依存対応情報を用いた作業情報の変更が行われる場合や、環境依存対応情報を用いた作業情報の変更が行われない場合には、プログラム改修装置2は、環境依存対応情報記憶部28や作業情報変更部29を備えていなくてもよい。
また、作業情報に含まれる結果情報にテスト環境に依存する情報が含まれる場合に、そのテスト環境に依存する情報を、本番環境に依存する情報に変更するのではなく、本番環境に依存する情報を包含する情報に変更するようにしてもよい。例えば、テスト環境依存情報であるIPアドレス「192.168.0.2」を、本番環境に依存する情報であるIPアドレス「192.168.0.3」を包含するIPアドレス「192.168.*.*」に変更してもよい。ここで、「*」は、前述のように、任意の0以上の文字の並びにマッチするものであるとする。
また、本実施の形態では、作業情報には1以上の実行情報が含まれる場合について説明したが、作業情報には、実行情報以外に、人手によって行われる処理を示すチェック項目が含まれてもよい。そのチェック項目は、例えば、「パイロットランプが点滅していることを確認して下さい」であってもよく、「HDDを差し替えて下さい」であってもよい。そのチェック項目は、テスト環境装置1等において、手作業によって入力されてもよい。
また、本実施の形態では、受付部24が受け付けたコマンドの実行指示に応じて、1個ずつコマンドが実行される場合について説明したが、そうでなくてもよい。コマンド実行部25は、例えば、作業情報の有する各実行情報に含まれるコマンドを、順番に一括して実行してもよい。その場合であっても、判断部26は、一つのコマンドの実行に応じた戻り値と、そのコマンドに対応する結果情報とが整合するかどうかの判断を行うことが好適である。したがって、コマンド実行部25が複数のコマンドを一括して実行した場合であっても、判断結果は、実行されたコマンドの数だけ出力されることになる。なお、その判断結果は、例えば、テーブル形式やその他の形式により、一括して出力されてもよい。また、受け付けられたコマンドの実行指示に応じて、1個ずつコマンドが実行されるのでない場合には、受付部24は、例えば、作業情報に含まれるコマンドの一括実行の指示を受け付けるものであってもよい。
また、本実施の形態では、環境依存対応情報を用いて作業情報を変更する場合について説明したが、そうでなくてもよい。例えば、そのような作業情報の変更を行わず、判断部26は、環境に依存する情報については、コマンド実行部25によるコマンドの実行結果と、コマンドに対応する結果情報とが整合しなくても、不整合と判断しないようにしてもよい。例えば、プログラム改修装置2における図示しない記録媒体において、テスト環境依存情報のみが記憶されており、コマンドの戻り値と、そのコマンドに対応する結果情報とが相違する場合であって、結果情報における相違箇所が、その図示しない記録媒体で記憶されているテスト環境依存情報のいずれかと一致する場合には、判断部26は、その相違を不整合と判断せず、両者が整合していると判断してもよい。具体的には、プログラム改修装置2において、図8のテスト環境依存情報のみが記憶されている場合であって、コマンドの戻り値に「192.168.0.3」が含まれており、そのコマンドに対応する結果情報に「192.168.0.2」が含まれており、それらのIPアドレス以外の部分については、コマンドの戻り値と、結果情報とが一致する場合には、判断部26は、結果情報における相違箇所「192.168.0.2」が、テスト環境依存情報のIPアドレス「192.168.0.2」と一致すると判断し、その戻り値と結果情報とが整合すると判断してもよい。このようにすることで、本来は不整合でないものを不整合であると判断する事態を回避することができる。
また、テスト環境装置1において、作業情報を生成する際に、何らかのミスが発生した場合には、作業情報の生成をはじめからやり直してもよく、あるいは、ミスを含んだ作業情報を生成した後に、手動で、作業情報を修正するようにしてもよい。また、プログラム改修装置2においてその作業情報を用いたプログラムの改修を行う前に、テスト環境装置1において、または別の装置において、その作業情報に含まれるコマンドを自動実行することによって、その作業情報が適切なものであるかどうかを確認するようにしてもよい。その確認の作業を行うことによって、作業情報がより正確なものとなり、プログラム改修装置2において、作業情報を用いたプログラムの改修を行う場合に発生するミスを著しく低減することができると考えられる。
また、本実施の形態では、テスト環境装置1及びプログラム改修装置2において、改修対象のプログラムに改修済プログラムを適用することによって、プログラム改修を行う場合について説明したが、そうでなくてもよい。改修対象のプログラムに改修済プログラムを適用する方法以外の方法を用いて、プログラム改修を行ってもよいことは言うまでもない。例えば、コマンドによってプログラムのパラメータやデータ等を直接書き換えることなどによって、プログラム改修が行われてもよい。そのように、改修済プログラムを用いないでプログラム改修を行う場合には、テスト環境装置1は、テスト環境改修済プログラム記憶部17を備えていなくてもよく、プログラム改修装置2は、改修済プログラム記憶部30を備えていなくてもよい。
また、上記実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、あるいは、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
また、上記実施の形態において、各構成要素間で行われる情報の受け渡しは、例えば、その情報の受け渡しを行う2個の構成要素が物理的に異なるものである場合には、一方の構成要素による情報の出力と、他方の構成要素による情報の受け付けとによって行われてもよく、あるいは、その情報の受け渡しを行う2個の構成要素が物理的に同じものである場合には、一方の構成要素に対応する処理のフェーズから、他方の構成要素に対応する処理のフェーズに移ることによって行われてもよい。
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりした情報や、各構成要素が処理で用いるしきい値や数式、アドレス等の情報等は、上記説明で明記していない場合であっても、図示しない記録媒体において、一時的に、あるいは長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、あるいは、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、あるいは、図示しない読み出し部が行ってもよい。
また、上記実施の形態において、各構成要素等で用いられる情報、例えば、各構成要素が処理で用いるしきい値やアドレス、各種の設定値等の情報がユーザによって変更されてもよい場合には、上記説明で明記していない場合であっても、ユーザが適宜、それらの情報を変更できるようにしてもよく、あるいは、そうでなくてもよい。それらの情報をユーザが変更可能な場合には、その変更は、例えば、ユーザからの変更指示を受け付ける図示しない受付部と、その変更指示に応じて情報を変更する図示しない変更部とによって実現されてもよい。その図示しない受付部による変更指示の受け付けは、例えば、入力デバイスからの受け付けでもよく、通信回線を介して送信された情報の受信でもよく、所定の記録媒体から読み出された情報の受け付けでもよい。
また、上記実施の形態において、テスト環境装置1やプログラム改修装置2に含まれる2以上の構成要素が通信デバイスや入力デバイス等を有する場合に、2以上の構成要素が物理的に単一のデバイスを有してもよく、あるいは、別々のデバイスを有してもよい。
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。なお、上記実施の形態におけるプログラム改修装置2を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、テスト環境においてプログラム改修のために実行されたコマンドと、コマンドの実行結果に関する情報である結果情報とを有する実行情報を1以上有する作業情報が記憶される作業情報記憶部と、本番環境におけるプログラムが記憶されるプログラム記憶部とにアクセス可能なコンピュータを、プログラム記憶部で記憶されているプログラムに対して、作業情報に含まれる各コマンドを実行することによりプログラム改修を行うコマンド実行部、コマンド実行部によるコマンドの実行結果と、コマンドと同じ実行情報に含まれる結果情報とが整合するかどうか判断する判断部、判断部による判断の結果を出力する出力部として機能させるためのプログラムである。
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には少なくとも含まれない。
また、このプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体(例えば、CD−ROMなどの光ディスクや磁気ディスク、半導体メモリなど)に記録されたプログラムが読み出されることによって実行されてもよい。また、このプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
図11は、上記プログラムを実行して、上記実施の形態によるテスト環境装置1やプログラム改修装置2を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
図11において、コンピュータシステム900は、CD−ROM(Compact Disk Read Only Memory)ドライブ905、FD(Floppy(登録商標) Disk)ドライブ906を含むコンピュータ901と、キーボード902と、マウス903と、モニタ904とを備える。
図12は、コンピュータシステム900の内部構成を示す図である。図12において、コンピュータ901は、CD−ROMドライブ905、FDドライブ906に加えて、MPU(Micro Processing Unit)911と、ブートアッププログラム等のプログラムを記憶するためのROM912と、MPU911に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM(Random Access Memory)913と、アプリケーションプログラム、システムプログラム、及びデータを記憶するハードディスク914と、MPU911、ROM912等を相互に接続するバス915とを備える。なお、コンピュータ901は、LAN等への接続を提供する図示しないネットワークカードを含んでいてもよい。
コンピュータシステム900に、上記実施の形態によるテスト環境装置1やプログラム改修装置2の機能を実行させるプログラムは、CD−ROM921、またはFD922に記憶されて、CD−ROMドライブ905、またはFDドライブ906に挿入され、ハードディスク914に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ901に送信され、ハードディスク914に記憶されてもよい。プログラムは実行の際にRAM913にロードされる。なお、プログラムは、CD−ROM921やFD922、またはネットワークから直接、ロードされてもよい。
プログラムは、コンピュータ901に、上記実施の形態によるテスト環境装置1やプログラム改修装置2の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム900がどのように動作するのかについては周知であり、詳細な説明は省略する。
また、本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。