(57)【要約】【課題】シナリオをテストする際に、実行するアプリケーション・プログラム・インターフェース（ＡＰＩ）の入力データを効率的に決定し、更には、実行されるべきＡＰＩの候補を提示する方法、装置、及びプログラムを提供する。【解決手段】複数のＡＰＩを順次実行するシナリオをテストするテストツール１０において、ＡＰＩテスト制御部１２０は、ＡＰＩの実行に伴って、ＡＰＩ順序登録部１５０を介して複数のＡＰＩの実行順序を表す順序データ及び入出力データをテスト情報データベース１１０に記憶する。更に、関連性登録部１５５を介して複数のＡＰＩの間の入出力データの関連を表す関連データをテスト情報データベース１１０に記憶する。これにより、ＡＰＩテスト制御部１２０は、順序データに基づいて次の実行候補となるＡＰＩを表す候補ＡＰＩリストを表示し、更に関連データに基づいて次に実行するＡＰＩの入力データを決定する。【選択図】図３
2007241697.tif 000002
【特許請求の範囲】
【請求項１】
複数のアプリケーション・プログラム・インターフェース（ＡＰＩ）を順次実行するシナリオをテストする方法であって、
次の実行候補となるＡＰＩのリストを表示するステップと、
前記ＡＰＩのリストの中から、次に実行させるＡＰＩの選択を受け付けるステップと、
選択されたＡＰＩの入力を受け付けるステップと、
前記選択されたＡＰＩを実行するステップと、
実行された複数のＡＰＩの実行順序を表す順序データを記憶するステップと、
前記実行された複数のＡＰＩの間の入出力データの関連を表す関連データを記憶するステップとを含み、
前記次の実行候補となるＡＰＩのリストを表示するステップにおいて、前記順序データが既に記憶されていた場合には、前記順序データに基づいて候補ＡＰＩを表示し、
前記選択されたＡＰＩの入力を受け付けるステップにおいて、前記関連データが既に記憶されていた場合には前記関連データを表示する、
方法。
【請求項２】
関連付けのルールを表すデータを受け付け、前記ＡＰＩの入出力データに基づいて前記関連データを生成するステップを更に含む請求項１に記載の方法。
【請求項３】
前記入出力データと共に、前記選択されたＡＰＩの実行がエラーとなったか否かを判断するステップを更に含む請求項１又は請求項２に記載の方法。
【請求項４】
エラーと判断した場合の入力データとエラーでないと判断した場合の入力データとを比較し、差異をエラーパターンデータとして記憶するステップを更に含む請求項３に記載の方法。
【請求項５】
前記選択されたＡＰＩを実行する際の入力データと前記エラーパターンデータとを比較し、符合した場合に警告を表す表示をするステップを更に含む請求項４に記載の方法。
【請求項６】
前記エラーパターンデータに、前記エラーとなった複数の入力データの関連を表すデータを含む請求項４又は請求項５に記載の方法。
【請求項７】
前記順序データ及び前記関連データに基づき、前記シナリオを実行するアプリケーションのプログラムコードを生成するステップを更に含む請求項１乃至請求項６のいずれかに記載の方法。
【請求項８】
複数のアプリケーション・プログラム・インターフェース（ＡＰＩ）を順次実行するシナリオをテストする装置であって、
次の実行候補となるＡＰＩのリストを表示する表示部と、
前記ＡＰＩのリストの中から、次に実行させるＡＰＩの選択を受け付けるＡＰＩ選択部と、
選択されたＡＰＩの入力を受け付ける入力部と、
前記選択されたＡＰＩを実行するＡＰＩ実行部と、
実行された複数のＡＰＩの実行順序を表す順序データ、および前記実行された複数のＡＰＩの間の入出力データの関連を表す関連データを記憶する記憶部とを備え、
前記表示部は、前記次の実行候補となるＡＰＩのリストを表示するときに、前記順序データが既に記憶されていた場合には、前記順序データに基づいて候補ＡＰＩを表示し、
前記入力部が前記選択されたＡＰＩの入力を受け付けるときに、前記関連データが既に記憶されていた場合には前記関連データを表示する、
装置。
【請求項９】
複数のアプリケーション・プログラム・インターフェース（ＡＰＩ）を順次実行するシナリオをテストするコンピュータ・プログラムであって、コンピュータに、
次の実行候補となるＡＰＩのリストを表示するステップと、
前記ＡＰＩのリストの中から、次に実行させるＡＰＩの選択を受け付けるステップと、
選択されたＡＰＩの入力を受け付けるステップと、
前記選択されたＡＰＩを実行するステップと、
実行された複数のＡＰＩの実行順序を表す順序データを記憶するステップと、
実行された複数のＡＰＩの間の入出力データの関連を表す関連データを記憶するステップとを実行させ、
前記次の実行候補となるＡＰＩのリストを表示するステップにおいて、前記順序データが既に記憶されていた場合には、前記順序データに基づいて候補ＡＰＩを表示させ、
前記選択されたＡＰＩの入力を受け付けるステップにおいて、前記関連データが既に記憶されていた場合には前記関連データを表示させる、
コンピュータ・プログラム。
【請求項１０】
請求項９のコンピュータ・プログラムをコンピュータ可読媒体に記録したプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シナリオをテストする方法、装置、及びプログラムに関する。さらに詳しくは、複数のアプリケーション・プログラム・インターフェース（ＡＰＩ）を順次実行するシナリオをテストする方法、装置、及びプログラムに関する。
【背景技術】
【０００２】
従来、システム開発の各局面において、開発者の作業効率を向上させるための技術が提案されてきている。例えば特許文献１には、ＡＰＩを利用したシステムの設計局面において、ユースケースとＡＰＩとの関連度に基づいてシナリオを作成し、設計の作業負担を軽減させる方法が開示されている。
【０００３】
また、システムのテストを行う局面においては、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）による対話的なＡＰＩテストを行うツールが利用されてきている。このようなツールによれば、個々の入力データ（パラメータ）を手入力し、あるいは予め入力データを登録しておいたファイルを読み取ってＡＰＩを実行する。また、入力データ及び出力データをファイルに保存したり、テストデータを比較したりすることもできる。
【特許文献１】特開２０００−２３５４８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、ＡＰＩの入力データは、その数や桁数が多い場合には入力を間違える可能性が高く、その修正にも時間がかかる。このような状況において、複数のＡＰＩの間で入出力データの関連性（先行のＡＰＩの出力データが後続のＡＰＩの入力データとなる等）がある場合に、実行済みＡＰＩの入出力データを自動的に後続のＡＰＩの入力データとする方法は提供されていない。
【０００５】
更に、業務処理（シナリオ）に沿って複数のＡＰＩを実行するソフトウェアのテストにおいては、多数のＡＰＩが存在する中で、状況に応じたＡＰＩを適切に選択するためには困難を伴う。特許文献１に記載の方法においても、与えられたユースケースの情報からＡＰＩと関連付けたシナリオを抽出することはできるが、新たなシナリオを生成・テストする場合に後続のＡＰＩの候補を示す方法は提供されていない。
【０００６】
そこで本発明は、シナリオをテストする際に、実行するＡＰＩの入力データを効率的に決定し、更には、実行されるべきＡＰＩの候補を提示する方法、装置、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１の形態によると、複数のＡＰＩを順次実行するシナリオをテストする方法を提供する。当該方法は、次の実行候補となるＡＰＩのリストを表示するステップと、  ＡＰＩのリストの中から、次に実行させるＡＰＩの選択を受け付けるステップと、選択されたＡＰＩの入力を受け付けるステップと、選択されたＡＰＩを実行するステップと、実行された複数のＡＰＩの実行順序を表す順序データを記憶するステップと、実行された複数のＡＰＩの間の入出力データの関連を表す関連データを記憶するステップとを含み、次の実行候補となるＡＰＩのリストを表示するステップにおいて、順序データが既に記憶されていた場合には、当該順序データに基づいて候補ＡＰＩを表示し、選択されたＡＰＩの入力を受け付けるステップにおいて、関連データが既に記憶されていた場合には当該関連データを表示するようにしたことを特徴としている。
【０００８】
本発明の第２の形態によると、複数のＡＰＩを順次実行するシナリオをテストする装置を提供する。当該装置は、次の実行候補となるＡＰＩのリストを表示する表示部と、ＡＰＩのリストの中から、次に実行させるＡＰＩの選択を受け付けるＡＰＩ選択部と、選択されたＡＰＩの入力を受け付ける入力部と、選択されたＡＰＩを実行するＡＰＩ実行部と、実行された複数のＡＰＩの実行順序を表す順序データ、および実行された複数のＡＰＩの間の入出力データの関連を表す関連データを記憶する記憶部とを備え、表示部は、次の実行候補となるＡＰＩのリストを表示するときに、順序データが既に記憶されていた場合には、当該順序データに基づいて候補ＡＰＩを表示し、入力部が選択されたＡＰＩの入力を受け付けるときに、関連データが既に記憶されていた場合には関連データを表示するようにしたことを特徴としている。
【０００９】
本発明の第３の形態によると、第１の形態の方法をコンピュータに実行させるコンピュータ・プログラムを提供する。
【００１０】
本発明の第４の形態によると、第３の形態のコンピュータ・プログラムをコンピュータ可読媒体に記録したプログラム製品を提供する。
【００１１】
上記本発明の形態を実現するコンピュータは、ＡＰＩの実行順序を表す順序データや、ＡＰＩの入出力データの関連を表す関連データを記憶する。当該順序データ及び関連データは、テストを繰り返すことでその情報量を次第に増加していく。
【００１２】
情報量が増えた当該順序データ及び関連データを用いることにより、シナリオをテストする際に、当該コンピュータは、実行するＡＰＩの入力データを効率的に決定し、更には、実行されるべきＡＰＩの候補を効果的に提示することができる。
【発明の効果】
【００１３】
本発明によれば、ＡＰＩを順次実行するシナリオのテストにおける効率が上がり、開発アプリケーションの品質を向上させる可能性がある。
【発明を実施するための最良の形態】
【００１４】
本発明に係る好適な実施形態の一例について、図面に基づいて以下に説明する。
【００１５】
［実施形態概念図］
図１は、本発明に係る好適な実施形態の一例を示す全体概念図である。
【００１６】
テスト実施者は、ＡＰＩの組合せである被検証ソフトウェア２０のテストを行う場合に、想定されるシナリオに沿って当該ＡＰＩへの入力データを指定し、実行結果（出力データ）を得る。
【００１７】
ここで、シナリオとは被検証ソフトウェア２０により実現する業務処理（例えば銀行業務における口座作成処理、入出金処理等）であって、実行する順序が決められた複数のＡＰＩによって構成される。ＡＰＩとは、当該業務処理に関する一部の機能を担うために、入力データを受け付けて処理結果を出力する機能または当該機能を実現するプログラムのことである。例えばＡＰＩとは、上述の機能を実現する手続きや関数等であってよい。
【００１８】
このとき、本発明に係るテストツール１０を介することで、ＡＰＩの選択や入力データの指定に関するガイド表示がなされるため、当該テスト実施者は、ＡＰＩの選択や入力データの指定を全て手動で行うのに比べて、効率的にＡＰＩの実行をし、結果を得ることができる。
【００１９】
なお、テストツール１０は、被検証ソフトウェア２０を含むコンピュータ３０に配置してもよいし、別のコンピュータに配置することとしてもよい。
【００２０】
［コンピュータの構成］
本発明は、ハードウェア、ソフトウェア、またはハードウェア及びソフトウェアの組み合わせとして実現可能である。ハードウェアとソフトウェアの組み合わせによる実施では、所定のプログラムを有するコンピュータ・システムでの実施が典型的な例として挙げられる。かかる場合、該所定プログラムが該コンピュータ・システムにロードされ実行されることにより、該プログラムは、コンピュータ・システムに本発明にかかる処理を実行させる。このプログラムは、任意の言語、コード、または表記によって表現可能な命令群から構成される。そのような命令群は、システムが特定の機能を直接実行すること、または（１）他の言語、コード、もしくは表記への変換、（２）他の媒体への複製、のいずれか一方もしくは双方が行われた後に、実行することを可能にするものである。もちろん、本発明は、そのようなプログラム自体のみならず、プログラムを記録した媒体を含むプログラム製品もその範囲に含むものである。
【００２１】
本発明の機能を実行するためのプログラムは、フレキシブル・ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＤＶＤ、ハード・ディスク装置、ＲＯＭ、ＭＲＡＭ、ＲＡＭ等の任意のコンピュータ可読媒体に格納することができる。かかるプログラムは、コンピュータ可読媒体への格納のために、通信回線で接続する他のコンピュータ・システムからダウンロードしたり、他の媒体から複製したりすることができる。また、かかるプログラムは、圧縮し、または複数に分割して、単一または複数の記録媒体に格納することもできる。
【００２２】
図２は、本発明の好適な実施形態の一例に係るコンピュータ３０の構成を示すブロック図である。
【００２３】
制御部１１、記憶部１２、入力部１３、表示部１４、通信制御部１５は、バス１６を介して接続されている。
【００２４】
制御部１１は、情報の演算、処理を行う情報演算処理装置（ＣＰＵ）であり、当該コンピュータ全体の制御を行う。制御部１１は、記憶部１２に記憶された各種プログラムを適宜読み出して実行することにより、上述のハードウェアと協働し、本発明に係る各種機能を実現している。
【００２５】
記憶部１２は、制御部１１と組み合わせてプログラムの実行に使用するローカル・メモリ、大容量のバルク・ストレージ、及び当該バルク・ストレージの検索を効率的に行うために使用するキャッシュ・メモリ等を含む。
【００２６】
入力部１３は、ユーザによる入力の受付を行うものであり、キーボード、ポインティング・デバイス等を含む。入力部１３は、直接または介在Ｉ／Ｏコントローラを介してコンピュータ３０と接続することができる。
【００２７】
表示部１４は、ユーザにデータの入力を受け付ける画面を表示したり、当該コンピュータによる処理結果を表示したりするものであり、ブラウン管表示装置（ＣＲＴ）、液晶表示装置（ＬＣＤ）等のディスプレイ装置等を含む。表示部１４は、直接または介在Ｉ／Ｏコントローラを介してコンピュータ３０と接続することができる。
【００２８】
通信制御部１５は、当該コンピュータを専用ネットワークまたは公共ネットワークを介して別の演算処理システム、遠隔プリンタまたは記憶装置と接続できるようにするためのネットワーク・アダプタである。通信制御部１５は、モデム、ケーブル・モデム及びイーサネット（登録商標）・カード等を含む。
【００２９】
［テスト手段の全体構成］
図３は、本発明の好適な実施形態の一例に係る、テストツール１０が備えるテスト手段の実装構成を示すブロック図である。
【００３０】
テストツール１０の動作に係る各種データは、テスト情報データベース１１０に記憶されている。テスト情報データベース１１０は、ＤＢ２（登録商標）や種々のＸＭＬデータベース等、その形式は限定しない。ＡＰＩテスト制御部１２０は、後述の各部と協働してテストツール１０全体を制御し、テスト情報データベース１１０にあるデータを適宜読み書きする。
【００３１】
ＡＰＩ構文解析部１３０は、被検証ソフトウェアに含まれるＡＰＩの入出力データ形式等を定義したＡＰＩ定義ファイルを読み取り、ＡＰＩの呼び出し形式に関するデータをテスト情報データベース１１０に記憶する。テスト実施者は、ここで定義したＡＰＩから、テストするシナリオに適したＡＰＩを選択して実行していくことになる。なお、ＡＰＩ定義ファイルはＸＭＬ等の構造化文書としてもよい。
【００３２】
テストケース管理部１３５は、予めテストケース（テスト入力データ）を設定しておく場合に、入力データを記述したテストケースファイルを読み取り、テスト情報データベース１１０に記憶する。なお、テストケースの設定は、このように予め行っておいてもよいし、ＡＰＩ実行時に指定してもよい。また、テストケースファイルはＸＭＬ等の構造化文書としてもよい。
【００３３】
ＡＰＩ実行部１４０は、テストケース管理部１３５にて読み取ったテストケース、あるいは適宜指定された入力データにより、被検証ソフトウェア２０に含まれるＡＰＩを呼び出し実行する。なお、ＡＰＩはＪＡＶＡ（登録商標）のオブジェクトであってよく、被検証ソフトウェア２０は、テストツール１０とは異なるプラットフォーム（ＯＳ）上にあってもよい。呼び出しのプロトコルとしては、ＲＭＩ（Ｒｅｍｏｔｅ  Ｍｅｔｈｏｄ  Ｉｎｖｏｃａｔｉｏｎ）／ＩＩＯＰ（Ｉｎｔｅｒｎｅｔ  Ｉｎｔｅｒ−ＯＲＢ  Ｐｒｏｔｏｃｏｌ）（ＲＭＩ  ｏｖｅｒ  ＩＩＯＰ）を用いることができる。
【００３４】
ＡＰＩ順序登録部１５０は、シナリオで実行したＡＰＩの入出力データ及び実行順序に関する順序データを、テスト情報データベース１１０に記憶する（後述の終了時登録処理）。
【００３５】
ここで、入出力データとは、ＡＰＩ実行時に要求される入力データ（入力パラメータ等）及び実行結果を表す出力データ（出力パラメータ、関数値等）である。
【００３６】
また、順序データは、ＡＰＩの実行順序を表すデータであって、例えば、テストしたシナリオにて実行したＡＰＩを識別するＩＤやその順序、あるいは任意のシナリオにおいて、あるＡＰＩに続いて実行されたＡＰＩのリスト等がこれに相当する。
【００３７】
関連性登録部１５５は、ＡＰＩ実行部から得られた複数のＡＰＩの入出力データから相互の関連性を抽出し、関連データとしてテスト情報データベース１１０に記憶する（後述の終了時登録処理）。あるいは、ユーザインタフェース部１８０を介してテスト実施者から関連データを取得することとしてもよい（後述の実行時登録処理）。
【００３８】
ここで、関連データは、入出力データの相互の関連性を表すデータであって、例えば、先に実行したあるＡＰＩの入力データまたは出力データと後続のＡＰＩの入力データとが等しい（先行ＡＰＩと同一のデータを後続のＡＰＩの入力データとして入力する）こと等を表すデータである。
【００３９】
なお、入出力データから関連性を抽出する場合には、関連付けのルールを表すデータ（例えば、値が一致する入出力データ同士を関連付ける、データフィールド名が一致する入出力データ同士を関連付ける等）を予め記憶しておく。
【００４０】
エラーパターン登録部１６０は、ＡＰＩの実行がエラーになった場合の入力データと、エラーにならなかった場合の入力データとを比較し、エラーになる入力データの組合せを判別し、エラーパターンデータとしてテスト情報データベース１１０に記憶する（後述のエラーパターン登録処理）。
【００４１】
ここで、エラーパターンデータは、ＡＰＩを実行する際にエラーとなる可能性のある入力データの組合せである。例えば、ＡＰＩの実行がエラーとなった場合の入力データと成功した場合の入力データとの差異をエラーの要因とみなし、入力データを識別するＩＤと値とをエラーパターンデータとする。
【００４２】
コード生成部１７０は、テスト情報データベース１１０に記憶したデータに基づき、実際のアプリケーションで使用可能となるサンプルのソースコードを生成する（後述のコード生成処理）。
【００４３】
ユーザインタフェース部１８０は、テスト実施者から入力部１３を介して、実行するＡＰＩの選択や当該ＡＰＩへの入力データ、あるいは入出力データの関連性データ等を受け付ける。また、後述する各種処理における結果データ等を表示部１４へ表示する。なお、ユーザインタフェース部１８０は、ＧＵＩによる対話的なインタフェースを提供できる。
【００４４】
［メイン処理］
図４及び図５は、本発明の好適な実施形態の一例に係るテスト手段のメイン処理を示すフロー図である。図１４にて画面例を含めた処理概要を示す。
【００４５】
ステップＳ１０５では、テストツール１０は、テストを行うシナリオの選択を受け付ける表示を行う。具体的には、例えば図１４の画面１のように、登録されているシナリオをリスト表示する。ここで、初めてテストするシナリオについての登録を受け付けることとしてよい。入力フォーム（図示しない）により受け付けたシナリオを登録することにより、次回実行時にリスト表示を行う。
【００４６】
ステップＳ１１０では、テストツール１０は、ステップＳ１０５にて表示したシナリオのリストから、どのシナリオをテストするかの選択を受け付ける。当該選択を受け付けることにより、テストツール１０はステップＳ１１５に処理を移す。
【００４７】
選択されたシナリオについて、必要なＡＰＩを全て実行するまで、ステップＳ１１５からステップＳ１９５を繰り返す。ステップＳ１１５では、テストツール１０は、選択されたシナリオにて実行するＡＰＩの候補をテスト情報データベース１１０から読み取る。具体的には、後述の終了時登録処理（ステップＳ２００）にて記憶した複数のＡＰＩの実行順序に基づき、先行のＡＰＩから後続の１つまたは複数のＡＰＩを推測し、候補ＡＰＩとして抽出する。ここで抽出される候補ＡＰＩは、テストを重ねる毎にその数が増えることがある。
【００４８】
ステップＳ１２０では、テストツール１０は、ステップＳ１１５にて読み取った候補ＡＰＩから、次に実行するＡＰＩの選択を受け付ける表示を行う。具体的には、例えば図１４の画面２のように、候補ＡＰＩをリスト表示する。なお、候補ＡＰＩ以外からの選択も可能にするため、全ＡＰＩのリストを表示する選択肢も設ける。
【００４９】
ステップＳ１２５では、テストツール１０は、ステップＳ１２０にて表示したリストから、全ＡＰＩのリストを表示する選択を受け付けたか否かを判別する。全ＡＰＩのリストを表示する選択を受け付けた場合には、ステップＳ１３０に処理を移し、選択を受け付けなかった場合には、ステップＳ１３５に処理を移す。
【００５０】
ステップＳ１３０では、テストツール１０は、全ＡＰＩのリストを表示し、次に実行するＡＰＩの選択を受け付ける。
【００５１】
ステップＳ１３５では、テストツール１０は、ステップＳ１２０またはステップＳ１３０にて表示したリストから、どのＡＰＩを実行するかの選択を受け付ける。当該選択を受け付けることにより、テストツール１０はステップＳ１４０に処理を移す。
【００５２】
ステップＳ１４０では、テストツール１０は、ＡＰＩの入出力データの関連性を示すデータを読み取る。具体的には、例えば後述の実行時登録処理（ステップＳ１５５）または終了時登録処理（ステップＳ２００）にて記憶した関連データを読み取る。当該関連データは、例えば図１２のパラメータ関連テーブル５０に記憶する。パラメータ関連テーブル５０では、ＡＰＩ−ＩＤ、パラメータ区分、及びパラメータＩＤにて特定される入力データが、関連ＡＰＩ−ＩＤ、関連パラメータ区分、関連パラメータＩＤにて特定されるデータと関連付いている（等しい）ことを示している。
【００５３】
ステップＳ１４５では、テストツール１０は、ステップＳ１４０にて読み取った関連データに基づき、先行のＡＰＩの実行結果を参照してＡＰＩへの入力データを表示する。具体的には、例えば図１４の画面３のように、ＡＰＩへの入力データをリスト表示する。ここで、関連データに基づいて決定できない入力データについては、テスト実施者から値の入力を受け付ける。また、後述のステップＳ１７０またはステップＳ１９０からの遷移により、テストツール１０は入力データの修正入力も受け付ける。
【００５４】
ステップＳ１５０では、テストツール１０は、関連データの実行時登録処理を行うか否かの選択を受け付ける。当該実行時登録処理を行う旨の選択を受け付けた場合には、ステップＳ１５５に処理を移し、選択を受け付けなかった場合には、ステップＳ１６０に処理を移す。
【００５５】
ステップＳ１５５では、テストツール１０は、ＡＰＩの入出力データに関する関連データの登録を行う。詳細は後述する（図７）。
【００５６】
ステップＳ１６０では、テストツール１０は、設定した入力データによってＡＰＩがエラーになる可能性を事前確認するか否かの選択を受け付ける。確認する旨の選択を受け付けた場合にはステップＳ１６５に処理を移し、受け付けなかった場合にはステップＳ１７０に処理を移す。
【００５７】
ステップＳ１６５では、テストツール１０は、設定した入力データによりＡＰＩを実行した場合に、エラーとなる可能性を事前確認する。詳細は後述する（図９）。
【００５８】
ステップＳ１７０では、テストツール１０は、ＡＰＩを実行させる旨の入力を受け付ける。当該入力を受け付けた場合には、ステップＳ１７５に処理を移す。
【００５９】
ステップＳ１７５では、テストツール１０は、設定した入力データに基づきＡＰＩを呼び出して実行する。
【００６０】
ステップＳ１８０では、テストツール１０は、ステップＳ１７５における実行結果に基づき、エラーパターンの登録を行う。詳細は後述する（図８）。
【００６１】
ステップＳ１８５では、テストツール１０は、ＡＰＩの実行結果である出力データの表示を行う。具体的には、例えば図１４の画面４のように出力データをリスト表示する。
【００６２】
ステップＳ１９０では、テストツール１０は、シナリオを次のステップに移す（次のＡＰＩを実行する）か否かの選択を受け付ける。次のＡＰＩを実行する旨（シナリオ続行）の選択を受け付けた場合には、ステップＳ１９５に処理を移し、続行しない（やり直す）選択を受け付けた場合には、ステップＳ１４５に処理を戻し、同じＡＰＩを実行すべく入力データを受け付ける。
【００６３】
ステップＳ１９５では、テストツール１０は、シナリオが終了したか否かを判別する。具体的には、シナリオを終了させるか否かの選択を受け付け、終了させる旨の選択を受け付けた場合にはステップＳ２００に処理を移し、終了させない（後続のＡＰＩが存在する）旨の選択を受け付けた場合には、ステップＳ１１５に処理を戻し、後続のＡＰＩの選択を受け付ける。
【００６４】
ステップＳ２００では、テストツール１０は、入出力データの関連データ及びＡＰＩの実行順序に関するデータを記憶する。詳細は後述する（図６）。
【００６５】
［終了時登録処理］
図６は、本発明の好適な実施形態の一例に係るテスト手段の終了時登録処理を示すフロー図である。
【００６６】
ステップＳ２０５では、テストツール１０は、シナリオ終了時に行う処理のリストを表示し、実行する処理の選択を受け付ける。具体的には、例えば図１４の画面５のように、ＡＰＩシーケンス登録、パラメータ関連情報登録、終了、の選択を受け付ける表示とする。
【００６７】
ステップＳ２１０及びステップＳ２２０では、テストツール１０は、ステップＳ２０５にて受け付けた処理がＡＰＩシーケンス登録であるか、パラメータ関連情報登録であるかを判別する。受け付けた処理がＡＰＩシーケンス登録であった場合にはステップＳ２１５を実行し、受け付けた処理がパラメータ関連情報登録であった場合にはステップＳ２２５及びステップＳ２３０を実行する。
【００６８】
ステップＳ２１５では、テストツール１０は、選択されたシナリオにて実行したＡＰＩの順序に関するデータを記憶する。具体的には、例えば図１１のＡＰＩ登録テーブル４０に、シナリオ、順序、各ＡＰＩを識別するＩＤ、パラメータの入出力区分、パラメータＩＤ、パラメータの値を記憶する。このことにより、入出力データと共にシナリオにて使用するＡＰＩ、及び複数のＡＰＩの実行順序（前後関係）を記憶できる。よって、前述の候補ＡＰＩの読み取り（図４のステップＳ１１５）では、当該実行順序に基づいて候補ＡＰＩを抽出することができる。
【００６９】
ステップＳ２２５では、テストツール１０は、複数のＡＰＩの入出力データ間の関連性を表すデータを記憶する。具体的には、例えば図１２のパラメータ関連テーブル５０に、ＡＰＩのＩＤ、パラメータの入出力区分、パラメータＩＤ、関連ＡＰＩのＩＤ、関連パラメータの入出力区分、関連パラメータＩＤを記憶する。このことにより、先行のＡＰＩの出力データあるいは入力データが後続のＡＰＩの入力データと等しいことを表現することができる。
【００７０】
または、例えば２番目のＡＰＩの１番目の入力データに、１番目のＡＰＩの５番目の出力データをセットする場合に、「ｉｎｐｕｔ＿２＿１＝ｏｕｔｐｕｔ＿１＿５」のようなテキストデータとして記憶することとしてもよい。
【００７１】
ここで、パラメータ間で関連性があるか否かを判別するためには、関連付けの規則を予め設定しておく。当該規則は、設定ファイルとして読み取ることとしてよい。関連付けの規則としては例えば、値が一致しているもの、データフィールド名が一致しているもの、等とすることができる。このとき、デフォルト値（文字列なら空白、数値なら０等）や未使用フィールドは除外することとしてよい。
【００７２】
ステップＳ２３０では、テストツール１０は、ステップＳ２２５にて記憶した関連データについての補正入力を受け付ける。具体的には、例えば記憶した関連データを別画面に表示（図示しない）し、必要のない関連データを削除、もしくは新たに関連データを追加する入力を受け付ける。
【００７３】
このようにして関連データを記憶することにより、前述の関連性の読み取り処理（図４のステップＳ１４０）にて当該関連データを読み取り、実行するＡＰＩへの入力データを自動的に表示することができる。
【００７４】
ステップＳ２３５では、テストツール１０は、終了時登録処理を終了する旨の選択を受け付けたか否かを判断する。終了する旨の選択を受け付けた場合には処理を終了し、受け付けなかった場合には、ステップＳ２１０に処理を戻し、処理選択の入力を待機する。
【００７５】
［実行時登録処理］
図７は、本発明の好適な実施形態の一例に係るテスト手段の実行時登録処理を示すフロー図である。
【００７６】
ステップＳ３０５では、テストツール１０は、関連データの実行時登録を行う旨の選択を受け付ける。当該選択を受け付けた場合にステップＳ３１０に処理を移す。具体的には例えば、図１５のような画面によれば、口座作成のシナリオのＡＰＩ３において、Ｎ番目の入力データＶａｌｕｅ３＿Ｎの関連性を登録する場合に、当該入力データの選択を受け付けた上で登録ボタン押下の入力を受け付ける。
【００７７】
ステップＳ３１０では、テストツール１０は、関連付けの入力を受け付けるため、一時記憶しておいた実行済みのＡＰＩの入出力データを参照し、表示する。具体的には例えば、図１５のような画面表示を行う。実行済みのＡＰＩそれぞれの入出力データをタブ切り替え等により表示する。
【００７８】
ステップＳ３１５では、テストツール１０は、関連付けの選択入力を受け付ける。具体的には例えば、図１５の例では、ステップＳ３０５にて選択したＮ番目の入力データを、ＡＰＩ２の２番目の出力データと関連付ける（ＡＰＩ２の２番目の出力データをＡＰＩ３のＮ番目の入力データとする）ため、Ｖａｌｕｅ＿２＿２の選択を受け付ける。
【００７９】
ステップＳ３２０では、テストツール１０は、ステップＳ３１５における関連付けの選択を決定する選択を受け付ける。決定する旨の選択を受け付けた場合にはステップＳ３２５に処理を移し、受け付けなかった場合にはステップＳ３１５の関連付けの選択入力の受け付けを継続する。
【００８０】
ステップＳ３２５では、テストツール１０は、受け付けた関連付けを表すデータを記憶する。具体的には前述の終了時登録処理（図６）と同様の方法による。
【００８１】
［エラーパターン登録処理］
図８は、本発明の好適な実施形態の一例に係るテスト手段のエラーパターン登録処理を示すフロー図である。
【００８２】
ステップＳ４０５では、テストツール１０は、ＡＰＩの実行が成功した（処理が正常に完了した）か否かを判別する。成功せずにエラーになった場合にはステップＳ４１０の処理を行い、実行が成功した場合にはステップＳ４１５の処理を行う。
【００８３】
ステップＳ４１０では、テストツール１０は、エラーになったＡＰＩに入力した入力データを記憶する。具体的には、例えば図１６に示した例では、実行がエラーになった際に、Ｆｉｅｌｄ１、２、３、４、５、６、７にそれぞれＩｎｐｕｔ１、２、３、４、５、６、７を入力していた旨を記憶する。
【００８４】
ステップＳ４１０にてエラーパターン登録処理は終了するが、テストツール１０は、メイン処理（図４、図５）のステップＳ１４５からＳ１９０を繰り返すことにより、テスト実施者からの修正入力を受け付けてＡＰＩ実行を成功させることができる。これにより、テストツール１０はステップＳ４２０以降の処理へと進む。
【００８５】
ステップＳ４１５では、テストツール１０は、実行に成功したＡＰＩに入力した入力データを記憶する。具体的には、例えば図１６に示した例では、実行が成功した際に、Ｆｉｅｌｄ１、２、３、４、５、６、７にそれぞれＩｎｐｕｔ１、Ａ、３、４、５、Ｂ、７を入力していた旨を記憶する。図１６は、ＡＰＩの実行でエラーが生じたときに、テスト実施者が修正データを入力して、同じＡＰＩを再実行させたときの成功例を示しているが、最初の実行でエラーが生じなかった場合にも、成功入力データを記憶しておくようにしてもよい。
【００８６】
ステップＳ４２０では、テストツール１０は、ステップＳ４１０にてエラーになった際の入力データを記憶しているか否かを判別する。ＡＰＩの実行が少なくとも１回エラーとなり、その際の入力データを記憶していれば、テストツール１０はステップＳ４２５に処理を移す。
【００８７】
ステップＳ４２５では、テストツール１０は、エラーパターンの登録を行うか否かの選択入力を受け付ける。登録する旨の選択を受け付けた場合にはステップＳ４３０の処理を行う。
【００８８】
ステップＳ４３０では、テストツール１０は、エラーパターンの登録を行う。具体的には、ステップＳ４１０にて記憶したエラーになる入力データと、ステップＳ４１５にて記憶した成功する入力データとを比較する。そして、エラーとなる入力データのうち、成功する入力データと異なる部分をエラーパターンとして図１３のエラーパターンテーブル６０に記憶する。例えば図１６に示した例では、エラー時の入力データと成功時の入力データとを比較すると、Ｆｉｅｌｄ２とＦｉｅｌｄ６の値が異なっている。そこで、Ｆｉｅｌｄ２の値がＩｎｐｕｔ２であることと、Ｆｉｅｌｄ６の値がＩｎｐｕｔ６であることとがエラーの原因であるとみなし、これらをエラーパターンとして記憶する。
【００８９】
エラーパターンテーブル６０では、ＡＰＩを識別するＩＤ、エラーパターンを識別するＩＤ、入力データ（パラメータ）ＩＤ、入力データを記憶する。なお、エラーパターンは、一つの入力データとは限らず、複数の入力データの組（図１６の例では、Ｆｉｅｌｄ２とＦｉｅｌｄ６の組）の場合もある。複数の入力データの組である場合には、エラーパターンには複数の入力データＩＤ（図１６の例ではＲ１）が紐付き、エラーパターンＩＤがそれらの関連性を表す。
【００９０】
［実行前エラーパターン確認処理］
図９は、本発明の好適な実施形態の一例に係るテスト手段の実行前エラーパターン確認処理を示すフロー図である。
【００９１】
ステップＳ５０５では、テストツール１０は、ＡＰＩを実行する前に、エラーになる可能性の確認を行うか否かの選択入力を受け付ける。確認を行う旨の選択を受け付けた場合には、ステップＳ５１０に処理を移す。
【００９２】
ステップＳ５１０では、テストツール１０は、前述のエラーパターン登録処理にて記憶したエラーパターンデータを読み取る。具体的には、エラーパターンテーブル６０から、確認するＡＰＩのＩＤに対応するパターン、入力パラメータＩＤ、及びパラメータ値を取得する。
【００９３】
ステップＳ５１５では、テストツール１０は、確認をする入力データとステップＳ５１０にて読み取ったパラメータ値とを比較し、同じであるか否かを判別する。同じである場合にはステップＳ５２０に処理を移し、異なる場合には処理を終了する。
【００９４】
ステップＳ５２０では、テストツール１０は、指定した入力データでＡＰＩを実行した場合にエラーになる可能性があることを警告する表示を行う。
【００９５】
以上の実行前エラーパターン確認処理については、図１６に例を示す。ＡＰＩ１を実行する際に、エラーとなった場合の入力データと成功した場合の入力データとを比較すると、２番目と６番目の入力データが異なっている。この差異データをエラーパターンＲ１として記憶する（２番目の入力データをＩｎｐｕｔ２、６番目の入力データをＩｎｐｕｔ６とした場合にはエラーになる）。次回実行時に実行前エラーパターン確認を行った場合、２番目と６番目の入力データが記憶したエラーパターンＲ１と等しいため、警告として、例えば該当する入力データの色を変える等の強調表示を行う。
【００９６】
ここで、２番目の入力データと６番目の入力データとの組合せがエラーとなることを表すために、その関連性を示すエラーパターンＩＤ（図１６の例ではＲ１）を併せて表示する。
【００９７】
以上のような機能を提供することにより、テストツール１０は、テストの進行に伴い、順序データや関連データやエラーパターンデータ等をテスト情報データベース１１０に蓄積していく。つまり、テストを繰り返すことにより、テスト情報データベース１１０の情報量（順序データや関連データやエラーパターンデータ等）は増加し、成長していく。
【００９８】
このことにより、テスト実施者に対して、ＡＰＩの選定や入力データの選定に関してのガイドとなる表示（候補ＡＰＩの表示、入力データの自動表示）をすることができる。したがって、テスト時間を短縮できる可能性が生じ、あるいは、テスト実施者はテストに際しての仕様等の事前学習量を軽減できる可能性もある。また、入力間違いの可能性を減らすことができるため、品質の向上にも寄与することができる。
【００９９】
［コード生成処理］
以上の各種処理により記憶されたデータに基づき、テストツール１０は、実際のアプリケーションで使用可能となるサンプルのソースコードを生成することができる。図１０は、本発明の好適な実施形態の一例に係るテスト手段のコード生成処理を示すフロー図である。
【０１００】
ステップＳ６０５では、テストツール１０は、前述の終了時登録処理にて記憶したＡＰＩの順序データを読み取る。このことにより、指定したシナリオで実行する全ＡＰＩを抽出する。
【０１０１】
ステップＳ６１０では、テストツール１０は、ＡＰＩの定義データ（図３のＡＰＩ構文解析部１３０にて読み取ったＡＰＩ定義ファイルから抽出したＡＰＩの呼び出し形式に関するデータ）を読み取る。このことにより、ステップＳ６０５にて抽出したＡＰＩの呼び出し形式（入出力データの型、記述方法等）を把握し、記述できる。
【０１０２】
ステップＳ６１５では、テストツール１０は、前述の終了時登録処理または実行時登録処理にて記憶した入出力データに関する関連データを読み取る。
【０１０３】
ステップＳ６２０では、テストツール１０は、順序データ、ＡＰＩの定義データ、及び関連データに基づき、アプリケーションのサンプルとなるソースコードを生成する。
【０１０４】
図１７にソースコードの具体例を示す。
【０１０５】
１番目のＡＰＩ（ｇｅｔＩｎｆｏｒｍａｔｉｏｎ）は１５個の入力データを必要とし、２番目のＡＰＩ（ｃｒｅａｔｅ）は６個の入力データを必要としている。
【０１０６】
１番目のＡＰＩ（ｇｅｔＩｎｆｏｒｍａｔｉｏｎ）の１番目の出力データ、３番目の入力データ、２０番目の出力データがそれぞれ、２番目のＡＰＩ（ｃｒｅａｔｅ）の１番目の入力データ、３番目の入力データ、５番目の入力データとなっている。
【０１０７】
そこで、ソースコードでは、１５個の入力データを指定してｇｅｔＩｎｆｏｒｍａｔｉｏｎを実行する記述の後、６個の入力データを指定してｃｒｅａｔｅを実行する記述とする。
【０１０８】
ここで、ｃｒｅａｔｅの１番目の入力データにはｇｅｔＩｎｆｏｒｍａｔｉｏｎの実行結果であるｏｕｔｐｕｔ１の１番目の出力データを指定している。また、３番目の入力データにはｇｅｔＩｎｆｏｒｍａｔｉｏｎの３番目の入力データと同じ指定としている。同様にして、５番目の入力データにはｏｕｔｐｕｔ１の２０番目の出力データを指定している。
【０１０９】
このようにしてサンプルのソースコードを生成することにより、アプリケーション開発におけるコーディングの効率化と共に、記述間違いの可能性を減少させることでアプリケーションの品質を向上させる可能性がある。
【０１１０】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施例に記載されたものに限定されるものではない。
【図面の簡単な説明】
【０１１１】
【図１】本発明に係る好適な実施形態の一例を示す全体概念図である。
【図２】本発明の好適な実施形態の一例に係るコンピュータの構成を示すブロック図である。
【図３】本発明の好適な実施形態の一例に係る、テストツールが備えるテスト手段の実装構成を示すブロック図である。
【図４】本発明の好適な実施形態の一例に係るテスト手段のメイン処理を示すフロー図である。
【図５】本発明の好適な実施形態の一例に係るテスト手段のメイン処理を示すフロー図である。
【図６】本発明の好適な実施形態の一例に係るテスト手段の終了時登録処理を示すフロー図である。
【図７】本発明の好適な実施形態の一例に係るテスト手段の実行時登録処理を示すフロー図である。
【図８】本発明の好適な実施形態の一例に係るテスト手段のエラーパターン登録処理を示すフロー図である。
【図９】本発明の好適な実施形態の一例に係るテスト手段の実行前エラーパターン確認処理を示すフロー図である。
【図１０】本発明の好適な実施形態の一例に係るテスト手段のコード生成処理を示すフロー図である。
【図１１】本発明の好適な実施形態の一例に係るＡＰＩ登録テーブルを示す図である。
【図１２】本発明の好適な実施形態の一例に係るパラメータ関連テーブルを示す図である。
【図１３】本発明の好適な実施形態の一例に係るエラーパターンテーブルを示す図である。
【図１４】本発明の好適な実施形態の一例に係るテスト手段のメイン処理の概要を示す図である。
【図１５】本発明の好適な実施形態の一例に係るテスト手段の実行時登録処理の画面例を示す図である。
【図１６】本発明の好適な実施形態の一例に係るテスト手段のエラーパターン登録処理及び実行前エラーパターン確認処理の概要を示す図である。
【図１７】本発明の好適な実施形態の一例に係るテスト手段のコード生成例を示す図である。
【符号の説明】
【０１１２】
１０  テストツール
１１  制御部
１２  記憶部
１３  入力部
１４  表示部
１５  通信制御部
１６  バス
２０  被検証ソフトウェア
３０  コンピュータ
４０  ＡＰＩ登録テーブル
５０  パラメータ関連テーブル
６０  エラーパターンテーブル
１１０  テスト情報データベース
１２０  ＡＰＩテスト制御部
１３０  ＡＰＩ構文解析部
１３５  テストケース管理部
１４０  ＡＰＩ実行部
１５０  ＡＰＩ順序登録部
１５５  関連性登録部
１６０  エラーパターン登録部
１７０  コード生成部
１８０  ユーザインタフェース部
【図１】
2007241697.tif 000003
【図２】
2007241697.tif 000004
【図３】
2007241697.tif 000005
【図４】
2007241697.tif 000006
【図５】
2007241697.tif 000007
【図６】
2007241697.tif 000008
【図７】
2007241697.tif 000009
【図８】
2007241697.tif 000010
【図９】
2007241697.tif 000011
【図１０】
2007241697.tif 000012
【図１１】
2007241697.tif 000013
【図１２】
2007241697.tif 000014
【図１３】
2007241697.tif 000015
【図１４】
2007241697.tif 000016
【図１５】
2007241697.tif 000017
【図１６】
2007241697.tif 000018
【図１７】
2007241697.tif 000019