(57)【要約】【課題】新ソフトウェアの試験スクリプトを自動生成する。【解決手段】変換履歴付きソフトウェア変換部１０２が、ソフトウェア要素ごとに、旧ソフトウェアを変換して新ソフトウェアを生成し、ソフトウェア変換履歴格納部１０５が、対応関係にある旧ソフトウェア要素と新ソフトウェア要素を対応付けるソフトウェア変換履歴情報を記憶する。試験スクリプト変換部１０７は、旧ソフトウェアの試験のための旧試験スクリプトのコードのうちソフトウェア変換履歴情報に示される旧ソフトウェア要素と一致するコードを検索し、検索したコードをソフトウェア変換履歴情報において当該旧ソフトウェア要素と対応付けられている新ソフトウェア要素に変換する。他のコードは試験スクリプト変換規則に従って変換する。これにより、試験手続と区別して試験対象依存コードを正しく変換でき、新ソフトウェアに対する試験スクリプトを正確に自動生成できる。【選択図】図１
2012248037.tif 000002
【特許請求の範囲】
【請求項１】
第１の言語で記述されている第１のソフトウェア要素を、第２の言語で記述される第２のソフトウェア要素に変換して、第１のソフトウェア要素で構成される第１のソフトウェアから第２のソフトウェア要素で構成される第２のソフトウェアを生成するソフトウェア変換部と、
前記ソフトウェア変換部により変換が実施された第１のソフトウェア要素と第２のソフトウェア要素とを対応付けて示す変換実施情報を記憶する変換実施情報記憶部と、
前記第１のソフトウェアの試験のための第１の試験プログラム内で前記変換実施情報に示される第１のソフトウェア要素と一致するプログラム要素を検索し、第１のソフトウェア要素と一致するプログラム要素を前記変換実施情報において当該第１のソフトウェア要素と対応付けられている第２のソフトウェア要素に変換して、前記第１の試験プログラムから、前記第２のソフトウェアの試験のための第２の試験プログラムを生成する試験プログラム変換部とを有することを特徴とするプログラム変換装置。
【請求項２】
前記プログラム変換装置は、更に、
いずれの第１のソフトウェア要素とも一致しないプログラム要素を第３の言語による記述から第４の言語による記述に変換することが定義されている試験プログラム変換規則情報を記憶する試験プログラム変換規則情報記憶部を有し、
前記試験プログラム変換部は、
前記第１の試験プログラム内でいずれの第１のソフトウェア要素とも一致しないプログラム要素は、前記試験プログラム変換規則情報に従って、第３の言語による記述から第４の言語による記述に変換して、前記第１の試験プログラムから前記第２の試験プログラムを生成することを特徴とする請求項１に記載のプログラム変換装置。
【請求項３】
前記ソフトウェア変換部は、
変換を実施した第１のソフトウェア要素と第２のソフトウェア要素とを対応付けて示す変換実施情報を生成し、生成した変換実施情報を前記変換実施情報記憶部に格納することを特徴とする請求項１又は２に記載のプログラム変換装置。
【請求項４】
前記プログラム変換装置は、更に、
前記ソフトウェア変換部により生成された第２のソフトウェア要素が編集された場合に、編集後の第２のソフトウェアと、当該編集後の第２のソフトウェアの変換元の第１のソフトウェア要素とが対応付けられるように前記変換実施情報を更新する変換実施情報更新部を有し、
前記変換実施情報記憶部は、
前記変換実施情報更新部による更新後の変換実施情報を記憶することを特徴とする請求項１〜３のいずれかに記載のプログラム変換装置。
【請求項５】
前記プログラム変換装置は、
前記第１の試験プログラムを用いて前記第１のソフトウェアに対する試験を行い、
前記第２の試験プログラムを用いて前記第２のソフトウェアに対する試験を行い、
前記第１のソフトウェアに対する試験結果と前記第２のソフトウェアに対する試験結果とを照合することを特徴とする請求項１〜４のいずれかに記載のプログラム変換装置。
【請求項６】
コンピュータが、第１の言語で記述されている第１のソフトウェア要素を、第２の言語で記述される第２のソフトウェア要素に変換して、第１のソフトウェア要素で構成される第１のソフトウェアから第２のソフトウェア要素で構成される第２のソフトウェアを生成するソフトウェア変換ステップと、
前記コンピュータが、前記ソフトウェア変換ステップにより変換が実施された第１のソフトウェア要素と第２のソフトウェア要素とを対応付けて示す変換実施情報を記憶する変換実施情報記憶ステップと、
前記コンピュータが、前記第１のソフトウェアの試験のための第１の試験プログラム内で前記変換実施情報に示される第１のソフトウェア要素と一致するプログラム要素を検索し、第１のソフトウェア要素と一致するプログラム要素を前記変換実施情報において当該第１のソフトウェア要素と対応付けられている第２のソフトウェア要素に変換して、前記第１の試験プログラムから、前記第２のソフトウェアの試験のための第２の試験プログラムを生成する試験プログラム変換ステップとを有することを特徴とするプログラム変換方法。
【請求項７】
第１の言語で記述されている第１のソフトウェア要素を、第２の言語で記述される第２のソフトウェア要素に変換して、第１のソフトウェア要素で構成される第１のソフトウェアから第２のソフトウェア要素で構成される第２のソフトウェアを生成するソフトウェア変換ステップと、
前記ソフトウェア変換ステップにより変換が実施された第１のソフトウェア要素と第２のソフトウェア要素とを対応付けて示す変換実施情報を記憶する変換実施情報記憶ステップと、
前記第１のソフトウェアの試験のための第１の試験プログラム内で前記変換実施情報に示される第１のソフトウェア要素と一致するプログラム要素を検索し、第１のソフトウェア要素と一致するプログラム要素を前記変換実施情報において当該第１のソフトウェア要素と対応付けられている第２のソフトウェア要素に変換して、前記第１の試験プログラムから、前記第２のソフトウェアの試験のための第２の試験プログラムを生成する試験プログラム変換ステップとをコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１の言語で記述されている第１のソフトウェアから第２の言語で記述される第２のソフトウェアを生成するともに、第１のソフトウェアの試験のための第１の試験プログラムから第２のソフトウェアの試験のための第２の試験プログラムを生成する技術に関する。
【背景技術】
【０００２】
本発明に関係する技術として、例えば、特許文献１に開示されているレガシーマイグレーション支援システムがある。
レガシーマイグレーション支援システムは、一般的に、既存資産のソフトウェアを、異なるコンピュータ言語に移植するためのシステムである。
特許文献１では、以下の機能を有するレガシーマイグレーション支援システムが開示されている。
特許文献１のレガシーマイグレーション支援システムは、ソフトウェアを異なるコンピュータ言語に記述し直すソフトウェア用言語変換ツールによって、旧ソフトウェアを新ソフトウェアに変換する。
そして、変換した新ソフトウェアを試験するために、試験スクリプト用言語変換ツールによって、旧ソフトウェアを試験するための旧試験スクリプトを新ソフトウェアを試験するための新試験スクリプトに変換する。
また、新旧の試験スクリプトからそれぞれ新旧ソフトウェアを実行して、新旧ソフトウェアのそれぞれの出力ログが一致していることを確認する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２４５０６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のレガシーマイグレーション支援システムは、試験対象であるソフトウェアの変換と、試験スクリプトの変換を、それぞれ独立した言語変換ツールだけで実施している。
しかし試験スクリプト中には、試験スクリプトに固有な記述である試験手続（例えばテストケース名の宣言）と、試験対象依存コード（例えば試験対象を生成するコード）が混在している。
従来のレガシーマイグレーション支援システムのように、試験スクリプトだけを試験スクリプト用言語変換ツールで変換するだけでは、試験手続は変換できるが、試験対象依存コードは変換できない。
更に試験対象依存コードを変換するために、試験スクリプトに対してソフトウェア用言語変換ツールを併用しようとしても、試験スクリプト中の試験手続と試験対象依存コードを区別する手段がないため、どちらの言語変換ツールを適用するかが制御できない。
この場合、例えば試験スクリプト中のコードに対してソフトウェア用言語変換が行われた上に、更に不適切に試験スクリプト用言語変換までされてしまう危険がある。
このため、従来は、手作業で試験スクリプトを修正する必要があるという課題があった。
【０００５】
この発明は上記のような課題を解決することを主な目的としており、変換されたソフトウェアを試験するための試験プログラムを自動生成することを主な目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るプログラム変換装置は、
第１の言語で記述されている第１のソフトウェア要素を、第２の言語で記述される第２のソフトウェア要素に変換して、第１のソフトウェア要素で構成される第１のソフトウェアから第２のソフトウェア要素で構成される第２のソフトウェアを生成するソフトウェア変換部と、
前記ソフトウェア変換部により変換が実施された第１のソフトウェア要素と第２のソフトウェア要素とを対応付けて示す変換実施情報を記憶する変換実施情報記憶部と、
前記第１のソフトウェアの試験のための第１の試験プログラム内で前記変換実施情報に示される第１のソフトウェア要素と一致するプログラム要素を検索し、第１のソフトウェア要素と一致するプログラム要素を前記変換実施情報において当該第１のソフトウェア要素と対応付けられている第２のソフトウェア要素に変換して、前記第１の試験プログラムから、前記第２のソフトウェアの試験のための第２の試験プログラムを生成する試験プログラム変換部とを有することを特徴とする。
【発明の効果】
【０００７】
本発明では、試験プログラム内のプログラム要素のうち第１のソフトウェア要素と一致するプログラム要素を当該第１のソフトウェア要素と対応付けられている第２のソフトウェア要素に変換する。
このため、試験手続と区別して試験対象依存コードを正しく変換することができ、変換後のソフトウェアに対する試験プログラムを正確に自動生成することができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係るソフトウェア試験装置の構成例を示す図。
【図２】実施の形態１に係るソフトウェア変換と試験スクリプト変換の動作例を示す図。
【図３】実施の形態１に係る試験スクリプト変換部の動作例を示すフローチャート図。
【図４】実施の形態１に係る旧ソフトウェアの例を示す図。
【図５】実施の形態１に係る新ソフトウェアの例を示す図。
【図６】実施の形態１に係るソフトウェア変換規則の例を示す図。
【図７】実施の形態１に係るソフトウェア変換履歴の例を示す図。
【図８】実施の形態１に係る旧試験スクリプトの例を示す図。
【図９】実施の形態１に係る新試験スクリプトの例を示す図。
【図１０】実施の形態１に係る試験スクリプト変換規則の例を示す図。
【図１１】実施の形態２に係るソフトウェア試験装置の構成例を示す図。
【図１２】実施の形態２に係る新ソフトウェア編集部の動作例を示すフローチャート図。
【図１３】実施の形態１及び２に係るソフトウェア試験装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【０００９】
実施の形態１．
本実施の形態では、既存資産のソフトウェア（ＳＷとも表記する）を異なるコンピュータ言語に移植する際、移植後のソフトウェアを試験するスクリプトを自動生成する例を説明する。
【００１０】
図１は、本実施の形態に係るソフトウェア試験装置１００の構成例を示すブロック構成図である。
【００１１】
図１において、旧ソフトウェア格納部１０１は、マイグレーション前のソフトウェア（以下、旧ソフトウェアという）を格納する。
新ソフトウェア格納部１０３は、マイグレーション後のソフトウェア（新ソフトウェアという）を格納する。
変換履歴付きソフトウェア変換部１０２は、旧ソフトウェアを新ソフトウェアに変換し、変換履歴を出力する。
ソフトウェア変換規則格納部１０４は、旧ソフトウェアを新ソフトウェアに変換する規則（以下、ソフトウェア変換規則という）を格納する。
【００１２】
旧ソフトウェアと新ソフトウェアは異なるコンピュータ言語で記述されている。
旧ソフトウェアは第１のソフトウェアの例に相当し、新ソフトウェアは第２のソフトウェアの例に相当する。
以下では、旧ソフトウェアのコンピュータ言語を第１の言語といい、新ソフトウェアのコンピュータ言語を第２の言語という。
また、変換履歴付きソフトウェア変換部１０２は、ソフトウェア変換規則に従い、旧ソフトウェア中のソフトウェア要素（以下、旧ソフトウェア要素という）を、第２の言語で記述されるソフトウェア要素（以下、新ソフトウェア要素という）に変換して、旧ソフトウェアから新ソフトウェアを生成する。
また、旧ソフトウェア要素と新ソフトウェア要素との対応付けを示すソフトウェア変換履歴情報を、後述するソフトウェア変換履歴格納部１０５に出力する。
なお、旧ソフトウェア要素は第１のソフトウェア要素の例に相当し、新ソフトウェア要素は第２のソフトウェア要素の例に相当する。
また、変換履歴付きソフトウェア変換部１０２は、ソフトウェア変換部の例に相当する。
また、変換履歴付きソフトウェア変換部１０２が行うソフトウェアの変換処理は、ソフトウェア変換ステップの例に相当する。
【００１３】
ソフトウェア変換履歴格納部１０５は、旧ソフトウェアを新ソフトウェアに変換した履歴を格納する。
より具体的には、ソフトウェア変換履歴格納部１０５は、変換履歴付きソフトウェア変換部１０２により変換が実施された旧ソフトウェア要素と新ソフトウェア要素とを対応付けて示すソフトウェア変換履歴情報（変換実施情報の例）を記憶する。
ソフトウェア変換履歴格納部１０５は、変換実施情報記憶部の例に相当する。
ソフトウェア変換履歴格納部１０５が行うソフトウェア変換履歴情報の記憶処理は、変換実施情報記憶ステップの例に相当する。
【００１４】
旧試験スクリプト格納部１０６は、旧ソフトウェアを試験するためのスクリプト（以下、旧試験スクリプトという）を格納する。
新試験スクリプト格納部１０８は、新ソフトウェアを試験するためのスクリプト（以下、新試験スクリプトという）を格納する。
試験スクリプト変換部１０７は、旧試験スクリプトを新試験スクリプトに変換する。
試験スクリプト変換規則格納部１０９は、旧試験スクリプトを新試験スクリプトに変換する規則（以下、試験スクリプト変換規則という）を格納する。
【００１５】
旧試験スクリプトは第１の試験プログラムの例に相当し、新試験スクリプトは第２の試験プログラムの例に相当する。
旧試験スクリプトは、旧ソフトウェアの言語である第１の言語、新ソフトウェアの言語である第２の言語のいずれとも異なる言語で記述されている。
旧試験スクリプトの言語を第３の言語という。
但し、旧試験スクリプトには、旧ソフトウェアの要素である旧ソフトウェア要素が部分的に含まれており、旧試験スクリプトに部分的に含まれる旧ソフトウェア要素は第１の言語で記述されている。
また、新試験スクリプトは、第１の言語、第２の言語及び第３言語のいずれとも異なる言語で記述される。
新試験スクリプトの言語を第４の言語という。
試験スクリプト変換部１０７は、旧試験スクリプト内でソフトウェア変換履歴情報に示される旧ソフトウェア要素と一致するスクリプト要素を検索し、旧ソフトウェア要素と一致するスクリプト要素をソフトウェア変換履歴情報において当該旧ソフトウェア要素と対応付けられている新ソフトウェア要素に変換する。
また、試験スクリプト変換部１０７は、いずれの旧ソフトウェア要素とも一致しないスクリプト要素を、試験スクリプト変換規則に従い、第３の言語による記述から第４の言語による記述に変換する。
このようにして、試験スクリプト変換部１０７は、旧試験スクリプトから新試験スクリプトを生成する。
新試験スクリプトでは、部分的に含まれる新ソフトウェア要素は第２の言語で記述され、その他の部分は第４の言語で記述される。
試験スクリプト変換部１０７は、試験プログラム変換部の例に相当する。
また、試験スクリプト変換部１０７が行う試験スクリプトの変換処理は、試験プログラム変換ステップの例に相当する。
また、試験スクリプト変換規則格納部１０９は、試験プログラム変換規則情報記憶部の例に相当する。
【００１６】
旧ソフトウェア実行部１１０は、旧試験スクリプトによって旧ソフトウェアを実行する。
旧ソフトウェア出力データ格納部１１１は、旧ソフトウェア実行部１１０が旧ソフトウェアを実行して出力した結果を格納する。
新ソフトウェア実行部１１２は、新試験スクリプトによって新ソフトウェアを実行する。
新ソフトウェア出力データ格納部１１３は、新ソフトウェア実行部１１２が新ソフトウェアを実行して出力した結果を格納する。
データ比較部１１４は、旧ソフトウェア出力データ格納部１１１の内容と新ソフトウェア出力データ格納部１１３の内容が一致していることを確認する。
試験結果格納部１１５は、データ比較の結果を格納する。
【００１７】
なお、ソフトウェア試験装置１００を、プロセッサ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、磁気ディスク装置等を備えるコンピュータとすることができる。
この場合、例えば、「〜格納部」を磁気ディスク装置で、「変換履歴付きソフトウェア変換部１０２」、「試験スクリプト変換部１０７」「旧ソフトウェア実行部１１０」「新ソフトウェア実行部１１２」及び「データ比較部１１４」をプロセッサで実行されるコンピュータプログラムとして、実現することができる。
【００１８】
次に、本実施の形態に係るソフトウェア試験装置１００の動作の概要を説明する。
【００１９】
まず、変換履歴付きソフトウェア変換部１０２がソフトウェア変換規則に従って旧ソフトウェアを新ソフトウェアに変換し、そのソフトウェア変換履歴情報を出力する。
次に、試験スクリプト変換部１０７が、ソフトウェア変換規則と試験スクリプト変換規則とソフトウェア変換履歴に従って旧試験スクリプトを新試験スクリプトに変換する。
旧ソフトウェア実行部１１０は、旧試験スクリプトによって旧ソフトウェアを実行し、その結果を旧ソフトウェア出力データとして出力する。
また、新ソフトウェア実行部１１２は、新試験スクリプトによって新ソフトウェアを実行し、その結果を新ソフトウェア出力データとして出力する。
最後に、データ比較部１１４が、旧ソフトウェア出力データと新ソフトウェア出力データが一致していることを確認し、その結果を試験結果格納部１１５に保存する。
なお、ソフトウェア試験装置１００において、少なくとも変換履歴付きソフトウェア変換部１０２、ソフトウェア変換履歴格納部１０５及び試験スクリプト変換部１０７が、本発明に係るプログラム変換装置の例を構成する。
【００２０】
次に、変換履歴付きソフトウェア変換部１０２と試験スクリプト変換部１０７の動作について図２を用いて説明する。
まず、変換履歴付きソフトウェア変換部１０２の動作を説明する。
【００２１】
変換履歴付きソフトウェア変換部１０２は、旧ソフトウェアから、旧ソフトウェアの要素実体である旧ソフトウェア要素、例えばＡ１を抽出する。
要素実体とは、ソフトウェアのソースコード中の意味のあるコード断片である。
要素実体Ａ１の種類と一致する要素種類をソフトウェア変換規則から検索し、あれば変換後要素を実体化して新ソフトウェアに出力する。
そして、変換履歴付きソフトウェア変換部１０２は、要素実体Ａ１（旧ソフトウェア要素）を要素実体Ｂ１（新ソフトウェア要素）に変換したことを示すソフトウェア変換履歴情報を生成し、ソフトウェア変換履歴情報をソフトウェア変換履歴格納部１０５に記録させる。
同様な処理を、旧ソフトウェアから全ての要素実体を抽出し終わるまで繰り返す。
【００２２】
次に、試験スクリプト変換部１０７の動作を図２及び図３を参照して説明する。
この変換動作の流れは、旧試験スクリプトのうちの試験手続実体を変換する（以下、試験スクリプト変換という）のか、試験対象実体を変換する（以下、ソフトウェア変換という）のかに大別される。
最初に、試験スクリプト変換部１０７が試験スクリプト変換を実施する流れを説明する。
【００２３】
まず、試験スクリプト変換部１０７は、旧試験スクリプトからスクリプト要素である要素実体１を抽出する（Ｓ１０１）。
図２の例では要素実体１として試験手続実体Ｘ１が抽出されたとする（Ｓ１０２でＹＥＳ）。
試験手続実体とは、試験対象に依存しない試験コードに固有なコード断片であり、例えばテストケース名を宣言するコードが該当する。
次に、試験スクリプト変換部１０７は、試験手続実体Ｘ１の種類と一致する要素種類をソフトウェア変換規則から検索（Ｓ１０３）して成功する（Ｓ１０４でＹＥＳ）。
次に、試験スクリプト変換部１０７は、試験手続実体Ｘ１がソフトウェア変換履歴情報の変換前実体に記録されているかを検索（Ｓ１０５）して失敗する（Ｓ１０６でＮＯ）。
次に、試験スクリプト変換部１０７は、試験手続実体Ｘ１の種類と一致する要素種類を試験スクリプト変換規則から検索（Ｓ１０８）して成功する（Ｓ１０９でＹＥＳ）。
最後に、試験スクリプト変換部１０７は、試験スクリプト変換規則中で該当する変換後要素を実体化して新試験スクリプトに出力する（Ｓ１１０）。
図２の例では試験手続実体Ｙ１が出力されている。
【００２４】
次に、試験スクリプト変換部１０７がソフトウェア変換を実施する流れを説明する。
【００２５】
まず、試験スクリプト変換部１０７は、旧試験スクリプトから要素実体１を抽出する（Ｓ１０１）。
図２の例では要素実体１として試験対象実体Ａ１が抽出されたとする（Ｓ１０２でＹＥＳ）。
試験対象実体とは、試験対象に依存する試験コードの断片であり、例えば試験対象を生成するコードが該当する。
次に、試験スクリプト変換部１０７は、試験対象実体Ａ１の種類と一致する要素種類をソフトウェア変換規則から検索（Ｓ１０３）して成功する（Ｓ１０４でＹＥＳ）。
次に、試験スクリプト変換部１０７は、試験対象実体Ａ１がソフトウェア変換履歴情報の変換前実体に記録されているかを検索（Ｓ１０５）して成功する（Ｓ１０６でＹＥＳ）。
最後に、試験スクリプト変換部１０７は、該当するソフトウェア変換履歴情報の変換後実体をもとに新試験スクリプトに出力する（Ｓ１０７）。
図２の例では試験対象実体Ｂ１が出力されている。
【００２６】
次に、図４から図１０を用いて、Ｊａｖａ（登録商標）コードからＣ＋＋コードに変換し、更にＪａｖａ（登録商標）用試験スクリプトであるＪＵｎｉｔ用コードからＣ＋＋用試験スクリプトであるＣｐｐＵｎｉｔ用コードに変換する例を説明する。
【００２７】
図４は変換前のＪａｖａ（登録商標）コードの例、図５は変換後のＣ＋＋コードの例、図６はＪａｖａ（登録商標）コードからＣ＋＋コードにソフトウェア変換する規則の例である。
図７はソフトウェア変換時の履歴であり、この例では図６の規則１によって変換された履歴が記録されている。
図８は図４のＪａｖａ（登録商標）コードを試験するＪＵｎｉｔ用コードの例、図９は図５のＣ＋＋コードを試験するために図８を変換したＣｐｐＵｎｉｔ用コードの例、図１０はＪＵｎｉｔ用コードからＣｐｐＵｎｉｔ用コードに変換する規則の例である。
【００２８】
まず試験手続実体の変換例を説明する。
図８の「ｃｌａｓｓ  ＰｏｉｎｔＴｅｓｔ  ｅｘｔｅｎｄｓ  ＴｅｓｔＣａｓｅ  ｛」が、図３のＳ１０１で抽出されたとする。
図３のＳ１０３でソフトウェア変換規則（図６）を検索し、規則２の「クラス宣言」が見つかる。
図３のＳ１０５でソフトウェア変換履歴（図７）を検索するが見つからないので図３のＳ１０８を実行する。
Ｓ１０８において試験スクリプト変換規則（図１０）を検索して規則１の「クラス宣言」が見つかる。
図３のＳ１１０において、Ｓ１０８で見つかった規則を適用して、図９の試験手続実体「ｃｌａｓｓ  ＰｏｉｎｔＴｅｓｔ  ：  ｐｕｂｌｉｃ  ＣＰＰＵＮＩＴ＿ＮＳ：：ＴｅｓｔＦｉｘｔｕｒｅ  ｛」が生成される。
【００２９】
次に試験対象実体の変換例を説明する。
図８の「ｐｔ  ＝  ｎｅｗ  Ｐｏｉｎｔ＿（）；」が、図３のＳ１０１で抽出されたとする。
図３のＳ１０３でソフトウェア変換規則（図６）を検索し、規則４の「インスタンス生成」が見つかる。
図３のＳ１０５でソフトウェア変換履歴（図７）を検索し、クラス名「Ｐｏｉｎｔ」が見つかるので、図３のＳ１０７を実行する。
Ｓ１０７において、Ｓ１０３で見つかった規則を適用して、図９の試験対象実体「ｐｔ  ＝  ｎｅｗ  Ｐｏｉｎｔ＿（）；」が生成される。
【００３０】
以上のように、試験スクリプト変換において、試験スクリプトが、試験固有なコード断片と、試験対象に依存するコード断片が混在している問題に対して、試験対象に依存するコード断片はソフトウェア変換の際に記録されたソフトウェア変換履歴を用いて変換するようにしているので、試験スクリプト変換精度を向上することができる。
【００３１】
以上、本実施の形態では、
試験対象の変換履歴を用いて試験スクリプト変換するレガシーマイグレーション支援システムであって、以下の手段を備えるものを説明した。
マイグレーション前のソフトウェアを格納する旧ソフトウェア格納手段、
旧ソフトウェアを試験するスクリプトを格納する旧試験スクリプト格納手段、
旧試験スクリプトによって旧ソフトウェアを実行する旧ソフトウェア実行手段、
旧ソフトウェアが実行して出力した結果を格納する旧ソフトウェア出力データ格納手段、
マイグレーション後のソフトウェアを格納する新ソフトウェア格納手段、
新ソフトウェアを試験するスクリプトを格納する新試験スクリプト格納手段、
新試験スクリプトによって新ソフトウェアを実行する新ソフトウェア実行手段、
新ソフトウェアが実行して出力した結果を格納する新ソフトウェア出力データ格納手段、
旧ソフトウェア出力データ格納手段の内容と新ソフトウェア出力データ格納手段の内容が一致していることを確認するデータ比較手段、
データ比較の結果を格納する試験結果格納手段、
旧ソフトウェアを新ソフトウェアに変換する規則を格納するソフトウェア変換規則格納手段、
旧ソフトウェアを新ソフトウェアに変換し変換履歴を出力する変換履歴付きソフトウェア変換手段、
旧ソフトウェアを新ソフトウェアに変換した履歴を格納するソフトウェア変換履歴格納手段、
旧試験スクリプトを新試験スクリプトに変換する規則を格納する試験スクリプト変換規則格納手段、
旧試験スクリプトを新試験スクリプトに変換する試験スクリプト変換手段。
【００３２】
実施の形態２．
以上の実施の形態１では、マイグレーション後の試験対象となる新ソフトウェアが全て自動変換されるとして、その変換履歴を試験スクリプト変換時に利用するものであるが、次に新ソフトウェアが手作業で修正されるような場合にも、試験スクリプトを自動変換する実施の形態を示す。
【００３３】
図１１は、このような場合のソフトウェア試験装置１００の構成例を示すブロック構成図である。
図１１において、新ソフトウェア編集部１１６は新ソフトウェアを手作業で編集するための要素である。
新ソフトウェア編集部１１６は、変換実施情報更新部の例に相当する。
その他の要素は図１と同様である。
【００３４】
次に、新ソフトウェア編集部１１６の動作について図１２を用いて説明する。
【００３５】
新ソフトウェア編集部１１６は、自動変換された新ソフトウェアを新ソフトウェア格納部１０３から読み出して、作業者が新ソフトウェアを編集できるようにする（Ｓ２０１）。
作業者が編集を終わると（Ｓ２０２でＹＥＳ）、新ソフトウェア編集部１１６は作業者が編集した結果を新ソフトウェア格納部１０３に保存する（Ｓ２０３）。
更に、作業者が編集したコード断片をソフトウェア変換履歴格納部１０５から検索（Ｓ２０４）し、その変換履歴の変換後要素を、作業者が編集したコード断片に更新する（Ｓ２０５、Ｓ２０６）。
つまり、新ソフトウェア編集部１１６は、作業者により新ソフトウェア要素が編集された場合に、編集後の新ソフトウェア要素と、当該編集後の新ソフトウェア要素の変換元の旧ソフトウェア要素とが対応付けられるようにソフトウェア変換履歴情報（変換実施情報）を更新する。
このように更新されたソフトウェア変換履歴格納部１０５を用いて、試験スクリプト変換部１０７が新試験スクリプトを生成する動作は、実施の形態１と同様である。
【００３６】
以上のように、試験対象となる新ソフトウェアが手作業で編集される場合、その編集結果を新試験スクリプトにも手作業で反映しなければならない問題に対して、新ソフトウェアの編集結果をソフトウェア変換履歴格納部１０５に反映し、それを用いて試験スクリプト変換することによって、試験スクリプト変換精度を向上することができる。
【００３７】
以上、本実施の形態では、
試験対象を手作業で編集した履歴を用いて試験スクリプト変換するレガシーマイグレーション支援システムであって、実施の形態１で示した構成に加えて、以下の手段を備えるものを説明した。
マイグレーション後の新ソフトウェアを手作業で編集可能にし、その結果をソフトウェア変換履歴格納手段に記録する新ソフトウェア編集手段。
【００３８】
最後に、実施の形態１及び２に示したソフトウェア試験装置１００のハードウェア構成例について説明する。
図１３は、実施の形態１及び２に示すソフトウェア試験装置１００のハードウェア資源の一例を示す図である。
なお、図１３の構成は、あくまでもソフトウェア試験装置１００のハードウェア構成の一例を示すものであり、ソフトウェア試験装置１００のハードウェア構成は図１３に記載の構成に限らず、他の構成であってもよい。
【００３９】
図１３において、ソフトウェア試験装置１００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。
ＣＰＵ９１１は、バス９１２を介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。
更に、ＣＰＵ９１１は、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７と接続していてもよい。また、磁気ディスク装置９２０の代わりに、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、光ディスク装置、メモリカード（登録商標）読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
実施の形態１及び２で説明した「〜格納部」及び「〜格納手段」は、例えば、磁気ディスク装置９２０により実現される。
通信ボード９１５、キーボード９０２、マウス９０３、スキャナ装置９０７、ＦＤＤ９０４などは、入力装置の一例である。
また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力装置の一例である。
【００４０】
通信ボード９１５は、ネットワークに接続されている。
例えば、通信ボード９１５は、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）、ＳＡＮ（ストレージエリアネットワーク）などに接続されている。
【００４１】
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。
プログラム群９２３のプログラムは、ＣＰＵ９１１がオペレーティングシステム９２１、ウィンドウシステム９２２を利用しながら実行する。
【００４２】
また、ＲＡＭ９１４には、ＣＰＵ９１１に実行させるオペレーティングシステム９２１のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、ＲＡＭ９１４には、ＣＰＵ９１１による処理に必要な各種データが格納される。
【００４３】
また、ＲＯＭ９１３には、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）プログラムが格納され、磁気ディスク装置９２０にはブートプログラムが格納されている。
ソフトウェア試験装置１００の起動時には、ＲＯＭ９１３のＢＩＯＳプログラム及び磁気ディスク装置９２０のブートプログラムが実行され、ＢＩＯＳプログラム及びブートプログラムによりオペレーティングシステム９２１が起動される。
【００４４】
上記プログラム群９２３には、実施の形態１及び２の説明において「〜部」（「〜格納部」以外、以下同様）、「〜手段」（「〜格納手段」以外、以下同様）として説明している機能を実行するプログラムが記憶されている。
プログラムは、ＣＰＵ９１１により読み出され実行される。
【００４５】
ファイル群９２４には、実施の形態１及び２の説明において、「〜の変換」、「〜の抽出」、「〜の比較」、「〜の検索」、「〜の更新」、「〜の生成」、「〜の照合」、「〜の選択」、「〜の入力」、「〜の出力」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。
ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出される。
そして、読み出された情報やデータや信号値や変数値やパラメータは、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのＣＰＵの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態１及び２で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示す。
データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。
また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００４６】
また、実施の形態１及び２の説明において「〜部」、「〜手段」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。
すなわち、実施の形態１及び２で説明したフローチャートに示すステップ、手順、処理により、本発明に係る「プログラム変換方法」を実現することができる。
また、「〜部」、「〜手段」として説明しているものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。
或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。
プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。
すなわち、プログラムは、実施の形態１及び２の「〜部」、「〜手段」としてコンピュータを機能させるものである。あるいは、実施の形態１及び２の「〜部」、「〜手段」の手順や方法をコンピュータに実行させるものである。
【００４７】
このように、実施の形態１及び２に示すソフトウェア試験装置１００は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータである。
そして、上記したように「〜部」、「〜手段」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【符号の説明】
【００４８】
１００  ソフトウェア試験装置、１０１  旧ソフトウェア格納部、１０２  変換履歴付きソフトウェア変換部、１０３  新ソフトウェア格納部、１０４  ソフトウェア変換規則格納部、１０５  ソフトウェア変換履歴格納部、１０６  旧試験スクリプト格納部、１０７  試験スクリプト変換部、１０８  新試験スクリプト格納部、１０９  試験スクリプト変換規則格納部、１１０  旧ソフトウェア実行部、１１１  旧ソフトウェア出力データ格納部、１１２  新ソフトウェア実行部、１１３  新ソフトウェア出力データ格納部、１１４  データ比較部、１１５  試験結果格納部、１１６  新ソフトウェア編集部。
【図１】
2012248037.tif 000003
【図２】
2012248037.tif 000004
【図３】
2012248037.tif 000005
【図４】
2012248037.tif 000006
【図５】
2012248037.tif 000007
【図６】
2012248037.tif 000008
【図７】
2012248037.tif 000009
【図８】
2012248037.tif 000010
【図９】
2012248037.tif 000011
【図１０】
2012248037.tif 000012
【図１１】
2012248037.tif 000013
【図１２】
2012248037.tif 000014
【図１３】
2012248037.tif 000015