JP2005070835A - テスト支援プログラムおよびテスト支援方法 - Google Patents
テスト支援プログラムおよびテスト支援方法 Download PDFInfo
- Publication number
- JP2005070835A JP2005070835A JP2003208522A JP2003208522A JP2005070835A JP 2005070835 A JP2005070835 A JP 2005070835A JP 2003208522 A JP2003208522 A JP 2003208522A JP 2003208522 A JP2003208522 A JP 2003208522A JP 2005070835 A JP2005070835 A JP 2005070835A
- Authority
- JP
- Japan
- Prior art keywords
- message
- test
- slip
- rule
- template
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
【課題】不特定多数の他のサーバと連携して動作する機能の信頼性の高い動作確認を、効率的に行うことができる。
【解決手段】送信メッセージ4と受信メッセージ5との組をメッセージ履歴1aとして保存する(ステップS3)。コンピュータは、動作確認の対象である開発対象プログラム3に基づく処理機能からテスト用送信メッセージ6が出力される(ステップS4)と、予め設定された選択ルール1bに従って、テスト用送信メッセージ6に応じたメッセージ履歴1aを雛形メッセージ7として選択する(ステップS5)。コンピュータは、選択された雛形メッセージ7の受信メッセージを、予め設定された編集ルール1cに従って編集してテスト用受信メッセージ8を生成する(ステップS6)。そして、コンピュータは、生成されたテスト用受信メッセージ8を、テスト用送信メッセージ6に対する応答として送信する(ステップS7)。
【選択図】 図1
【解決手段】送信メッセージ4と受信メッセージ5との組をメッセージ履歴1aとして保存する(ステップS3)。コンピュータは、動作確認の対象である開発対象プログラム3に基づく処理機能からテスト用送信メッセージ6が出力される(ステップS4)と、予め設定された選択ルール1bに従って、テスト用送信メッセージ6に応じたメッセージ履歴1aを雛形メッセージ7として選択する(ステップS5)。コンピュータは、選択された雛形メッセージ7の受信メッセージを、予め設定された編集ルール1cに従って編集してテスト用受信メッセージ8を生成する(ステップS6)。そして、コンピュータは、生成されたテスト用受信メッセージ8を、テスト用送信メッセージ6に対する応答として送信する(ステップS7)。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明はプログラムの動作を確認するためのテスト支援プログラム、およびテスト支援方法に関し、特にスタブを利用して動作確認を行うテスト支援プログラム、およびテスト支援方法に関する。
【0002】
【従来の技術】
ソフトウェアを開発する場合、運用開始前に必ず動作確認が行われる。しかも、開発効率を向上させるためには、ソフトウェア開発途中の段階でも、適宜動作確認を行うことが望まれる。その場合、未完成の機能に対応するスタブを用意する。スタブとは、あるプログラムが他のプログラムを呼び出す際に仲介となるプログラムである。動作確認に使用されるスタブは、予め定義された設計内容に従い、動作確認対象プログラムに基づく呼び出しに応じて、未完成の機能に代わって所定の応答を返す。これにより、一部の機能が未完成のままでも、それ以外の機能の動作確認が可能となる。
【0003】
このようなスタブを利用することで、動作確認の自動化が容易となる。たとえば、複数のスタブからなるスタブ群を用意しておき、テスト対象ソフトウェアの実行中に他のモジュールに対する呼び出しが生じた場合、予め定義された条件に基づいて、予め用意されたスタブ群から適切な実スタブを選択して実行することもできる(たとえば、特許文献1参照)。
【0004】
【特許文献1】
特開2000−132425号公報
【0005】
【発明が解決しようとする課題】
ところで、現在、インターネットを介した電子商取引が一般的に行われている。インターネットを介した商取引を行う企業は、インターネットに接続したウェブサーバ等によって、商品の注文や見積もりの返信等を行う。
【0006】
しかし、電子商取引を行うためのシステム開発では、連携して動作する相手が社外のシステムであるため、信頼性の高い動作テストが困難である。たとえば、企業間電子商取引の場合、社外システムと自社内システムをネットワークで接続し、伝票を交換する。そのため、電子商取引のためのシステム構築の際には、自社内システムをテストするときでも、相手会社との接続のテストが必要になる。
このとき、自社内システムを改変した場合のリグレッションテストなどのたびに、大量のテストデータを相手会社のサーバに送信すると、相手先の迷惑になる。
なお、リグレッションテストとは、プログラムを変更した場合に、その変更によって予想外の影響が現れていないかどうかの動作確認作業である。
【0007】
また、相手会社のサーバにメッセージを送信して動作確認を行う場合、自分のテストしたい伝票を先方が返してくるとは限らない。そのため、実際に発生する可能性のある様々な状況に合わせたテストができず、電子商取引システムの信頼性の高いテストが困難であると共に、非効率でもあった。たとえば、取引相手のサーバがメンテナンス中のときの動作を確認する場合、取引相手のサーバが実際にメンテナンス中でなければならない。従って、取引相手のサーバがメンテナンスに入るまで、動作確認ができなくなってしまう。
【0008】
なお、相手会社のサーバの機能をシミュレートするスタブを利用して、リグレッションテストを行うことも考えられる。ところが、相手会社のサーバの処理内容は相手会社で決められているため、自社電子商取引用プログラムの開発段階で応答内容を特定しておくことはできない。そこで、従来のスタブでは、以下の何れかの方法を採ることができる。
・なんらかの規則を与えて(連番、ランダムなど)、受信伝票のデータを自動生成し、返信する。
・過去に取引相手から送られた伝票をそのまま保持し、テスト作業時の受信伝票として返信する。
・入力伝票のデータから適当に受信伝票のデータを自動生成し、返信する。
【0009】
しかし、いずれの方法でも、送信伝票に対して適切かつテストに有効な伝票を作成し、配信するという目的に対して、非実用的である。すなわち、スタブは、予め決定されている設計内容に従った応答(あるいは意図的に誤った応答)を返す必要があるが、電子商取引では取引相手の応答の内容として、多種多様な応答が存在する。そのため、不特定多数の取引相手サーバそれぞれの応答内容を、開発担当者が解析し、スタブの応答として定義するのは手間が掛かり過ぎ、非現実的である。
【0010】
本発明はこのような点に鑑みてなされたものであり、不特定多数の他のサーバと連携して動作する機能の信頼性の高い動作確認を、効率的に行うことができるテスト支援プログラム、およびテスト支援方法を提供することを目的とする。
【0011】
【課題を解決するための手段】
本発明では上記課題を解決するために、図1に示すようなプログラムの動作を確認するためのテスト支援プログラム1が提供される。このテスト支援プログラム1に従って、コンピュータは以下の処理を実行する。
【0012】
コンピュータは、ネットワークを介して接続された取引相手サーバ9に対して送信メッセージ4が送信され(ステップS1)、取引相手サーバ9から受信メッセージ5が応答される(ステップS2)と、送信メッセージ4と受信メッセージ5との組をメッセージ履歴1aとして保存する(ステップS3)。コンピュータは、動作確認の対象である開発対象プログラム3に基づく処理機能からテスト用送信メッセージ6が出力される(ステップS4)と、予め設定された選択ルール1bに従って、テスト用送信メッセージ6に応じたメッセージ履歴を雛形メッセージ7として選択する(ステップS5)。コンピュータは、選択された雛形メッセージ7の受信メッセージを、予め設定された編集ルール1cに従って編集してテスト用受信メッセージ8を生成する(ステップS6)。そして、コンピュータは、生成されたテスト用受信メッセージ8を、テスト用受信メッセージ8に対する応答として送信する(ステップS7)。
【0013】
このようなテスト支援プログラム1をコンピュータで実行することで、テスト用送信メッセージ6に基づいて、メッセージ履歴1aの中から選択ルール1bに応じて雛形メッセージ7が選択される。その雛形メッセージ7に対して編集ルール1cが適用されテスト用受信メッセージ8が生成され、応答される。
【0014】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
【0015】
図1は、実施の形態に適用される発明の概念図である。テスト支援プログラム1は、コンピュータに対して図1に示すような処理を実行させることができる。
すなわち、既存プログラム2に基づく処理機能(プロセス、タスク、スレッド等)が、ネットワークを介して接続された取引相手サーバ9に対して送信メッセージ4を送信する(ステップS1)。すると、取引相手サーバ9から既存プログラム2に基づく処理機能に対して受信メッセージ5が応答される(ステップS2)。このとき、テスト支援プログラム1を実行するコンピュータが、送信メッセージ4と受信メッセージ5との組をメッセージ履歴1aとして保存する(ステップS3)。
【0016】
その後、動作確認の対象である開発対象プログラム3に基づく処理機能からテスト用送信メッセージ6が出力される(ステップS4)と、テスト支援プログラム1を実行するコンピュータは、そのテスト用送信メッセージ6を受け取る。そして、コンピュータは、予め設定された選択ルール1bに従って、テスト用送信メッセージ6に応じたメッセージ履歴を雛形メッセージ7として選択する(ステップS5)。次に、コンピュータは、選択された雛形メッセージ7の受信メッセージを、予め設定された編集ルール1cに従って編集(データの加工等)してテスト用受信メッセージ8を生成する(ステップS6)。そして、コンピュータは、生成されたテスト用受信メッセージ8を、テスト用受信メッセージ8に対する応答として送信する(ステップS7)。
【0017】
送信されたテスト用受信メッセージ8は、開発対象プログラム3に基づく処理機能で取得され、開発対象プログラム3で記述された通りに処理される。テスト用受信メッセージ8が予定通りに処理されれば、開発対象プログラム3に不具合が無いことが分かる。テスト用受信メッセージ8が予定通りに処理されないか、あるいは想定していなかった問題が生じた場合、開発対象プログラム3の修正が必要であることが分かる。
【0018】
このように、過去のメッセージ履歴から適当なメッセージを雛形とし、所定の編集を加えることで、実情に即したテスト用受信メッセージ8を容易に作成できる。たとえば、過去のメッセージ履歴を編集せずにテスト用受信メッセージ8とすると日付情報の不整合によってエラーが出てしまう場合であっても、現在の日付に基づいて日付情報を変更することで、正常系のテスト用受信メッセージ8が作成できる。
【0019】
ところで、最近の電子商取引では、XML(eXtensible Markup Language)で作成されたメッセージを交換することがある。XMLは、構造化文書の1つであり、タグによって各要素が構造化されている。XMLは、独自にタグを定義でき、単なる文書をデータとして処理することを可能にするものである。しかも、スキーマを使うことで<価格>タグに書かれた数字を、「価格を表わす数値データ」として利用することができる。そのため、XMLは、電子商取引における伝票等のメッセージの交換に有用である。
【0020】
そこで、XMLによって構造化された文書によって電子商取引の処理を行うサーバに対して、本発明を適用した場合を例に採り、本発明の実施の形態を具体的に説明する。なお、電子商取引においては、送信メッセージを送信伝票と呼び、受信メッセージを受信伝票と呼び、メッセージ履歴を伝票履歴と呼ぶこととする。
【0021】
図2は、本発明の実施の形態のシステム構成例を示す図である。図2に示すように、電子商取引を行うために設置されたサーバ100が、インターネット10を介して取引相手サーバ210,220に接続されている。サーバ100は、電子商取引を行うためのアプリケーションプログラムが実装されたコンピュータである。取引相手サーバ210,220も同様に、取引相手企業における電子商取引用のコンピュータである。
【0022】
図3は、本発明の実施の形態に用いるサーバのハードウェア構成例を示す図である。サーバ100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、および通信インタフェース106が接続されている。
【0023】
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムが格納される。
【0024】
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス107を介してCPU101に送信する。
【0025】
通信インタフェース106は、インターネット10に接続されている。通信インタフェース106は、インターネット10を介して、他のサーバとの間でデータの送受信を行う。
【0026】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図3には、サーバ100のハードウェア構成例を示したが、取引相手サーバ210,220も同様のハードウェアで実現できる。
【0027】
このようなハードウェア構成のサーバ100に、テスト支援プログラムを実行させることで、サーバ100は、以下の3つの手順で「送信伝票に対して、適切かつテストに有効な」データを生成することができる。
【0028】
1.本物の取引伝票をある程度収集し、(送信伝票、受信伝票)伝票ペアを格納する。
2.ユーザが設定したXMLタグの選択ルールにより、テスト用送信伝票と上記送信伝票を比較し、マッチしたものの受信伝票部分を、受信伝票の雛形伝票とする。
【0029】
3.受信伝票雛形伝票または、送信伝票にXMLタグの編集ルールに基づく編集(流用や内容変更後の置換)を施し、テスト用受信伝票として返信する。この結果、以下の効果が得られる。
・少ない実伝票の情報から、実運用に近いデータを返すスタブが実現できる。
・置換ルールを変えることで、エラー用データを返すようなスタブを作成できる。これは、現実の取引相手サーバと接続しても得られないテストケースである。
【0030】
このような処理を実行するためにサーバ100内に構築される処理機能を、以下に詳細に説明する。
図4は、サーバの機能を示すブロック図である。サーバ100は、電子商取引部110、伝票収集部120、およびスタブ130を有している。
【0031】
電子商取引部110は、電子商取引を行うための処理機能であり、ソフトウェアによって実現される。電子商取引部110は、取引相手サーバ210,220との間で電子商取引を行う。たとえば、サーバ100のユーザが電子商取引により品物を調達する場合、電子商取引部110が取引相手サーバ210,220にアクセスし見積を取得する。また、ユーザからの操作入力等に応答して、取引相手サーバ210,220に対して、品物を発注する。電子商取引部110の処理内容を記述したプログラムの少なくとも一部を変更した場合、スタブ130を利用した動作確認が行われる。
【0032】
伝票収集部120は、電子商取引部110と取引相手サーバ210,220との間で受け渡された伝票を取得する。伝票収集部120は、取得した伝票を伝票データベース(DB)131に格納する。具体的には、伝票収集部120は、電子商取引部110から取引相手サーバ210,220へ送信した伝票(送信伝票)と、取引相手サーバ210,220から電子商取引部110に対して送信した伝票(受信伝票)との組を、伝票DB131に格納する。
【0033】
スタブ130は、電子商取引部110のプログラムの変更に伴い動作確認を行う際に、取引相手サーバ210,220が行う伝票の入出力処理をシミュレートする。具体的には、スタブ130は、テスト用送信伝票に応答して、動作確認に必要なテスト用受信伝票を返す。その機能を実現するために、スタブ130は、伝票DB131、選択ルールDB132、編集ルールDB133、雛形選択部134、および雛形編集部135を有している。
【0034】
伝票DB131には、電子商取引部110と取引相手サーバ210,220との間で送受信された伝票が、送信伝票と受信伝票とを組にして格納されている。選択ルールDB132には、電子商取引部110の動作確認の際に、伝票DB131から雛形として採用する伝票を選択するための1以上の選択ルールが予め設定されている。
【0035】
編集ルールDB133には、雛形として採用された伝票に基づいてテスト用受信伝票を生成するための1以上の編集ルールが予め設定されている。
雛形選択部134は、電子商取引部110からテスト用の送信伝票を受け取り、選択ルールDB132に設定されている選択ルールに従って、伝票DB131から雛形として利用する伝票を選択する。雛形選択部134は、選択した伝票を雛形編集部135に渡す。
【0036】
雛形編集部135は、雛形選択部134から雛形として使用する伝票を受け取ると、編集ルールDB133に設定されている編集ルールに従って受け取った伝票を編集する。たとえば、雛形編集部135は、雛形として選択された受信伝票に、テスト用送信伝票の一部の内容(伝票番号や日付など)を組み込む。そして、雛形編集部135は、編集した伝票を、テスト用受信伝票として動作確認対象の電子商取引部110に渡す。
【0037】
図5は、伝票DBのデータ構造例を示す図である。伝票DB131には、複数の伝票履歴21,22,23,・・・が格納されている。各伝票履歴21,22,23,・・・は、送信伝票と受信伝票とで構成される。
【0038】
たとえば、伝票履歴21は、取引相手サーバから商品の見積もりを取得したときの伝票である。送信伝票21aは、見積もり依頼の伝票である。受信伝票21bは、見積もり回答の伝票である。
【0039】
図6は、選択ルールDBのデータ構造例を示す図である。選択ルールDB132には、テスト用の送信伝票を受け取ったときに、雛形として使用する伝票履歴を選択するためのルールを定義した複数の選択ルール31,32,33,・・・が登録されている。
【0040】
たとえば、選択ルール31では、「<会社名>が一致 かつ <商品番号>一致」というルールが定義されている。どの選択ルールを適用するのかは、動作確認を行う際にユーザによって指定される。
【0041】
図7は、編集ルールDBのデータ構造例を示す図である。編集ルールDB133には、選択された伝票履歴のうち受信伝票に対して施す編集のルールが定義された編集ルール41,42,・・・が格納されている。編集の内容は、項目の内容の置換や、新たな項目の値化などである。
【0042】
たとえば、編集ルール41には、「<日付>に10日をプラス <伝票番号>を置換」というルールが設定されている。この編集ルール41は、正しい応答を返すためのルールである。また、編集ルール42には、「<日付>に10日をマイナス <伝票番号>を置換」というルールが設定されている。この編集ルール42は、日付の不整合によるエラーを含む応答を返すためのルールである。なお、編集ルール41,42における「<伝票番号>を置換」というルールは、雛形として選択された伝票の伝票番号を、他のユニークな伝票番号に置き換えることを示している。
【0043】
以上のような構成のサーバ100において、以下のような処理が行われる。
図8は、サーバによる電子商取引の動作確認処理を示す図である。電子商取引部110は、自社内の電子商取引環境として複数のアクティビティ(業務)111,112が定義されている。この例では、電子商取引部110の運用中に、アクティビティ112は取引相手サーバ210との間で伝票の送受信を行う。
【0044】
具体的には、アクティビティ112から取引相手サーバ210に対して送信伝票21aが送られる(ステップS11)。すると、取引相手サーバ210から電子商取引部110に対して受信伝票21bが返される(ステップS12)。このとき、伝票収集部120によって、送信伝票21aと受信伝票21bとが互いに関連付けられ、伝票履歴21として伝票DB131に格納される(ステップS13)。
【0045】
以後、アクティビティ112が取引相手サーバ210,220との間で伝票の送受信を行うごとに伝票履歴22,23,・・・が伝票DB131に格納される。その結果、伝票DB131には、運用中の電子商取引部110が送受信した多数の伝票が伝票DB131に蓄積される。なお、同種の伝票は、重複して格納しないようにしてもよい。このとき、同種の伝票が収集されたら、古い伝票を廃棄し、新しい伝票を格納することもできる。
【0046】
その後、電子商取引部110の動作内容を記述するプログラムが変更される(ステップS14)。変更されたプログラムに基づいて、アクティビティ111a,112aを有する電子商取引部110aが生成される。すると、変更後の電子商取引部110aの動作確認が必要となる。その場合、まず、ユーザの操作入力等により、選択ルールDB132内の適用すべき選択ルールが決定されると共に、編集ルールDB133内の適用すべき編集ルールが決定される。
【0047】
次に、電子商取引部110aを動作させ、アクティビティ112aからテスト用送信伝票51を出力させる(ステップS15)。このとき、テスト用送信伝票51は、取引相手サーバ210,220ではなく、スタブ130内の雛形選択部134に渡される。
【0048】
雛形選択部134は、予め指定された選択ルールと伝票DB131内の伝票履歴とを照合し、選択ルールに適合する伝票履歴を選択する(ステップS16)。そして、選択された伝票履歴が雛形伝票52として雛形編集部135に渡される。
【0049】
雛形編集部135は、雛形伝票52を受け取ると、予め指定されている編集ルールに基づいて、雛形伝票52を加工し、テスト用受信伝票53を生成する。具体的には、雛形編集部135は、雛形伝票52内の受信伝票を取り出す。次に、雛形編集部135は、編集ルールDB133から予め指定された1以上の編集ルールを取り出す。たとえば、正常な応答を返すための編集ルール、あるいはエラーとなる内容を含む応答を返すための編集ルールが取得される。雛形編集部135は、取得した編集ルールに従って、雛形伝票52内の受信伝票を加工し、テスト用受信伝票53を生成する。生成されたテスト用受信伝票53は、応答メッセージとして電子商取引部110aに渡される。
【0050】
電子商取引部110aのアクティビティ112aは、テスト用受信伝票53を受け取り、所定の処理を実行する。その実行結果が、予め想定していた通りか否かにより、電子商取引部110aの動作の適否を判断することができる。具体的には、テスト用受信伝票53が正常な応答内容であれば正常時の処理が行われ、エラーとなる内容を含む場合にはエラー処理が行われることを確認する。たとえば、テスト用受信伝票53がエラーとなる内容を含むにも拘わらず正常時の処理が行われてしまった場合、変更後の電子商取引部110aの処理を記述したプログラムに何らかの間違いがあると考えられる。
【0051】
次に、スタブが実行する処理の内容を詳細に説明する。
図9は、スタブが実行する処理の詳細を示すフローチャートである。以下、図9に示す処理をステップ番号に沿って説明する。なお、この例では、雛形伝票を選択するためのルールとして選択ルール31が指定され、テスト用受信伝票を作成するためのルールとして編集ルール41が指定されているものとする。
【0052】
[ステップS21]雛形選択部134は、電子商取引部110aからのテスト用送信伝票51を受信する。
[ステップS22]雛形選択部134は、選択ルールDB132から適用すべき選択ルール31を取り出す。そして、雛形選択部134は、選択ルール31に基づいてテスト用送信伝票51を分解し、キーを取り出す。具体的には、雛形選択部134は、選択ルール31で指定されているタグ(項目名)に合致するタグを、XMLで作成されているテスト用送信伝票51から検出し、そのタグ(キー)とその内容を取り出す。
【0053】
[ステップS23]雛形選択部134は、伝票DB131内の各伝票履歴から、テスト用送信伝票51におけるキーとその内容が一致している送信伝票を検索する。そして、雛形選択部134は、選択ルール31に基づいて検出された送信伝票52aを含む伝票履歴を雛形伝票52として雛形編集部135に渡す。
【0054】
[ステップS24]雛形編集部135は、送信伝票52aと受信伝票52bとで構成される雛形伝票52から受信伝票52bを抽出する。
[ステップS25]雛形編集部135は、予め指定されている編集ルール41を編集ルールDB133から取得する。
【0055】
[ステップS26]雛形編集部135は、編集ルール41によって編集対象となっているタグを、受信伝票52bから検索する。
[ステップS27]雛形編集部135は、編集ルール41に従って、受信伝票52bの編集対象のタグを編集する。
【0056】
[ステップS28]雛形編集部135は、受信伝票52bの全ての検索が行われたか否かを判断する。全ての検索が行われた場合、処理がステップS29に進められる。未検索の要素がある場合、処理がステップS26に進められ検索処理が行われる。
【0057】
[ステップS29]雛形編集部135は、ステップS25〜S28の処理により生成されたテスト用受信伝票53を、応答メッセージとして送信する。
このようにして、テスト用送信伝票51に対するテスト用受信伝票53をスタブ130によって自動生成し、電子商取引部110aに応答することができる。
【0058】
図10は、スタブによる応答例を示す図である。たとえば、選択ルール31では、<会社名>と<商品番号>とが一致していることを、雛形伝票を選択するためのルールとして規定している。そこで、<会社名>が「相手先A」、<商品番号>が「F9876」であるテスト用送信伝票51が電子商取引部110aから出力されると、送信伝票52aの<会社名>と<商品番号>とが一致する伝票履歴が、雛形伝票52として選択される。すると、雛形伝票52の受信伝票52bに対して編集ルール41,42が適用される。
【0059】
編集ルール41には、<日付>に10日をプラス、<伝票番号>を置換というルールが定義されている。そこで、雛形伝票52の受信伝票52bにおける<日付>のタグの内容を、テスト用送信伝票51の<日付>に10日を加算した日付「20030919」に置き換える。また、雛形伝票52の受信伝票52bにおける<伝票番号>のタグの内容を、過去の伝票で使用されていないユニークな番号「ID−00100301」に置き換える。このような置き換え処理によりテスト用受信伝票53aが生成される。
【0060】
また、編集ルール42には、<日付>に10日をマイナス、<伝票番号>を置換というルールが定義されている。そこで、雛形伝票52の受信伝票52bにおける<日付>のタグの内容を、テスト用送信伝票51の<日付>に10日を減算した日付「20030830」に置き換える。また、雛形伝票52の受信伝票52bにおける<伝票番号>のタグの内容を、過去の伝票で使用されていないユニークな番号「ID−00100302」に置き換える。このような置き換え処理によりテスト用受信伝票53bが生成される。
【0061】
テスト用受信伝票53bは、日付が過去に遡っている。従って、電子商取引部110aでは、誤ったデータとしてエラー処理を行う必要がある。予め想定されている通りにエラー処理が行われていれば、動作が正常であると判断できる。
【0062】
編集ルールとしては、図11〜図14に示すようなルールが考えられる。
図11は、流用の編集ルールを示す図である。この編集ルールでは、テスト用送信伝票61の一部を内容を変えずに流用して、テスト用受信伝票62の値とする。たとえば、図11の例では、<日付>と<伝票番号>との値が流用されている。このように、電子商取引では、送信メッセージの値をそのまま流用しなければならない値が多数存在する。たとえば、以下のような要件があげられる。
・送信時と同じ商品番号を返さないと、別商品と扱われてしまう。
・送信時と同じ伝票番号を返さないと、別伝票と扱われてしまう。
【0063】
流用の編集ルールは、これらの要件を満たすテスト用受信伝票の生成に有用である。
図12は、置換の編集ルールを示す図である。この編集ルールでは、テスト用送信伝票63の一部を置換して、テスト用受信伝票64の値とする。図12の例では、<希望納期>のタグの名称を<納期>に変更すると共に、日付に10を加算している。また、<個数>のタグの内容を20だけ減算している。
【0064】
これは、実情に合わせたテストを行うのに有用である。すなわち、図11に示したような流用では、単に送信時の値を流用するだけで電子商取引の実運用に近いテストを行うことができない場合がある。そこで、以下の要件のように、テスト送信伝票の値を置換・編集することで、より実運用に近いデータをテストすることができる。
・希望納期の期日に納品できないため、納期をずらす。
・希望した商品の個数分、納品できないため、個数を減らす。
・希望した商品の個数分以上購入するなら、単価を下げる。
・税金やサービス料金など、金額を加算する。
【0065】
置換の編集ルールでは、これらの要件を満たすテスト用受信伝票の生成に有用である。
図13は、雛形伝票からの流用を定義した編集ルールを示す図である。雛形伝票からの流用では、選択ルールに合致した雛形伝票に含まれる受信伝票65の値を置換せずに、テスト用受信伝票66の値とする。このような編集ルールは、以下のような要件に対して有用である。
・過去にテスト実績のある値でのテストが必要である(機能のレベルダウン防止)。
・過去の伝票番号を返すことで、意図的に冗送(二重送信)のエラーを発生させる必要がある。
【0066】
図14は、雛形伝票からの置換設定を定義した編集ルールを示す図である。雛形伝票からの置換設定では、選択ルールに合致した雛形伝票に含まれる受信伝票67の値を置換して、テスト用受信伝票68の値とする。図14の例では、<日付>の内容を現在の日付に変換している。また、<伝票番号>のタグの内容を、ユニークな番号に変更している。
【0067】
このような編集ルールは、以下のような要件に対して有用である。
・日付は、現在の日付でないと動作確認ができない。
・過去の伝票番号のままでは、冗送(二重送信)となり、正常系の動作確認ができない。
【0068】
なお、図11〜図14に示したケースは、主として正常系のテストを確認するものである。電子商取引では、取引先のシステムの実装状況や運用形態(システムが介在せず、人手によりデータを作成)によって、以下のような不当なXML文書がやりとりされるケースがある。
・XML文書が空である。
・XML文書ではない(単なるテキストファイル、XML宣言がないなど)。
・XML文書のルート要素が存在しない。
・XML文書がDTDにあわない(必須項目が存在しない、順序が異なる)。
【0069】
このような場合、XML文書を変換するルール(XSLT(eXtensible Style Language Transformations)によるXML文書間の変換)を工夫することで、上記のような要件に対応することができる。
【0070】
なお、図11〜図14に示したルールは、それぞれ組み合わせて使用することができる。
また、もとの内容を置換して設定する場合、置換方法には以下のようなパターンがある。
【0071】
図15は、置換時のデータ加工パターン例を示す図である。図15の例では、加工パターンが「値の加工」と「XML文書の加工」とに分類されている。値の加工は、加工される値の種別として「日付」、「時刻」、「数値」、「日付、時刻、数値を含む文字列」がある。
【0072】
「日付」の加工には、「現在日の設定」、「日付の加算」、「日付の減算」、「日付のフォーマット変更」がある。「現在日の設定」は、元の日付を現在の日付に置き換える処理である。「日付の加算」は、元の日付に任意の日数を加算する処理である。「日付の減算」は、元の日付から任意の日数を減算する処理である。「日付のフォーマット変更」は、日付の表記方法を変更する処理である。たとえば「20030830」を「03/08/30」に変換する。
【0073】
「時刻」の加工には、「現在時刻の設定」、「時刻の加算」、「時刻の減算」、「時刻のフォーマット変更」がある。「現在時刻の設定」は、元の時刻を現在の時刻に置き換える処理である。「時刻の加算」は、元の時刻に任意の時間を加算する処理である。「日付の減算」は、元の時刻から任意の時間を減算する処理である。「時刻のフォーマット変更」は、時刻の表記方法を変更する処理である。たとえば「13:30」を「13h45m」に変換する。
【0074】
「数値」の加工には、「数値の加算」、「数値の減算」、「数値のフォーマット変更(カンマ編集、小数点桁数など)」、「四則演算」、「ランダムな数値の設定」がある。「数値の加算」は、元の数値に任意の数値を加算する処理である。「数値の減算」は、元の数値から任意の数値を減算する処理である。「数値のフォーマット変更(カンマ編集、小数点桁数など)」は、数値の表示形式を変換する処理である。「四則演算」は、元の数値に対して、加減乗除の演算を施す処理である。「ランダムな数値の設定」は、元の数値に変えて、ランダムに生成した値を設定する処理である。
【0075】
「日付、時刻、数値を含む文字列」の加工には、上記の処理以外に「固有値の設定」、「文字列の切り取り」、「文字列の結合」がある。「固有値の設定」は、予め指定された値を設定する処理である。「文字列の切り取り」は、元の文字から任意の位置の文字を削除する処理である。「文字列の結合」は、元の文字に任意の文字を結合する処理である。
【0076】
「XML文書の加工」は、XML文書の「タグ」を加工する処理であり、「削除」、「追加」、「前後の入れ換え」がある。「削除」は、任意のタグを削除する処理である。「追加」は、任意のタグを追加する処理である。「前後の入れ換え」は、タグの配列の前後を入れ換える処理である。
【0077】
上記の説明では、インターネットを介した電子商取引に本発明を適用しているが、インターネット以外のネットワーク(電話網を含む)を介した電子商取引にも利用できる。
【0078】
また、タグを用いて構造が定義されているというXMLの利点を利用した発明の実施の形態を説明したが、SGML(Standard Generalized Markup Language)やXHTML(eXtensible Hyper Text Markup Language)等の他の構造化文書に適用することもできる。
【0079】
なお、上記の処理機能は、様々なコンピュータによって実現することができる。その場合、サーバが有すべき機能の処理内容を記述したテスト支援プログラムが提供される。そのテスト支援プログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したテスト支援プログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto−Optical disc)などがある。
【0080】
テスト支援プログラムを流通させる場合には、たとえば、そのテスト支援プログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、テスト支援プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのテスト支援プログラムを転送することもできる。
【0081】
テスト支援プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたテスト支援プログラムもしくはサーバコンピュータから転送されたテスト支援プログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からテスト支援プログラムを読み取り、テスト支援プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接テスト支援プログラムを読み取り、そのテスト支援プログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからテスト支援プログラムが転送される毎に、逐次、受け取ったテスト支援プログラムに従った処理を実行することもできる。
【0082】
(付記1) プログラムの動作を確認するためのテスト支援プログラムにおいて、
コンピュータに、
ネットワークを介して接続された取引相手サーバに対して送信メッセージが送信され、前記取引相手サーバから受信メッセージが応答されると、前記送信メッセージと前記受信メッセージとの組をメッセージ履歴として保存し、
動作確認の対象である開発対象プログラムに基づく処理機能からテスト用送信メッセージが出力されると、予め設定された選択ルールに従って、前記テスト用送信メッセージに応じた前記メッセージ履歴を雛形メッセージとして選択し、
選択された前記雛形メッセージの受信メッセージを、予め設定された編集ルールに従って編集してテスト用受信メッセージを生成し、
生成された前記テスト用受信メッセージを、前記テスト用送信メッセージに対する応答として送信する、ことを特徴とするテスト支援プログラム。
【0083】
(付記2) 前記メッセージ履歴を、タグによってデータ構造が定義された構造化文書の形式で保存することを特徴とする付記1記載のテスト支援プログラム。
【0084】
(付記3) 前記選択ルールでは、前記テスト用送信メッセージとの間で所定のタグの内容が一致する前記送信メッセージを有するメッセージ履歴が、選択対象として指定されていることを特徴とする付記2記載のテスト支援プログラム。
【0085】
(付記4) 前記編集ルールでは、前記開発対象プログラムが正常に処理可能な応答メッセージを返すためのルールと、前記開発対象プログラムでエラーを発生させる応答メッセージを返すためのルールとが設定されていることを特徴とする付記1記載のテスト支援プログラム。
【0086】
(付記5) 前記編集ルールでは、前記テスト用送信メッセージの受信メッセージの一部の項目について、前記テスト用送信メッセージの内容を流用することが示されていることを特徴とする付記1記載のテスト支援プログラム。
【0087】
(付記6) 前記編集ルールでは、前記テスト用送信メッセージの受信メッセージの一部の項目について、前記テスト用送信メッセージの内容を基準とした別の内容に置き換えることが示されていることを特徴とする付記1記載のテスト支援プログラム。
【0088】
(付記7) 前記編集ルールでは、前記雛形メッセージの受信メッセージの一部の項目について、前記テスト用送信メッセージの内容を流用することが示されていることを特徴とする付記1記載のテスト支援プログラム。
【0089】
(付記8) 前記編集ルールでは、前記雛形メッセージの受信メッセージの一部の項目について、前記テスト用送信メッセージの内容を基準とした別の内容に置き換えることが示されていることを特徴とする付記1記載のテスト支援プログラム。
【0090】
(付記9) 前記開発対象プログラムは、前記ネットワークを介した電子商取引を行うための動作が記述されていることを特徴とする付記1記載のテスト支援プログラム。
【0091】
(付記10) プログラムの動作を確認するためのテスト支援方法において、コンピュータにより、
ネットワークを介して接続された取引相手サーバに対して送信メッセージが送信され、前記取引相手サーバから受信メッセージが応答されると、前記送信メッセージと前記受信メッセージとの組をメッセージ履歴として保存し、
動作確認の対象である開発対象プログラムに基づく処理機能からテスト用送信メッセージが出力されると、予め設定された選択ルールに従って、前記テスト用送信メッセージに応じた前記メッセージ履歴を雛形メッセージとして選択し、
選択された前記雛形メッセージの受信メッセージを、予め設定された編集ルールに従って編集してテスト用受信メッセージを生成し、
生成された前記テスト用受信メッセージを、前記テスト用送信メッセージに対する応答として送信する、
ことを特徴とするテスト支援方法。
【0092】
(付記11) プログラムの動作を確認するためのテスト支援装置において、ネットワークを介して接続された取引相手サーバに対して送信メッセージが送信され、前記取引相手サーバから受信メッセージが応答されると、前記送信メッセージと前記受信メッセージとの組をメッセージ履歴として保存する履歴保存手段と、
動作確認の対象である開発対象プログラムに基づく処理機能からテスト用送信メッセージが出力されると、予め設定された選択ルールに従って、前記履歴保存手段で保存された前記メッセージ履歴から前記テスト用送信メッセージに応じた前記メッセージ履歴を、雛形メッセージとして選択する雛形選択手段と、
前記雛形選択手段で選択された前記雛形メッセージの受信メッセージを、予め設定された編集ルールに従って編集して、テスト用受信メッセージを生成する受信メッセージ生成手段と、
生成された前記テスト用受信メッセージを、前記テスト用送信メッセージに対する応答として送信する応答手段と、を有することを特徴とするテスト支援装置。
【0093】
(付記12) プログラムの動作を確認するためのテスト支援プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータに、
ネットワークを介して接続された取引相手サーバに対して送信メッセージが送信され、前記取引相手サーバから受信メッセージが応答されると、前記送信メッセージと前記受信メッセージとの組をメッセージ履歴として保存し、
動作確認の対象である開発対象プログラムに基づく処理機能からテスト用送信メッセージが出力されると、予め設定された選択ルールに従って、前記テスト用送信メッセージに応じた前記メッセージ履歴を雛形メッセージとして選択し、
選択された前記雛形メッセージの受信メッセージを、予め設定された編集ルールに従って編集してテスト用受信メッセージを生成し、
生成された前記テスト用受信メッセージを、前記テスト用送信メッセージに対する応答として送信する、ことを特徴とするテスト支援プログラムを記録したコンピュータ読み取り可能な記録媒体。
【0094】
【発明の効果】
以上説明したように本発明では、過去に送受信されたメッセージの履歴を編集して応答するようにしたため、テスト用送信メッセージに応じた実情に即した応答内容を容易に作成することができる。その結果、不特定多数の他のサーバと連携して動作する機能の信頼性の高い動作確認を、効率的に行うことができる。
【図面の簡単な説明】
【図1】実施の形態に適用される発明の概念図である。
【図2】本発明の実施の形態のシステム構成例を示す図である。
【図3】本発明の実施の形態に用いるサーバのハードウェア構成例を示す図である。
【図4】サーバの機能を示すブロック図である。
【図5】伝票DBのデータ構造例を示す図である。
【図6】選択ルールDBのデータ構造例を示す図である。
【図7】編集ルールDBのデータ構造例を示す図である。
【図8】サーバによる電子商取引の動作確認処理を示す図である。
【図9】スタブが実行する処理の詳細を示すフローチャートである。
【図10】スタブによる応答例を示す図である。
【図11】流用の編集ルールを示す図である。
【図12】置換の編集ルールを示す図である。
【図13】雛形伝票からの流用を定義した編集ルールを示す図である。
【図14】雛形伝票からの置換設定を定義した編集ルールを示す図である。
【図15】置換時のデータ加工パターン例を示す図である。
【符号の説明】
1 テスト支援プログラム
1a メッセージ履歴
1b 選択ルール
1c 編集ルール
2 既存プログラム
3 開発対象プログラム
4 送信メッセージ
5 受信メッセージ
6 テスト用送信メッセージ
7 雛形メッセージ
8 テスト用受信メッセージ
9 取引相手サーバ
10 インターネット
100 サーバ
110 電子商取引部
120 伝票収集部
130 スタブ
131 伝票DB
132 選択ルールDB
133 編集ルールDB
134 雛形選択部
135 雛形編集部
210,220 取引相手サーバ
【発明の属する技術分野】
本発明はプログラムの動作を確認するためのテスト支援プログラム、およびテスト支援方法に関し、特にスタブを利用して動作確認を行うテスト支援プログラム、およびテスト支援方法に関する。
【0002】
【従来の技術】
ソフトウェアを開発する場合、運用開始前に必ず動作確認が行われる。しかも、開発効率を向上させるためには、ソフトウェア開発途中の段階でも、適宜動作確認を行うことが望まれる。その場合、未完成の機能に対応するスタブを用意する。スタブとは、あるプログラムが他のプログラムを呼び出す際に仲介となるプログラムである。動作確認に使用されるスタブは、予め定義された設計内容に従い、動作確認対象プログラムに基づく呼び出しに応じて、未完成の機能に代わって所定の応答を返す。これにより、一部の機能が未完成のままでも、それ以外の機能の動作確認が可能となる。
【0003】
このようなスタブを利用することで、動作確認の自動化が容易となる。たとえば、複数のスタブからなるスタブ群を用意しておき、テスト対象ソフトウェアの実行中に他のモジュールに対する呼び出しが生じた場合、予め定義された条件に基づいて、予め用意されたスタブ群から適切な実スタブを選択して実行することもできる(たとえば、特許文献1参照)。
【0004】
【特許文献1】
特開2000−132425号公報
【0005】
【発明が解決しようとする課題】
ところで、現在、インターネットを介した電子商取引が一般的に行われている。インターネットを介した商取引を行う企業は、インターネットに接続したウェブサーバ等によって、商品の注文や見積もりの返信等を行う。
【0006】
しかし、電子商取引を行うためのシステム開発では、連携して動作する相手が社外のシステムであるため、信頼性の高い動作テストが困難である。たとえば、企業間電子商取引の場合、社外システムと自社内システムをネットワークで接続し、伝票を交換する。そのため、電子商取引のためのシステム構築の際には、自社内システムをテストするときでも、相手会社との接続のテストが必要になる。
このとき、自社内システムを改変した場合のリグレッションテストなどのたびに、大量のテストデータを相手会社のサーバに送信すると、相手先の迷惑になる。
なお、リグレッションテストとは、プログラムを変更した場合に、その変更によって予想外の影響が現れていないかどうかの動作確認作業である。
【0007】
また、相手会社のサーバにメッセージを送信して動作確認を行う場合、自分のテストしたい伝票を先方が返してくるとは限らない。そのため、実際に発生する可能性のある様々な状況に合わせたテストができず、電子商取引システムの信頼性の高いテストが困難であると共に、非効率でもあった。たとえば、取引相手のサーバがメンテナンス中のときの動作を確認する場合、取引相手のサーバが実際にメンテナンス中でなければならない。従って、取引相手のサーバがメンテナンスに入るまで、動作確認ができなくなってしまう。
【0008】
なお、相手会社のサーバの機能をシミュレートするスタブを利用して、リグレッションテストを行うことも考えられる。ところが、相手会社のサーバの処理内容は相手会社で決められているため、自社電子商取引用プログラムの開発段階で応答内容を特定しておくことはできない。そこで、従来のスタブでは、以下の何れかの方法を採ることができる。
・なんらかの規則を与えて(連番、ランダムなど)、受信伝票のデータを自動生成し、返信する。
・過去に取引相手から送られた伝票をそのまま保持し、テスト作業時の受信伝票として返信する。
・入力伝票のデータから適当に受信伝票のデータを自動生成し、返信する。
【0009】
しかし、いずれの方法でも、送信伝票に対して適切かつテストに有効な伝票を作成し、配信するという目的に対して、非実用的である。すなわち、スタブは、予め決定されている設計内容に従った応答(あるいは意図的に誤った応答)を返す必要があるが、電子商取引では取引相手の応答の内容として、多種多様な応答が存在する。そのため、不特定多数の取引相手サーバそれぞれの応答内容を、開発担当者が解析し、スタブの応答として定義するのは手間が掛かり過ぎ、非現実的である。
【0010】
本発明はこのような点に鑑みてなされたものであり、不特定多数の他のサーバと連携して動作する機能の信頼性の高い動作確認を、効率的に行うことができるテスト支援プログラム、およびテスト支援方法を提供することを目的とする。
【0011】
【課題を解決するための手段】
本発明では上記課題を解決するために、図1に示すようなプログラムの動作を確認するためのテスト支援プログラム1が提供される。このテスト支援プログラム1に従って、コンピュータは以下の処理を実行する。
【0012】
コンピュータは、ネットワークを介して接続された取引相手サーバ9に対して送信メッセージ4が送信され(ステップS1)、取引相手サーバ9から受信メッセージ5が応答される(ステップS2)と、送信メッセージ4と受信メッセージ5との組をメッセージ履歴1aとして保存する(ステップS3)。コンピュータは、動作確認の対象である開発対象プログラム3に基づく処理機能からテスト用送信メッセージ6が出力される(ステップS4)と、予め設定された選択ルール1bに従って、テスト用送信メッセージ6に応じたメッセージ履歴を雛形メッセージ7として選択する(ステップS5)。コンピュータは、選択された雛形メッセージ7の受信メッセージを、予め設定された編集ルール1cに従って編集してテスト用受信メッセージ8を生成する(ステップS6)。そして、コンピュータは、生成されたテスト用受信メッセージ8を、テスト用受信メッセージ8に対する応答として送信する(ステップS7)。
【0013】
このようなテスト支援プログラム1をコンピュータで実行することで、テスト用送信メッセージ6に基づいて、メッセージ履歴1aの中から選択ルール1bに応じて雛形メッセージ7が選択される。その雛形メッセージ7に対して編集ルール1cが適用されテスト用受信メッセージ8が生成され、応答される。
【0014】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
【0015】
図1は、実施の形態に適用される発明の概念図である。テスト支援プログラム1は、コンピュータに対して図1に示すような処理を実行させることができる。
すなわち、既存プログラム2に基づく処理機能(プロセス、タスク、スレッド等)が、ネットワークを介して接続された取引相手サーバ9に対して送信メッセージ4を送信する(ステップS1)。すると、取引相手サーバ9から既存プログラム2に基づく処理機能に対して受信メッセージ5が応答される(ステップS2)。このとき、テスト支援プログラム1を実行するコンピュータが、送信メッセージ4と受信メッセージ5との組をメッセージ履歴1aとして保存する(ステップS3)。
【0016】
その後、動作確認の対象である開発対象プログラム3に基づく処理機能からテスト用送信メッセージ6が出力される(ステップS4)と、テスト支援プログラム1を実行するコンピュータは、そのテスト用送信メッセージ6を受け取る。そして、コンピュータは、予め設定された選択ルール1bに従って、テスト用送信メッセージ6に応じたメッセージ履歴を雛形メッセージ7として選択する(ステップS5)。次に、コンピュータは、選択された雛形メッセージ7の受信メッセージを、予め設定された編集ルール1cに従って編集(データの加工等)してテスト用受信メッセージ8を生成する(ステップS6)。そして、コンピュータは、生成されたテスト用受信メッセージ8を、テスト用受信メッセージ8に対する応答として送信する(ステップS7)。
【0017】
送信されたテスト用受信メッセージ8は、開発対象プログラム3に基づく処理機能で取得され、開発対象プログラム3で記述された通りに処理される。テスト用受信メッセージ8が予定通りに処理されれば、開発対象プログラム3に不具合が無いことが分かる。テスト用受信メッセージ8が予定通りに処理されないか、あるいは想定していなかった問題が生じた場合、開発対象プログラム3の修正が必要であることが分かる。
【0018】
このように、過去のメッセージ履歴から適当なメッセージを雛形とし、所定の編集を加えることで、実情に即したテスト用受信メッセージ8を容易に作成できる。たとえば、過去のメッセージ履歴を編集せずにテスト用受信メッセージ8とすると日付情報の不整合によってエラーが出てしまう場合であっても、現在の日付に基づいて日付情報を変更することで、正常系のテスト用受信メッセージ8が作成できる。
【0019】
ところで、最近の電子商取引では、XML(eXtensible Markup Language)で作成されたメッセージを交換することがある。XMLは、構造化文書の1つであり、タグによって各要素が構造化されている。XMLは、独自にタグを定義でき、単なる文書をデータとして処理することを可能にするものである。しかも、スキーマを使うことで<価格>タグに書かれた数字を、「価格を表わす数値データ」として利用することができる。そのため、XMLは、電子商取引における伝票等のメッセージの交換に有用である。
【0020】
そこで、XMLによって構造化された文書によって電子商取引の処理を行うサーバに対して、本発明を適用した場合を例に採り、本発明の実施の形態を具体的に説明する。なお、電子商取引においては、送信メッセージを送信伝票と呼び、受信メッセージを受信伝票と呼び、メッセージ履歴を伝票履歴と呼ぶこととする。
【0021】
図2は、本発明の実施の形態のシステム構成例を示す図である。図2に示すように、電子商取引を行うために設置されたサーバ100が、インターネット10を介して取引相手サーバ210,220に接続されている。サーバ100は、電子商取引を行うためのアプリケーションプログラムが実装されたコンピュータである。取引相手サーバ210,220も同様に、取引相手企業における電子商取引用のコンピュータである。
【0022】
図3は、本発明の実施の形態に用いるサーバのハードウェア構成例を示す図である。サーバ100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、および通信インタフェース106が接続されている。
【0023】
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムが格納される。
【0024】
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス107を介してCPU101に送信する。
【0025】
通信インタフェース106は、インターネット10に接続されている。通信インタフェース106は、インターネット10を介して、他のサーバとの間でデータの送受信を行う。
【0026】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図3には、サーバ100のハードウェア構成例を示したが、取引相手サーバ210,220も同様のハードウェアで実現できる。
【0027】
このようなハードウェア構成のサーバ100に、テスト支援プログラムを実行させることで、サーバ100は、以下の3つの手順で「送信伝票に対して、適切かつテストに有効な」データを生成することができる。
【0028】
1.本物の取引伝票をある程度収集し、(送信伝票、受信伝票)伝票ペアを格納する。
2.ユーザが設定したXMLタグの選択ルールにより、テスト用送信伝票と上記送信伝票を比較し、マッチしたものの受信伝票部分を、受信伝票の雛形伝票とする。
【0029】
3.受信伝票雛形伝票または、送信伝票にXMLタグの編集ルールに基づく編集(流用や内容変更後の置換)を施し、テスト用受信伝票として返信する。この結果、以下の効果が得られる。
・少ない実伝票の情報から、実運用に近いデータを返すスタブが実現できる。
・置換ルールを変えることで、エラー用データを返すようなスタブを作成できる。これは、現実の取引相手サーバと接続しても得られないテストケースである。
【0030】
このような処理を実行するためにサーバ100内に構築される処理機能を、以下に詳細に説明する。
図4は、サーバの機能を示すブロック図である。サーバ100は、電子商取引部110、伝票収集部120、およびスタブ130を有している。
【0031】
電子商取引部110は、電子商取引を行うための処理機能であり、ソフトウェアによって実現される。電子商取引部110は、取引相手サーバ210,220との間で電子商取引を行う。たとえば、サーバ100のユーザが電子商取引により品物を調達する場合、電子商取引部110が取引相手サーバ210,220にアクセスし見積を取得する。また、ユーザからの操作入力等に応答して、取引相手サーバ210,220に対して、品物を発注する。電子商取引部110の処理内容を記述したプログラムの少なくとも一部を変更した場合、スタブ130を利用した動作確認が行われる。
【0032】
伝票収集部120は、電子商取引部110と取引相手サーバ210,220との間で受け渡された伝票を取得する。伝票収集部120は、取得した伝票を伝票データベース(DB)131に格納する。具体的には、伝票収集部120は、電子商取引部110から取引相手サーバ210,220へ送信した伝票(送信伝票)と、取引相手サーバ210,220から電子商取引部110に対して送信した伝票(受信伝票)との組を、伝票DB131に格納する。
【0033】
スタブ130は、電子商取引部110のプログラムの変更に伴い動作確認を行う際に、取引相手サーバ210,220が行う伝票の入出力処理をシミュレートする。具体的には、スタブ130は、テスト用送信伝票に応答して、動作確認に必要なテスト用受信伝票を返す。その機能を実現するために、スタブ130は、伝票DB131、選択ルールDB132、編集ルールDB133、雛形選択部134、および雛形編集部135を有している。
【0034】
伝票DB131には、電子商取引部110と取引相手サーバ210,220との間で送受信された伝票が、送信伝票と受信伝票とを組にして格納されている。選択ルールDB132には、電子商取引部110の動作確認の際に、伝票DB131から雛形として採用する伝票を選択するための1以上の選択ルールが予め設定されている。
【0035】
編集ルールDB133には、雛形として採用された伝票に基づいてテスト用受信伝票を生成するための1以上の編集ルールが予め設定されている。
雛形選択部134は、電子商取引部110からテスト用の送信伝票を受け取り、選択ルールDB132に設定されている選択ルールに従って、伝票DB131から雛形として利用する伝票を選択する。雛形選択部134は、選択した伝票を雛形編集部135に渡す。
【0036】
雛形編集部135は、雛形選択部134から雛形として使用する伝票を受け取ると、編集ルールDB133に設定されている編集ルールに従って受け取った伝票を編集する。たとえば、雛形編集部135は、雛形として選択された受信伝票に、テスト用送信伝票の一部の内容(伝票番号や日付など)を組み込む。そして、雛形編集部135は、編集した伝票を、テスト用受信伝票として動作確認対象の電子商取引部110に渡す。
【0037】
図5は、伝票DBのデータ構造例を示す図である。伝票DB131には、複数の伝票履歴21,22,23,・・・が格納されている。各伝票履歴21,22,23,・・・は、送信伝票と受信伝票とで構成される。
【0038】
たとえば、伝票履歴21は、取引相手サーバから商品の見積もりを取得したときの伝票である。送信伝票21aは、見積もり依頼の伝票である。受信伝票21bは、見積もり回答の伝票である。
【0039】
図6は、選択ルールDBのデータ構造例を示す図である。選択ルールDB132には、テスト用の送信伝票を受け取ったときに、雛形として使用する伝票履歴を選択するためのルールを定義した複数の選択ルール31,32,33,・・・が登録されている。
【0040】
たとえば、選択ルール31では、「<会社名>が一致 かつ <商品番号>一致」というルールが定義されている。どの選択ルールを適用するのかは、動作確認を行う際にユーザによって指定される。
【0041】
図7は、編集ルールDBのデータ構造例を示す図である。編集ルールDB133には、選択された伝票履歴のうち受信伝票に対して施す編集のルールが定義された編集ルール41,42,・・・が格納されている。編集の内容は、項目の内容の置換や、新たな項目の値化などである。
【0042】
たとえば、編集ルール41には、「<日付>に10日をプラス <伝票番号>を置換」というルールが設定されている。この編集ルール41は、正しい応答を返すためのルールである。また、編集ルール42には、「<日付>に10日をマイナス <伝票番号>を置換」というルールが設定されている。この編集ルール42は、日付の不整合によるエラーを含む応答を返すためのルールである。なお、編集ルール41,42における「<伝票番号>を置換」というルールは、雛形として選択された伝票の伝票番号を、他のユニークな伝票番号に置き換えることを示している。
【0043】
以上のような構成のサーバ100において、以下のような処理が行われる。
図8は、サーバによる電子商取引の動作確認処理を示す図である。電子商取引部110は、自社内の電子商取引環境として複数のアクティビティ(業務)111,112が定義されている。この例では、電子商取引部110の運用中に、アクティビティ112は取引相手サーバ210との間で伝票の送受信を行う。
【0044】
具体的には、アクティビティ112から取引相手サーバ210に対して送信伝票21aが送られる(ステップS11)。すると、取引相手サーバ210から電子商取引部110に対して受信伝票21bが返される(ステップS12)。このとき、伝票収集部120によって、送信伝票21aと受信伝票21bとが互いに関連付けられ、伝票履歴21として伝票DB131に格納される(ステップS13)。
【0045】
以後、アクティビティ112が取引相手サーバ210,220との間で伝票の送受信を行うごとに伝票履歴22,23,・・・が伝票DB131に格納される。その結果、伝票DB131には、運用中の電子商取引部110が送受信した多数の伝票が伝票DB131に蓄積される。なお、同種の伝票は、重複して格納しないようにしてもよい。このとき、同種の伝票が収集されたら、古い伝票を廃棄し、新しい伝票を格納することもできる。
【0046】
その後、電子商取引部110の動作内容を記述するプログラムが変更される(ステップS14)。変更されたプログラムに基づいて、アクティビティ111a,112aを有する電子商取引部110aが生成される。すると、変更後の電子商取引部110aの動作確認が必要となる。その場合、まず、ユーザの操作入力等により、選択ルールDB132内の適用すべき選択ルールが決定されると共に、編集ルールDB133内の適用すべき編集ルールが決定される。
【0047】
次に、電子商取引部110aを動作させ、アクティビティ112aからテスト用送信伝票51を出力させる(ステップS15)。このとき、テスト用送信伝票51は、取引相手サーバ210,220ではなく、スタブ130内の雛形選択部134に渡される。
【0048】
雛形選択部134は、予め指定された選択ルールと伝票DB131内の伝票履歴とを照合し、選択ルールに適合する伝票履歴を選択する(ステップS16)。そして、選択された伝票履歴が雛形伝票52として雛形編集部135に渡される。
【0049】
雛形編集部135は、雛形伝票52を受け取ると、予め指定されている編集ルールに基づいて、雛形伝票52を加工し、テスト用受信伝票53を生成する。具体的には、雛形編集部135は、雛形伝票52内の受信伝票を取り出す。次に、雛形編集部135は、編集ルールDB133から予め指定された1以上の編集ルールを取り出す。たとえば、正常な応答を返すための編集ルール、あるいはエラーとなる内容を含む応答を返すための編集ルールが取得される。雛形編集部135は、取得した編集ルールに従って、雛形伝票52内の受信伝票を加工し、テスト用受信伝票53を生成する。生成されたテスト用受信伝票53は、応答メッセージとして電子商取引部110aに渡される。
【0050】
電子商取引部110aのアクティビティ112aは、テスト用受信伝票53を受け取り、所定の処理を実行する。その実行結果が、予め想定していた通りか否かにより、電子商取引部110aの動作の適否を判断することができる。具体的には、テスト用受信伝票53が正常な応答内容であれば正常時の処理が行われ、エラーとなる内容を含む場合にはエラー処理が行われることを確認する。たとえば、テスト用受信伝票53がエラーとなる内容を含むにも拘わらず正常時の処理が行われてしまった場合、変更後の電子商取引部110aの処理を記述したプログラムに何らかの間違いがあると考えられる。
【0051】
次に、スタブが実行する処理の内容を詳細に説明する。
図9は、スタブが実行する処理の詳細を示すフローチャートである。以下、図9に示す処理をステップ番号に沿って説明する。なお、この例では、雛形伝票を選択するためのルールとして選択ルール31が指定され、テスト用受信伝票を作成するためのルールとして編集ルール41が指定されているものとする。
【0052】
[ステップS21]雛形選択部134は、電子商取引部110aからのテスト用送信伝票51を受信する。
[ステップS22]雛形選択部134は、選択ルールDB132から適用すべき選択ルール31を取り出す。そして、雛形選択部134は、選択ルール31に基づいてテスト用送信伝票51を分解し、キーを取り出す。具体的には、雛形選択部134は、選択ルール31で指定されているタグ(項目名)に合致するタグを、XMLで作成されているテスト用送信伝票51から検出し、そのタグ(キー)とその内容を取り出す。
【0053】
[ステップS23]雛形選択部134は、伝票DB131内の各伝票履歴から、テスト用送信伝票51におけるキーとその内容が一致している送信伝票を検索する。そして、雛形選択部134は、選択ルール31に基づいて検出された送信伝票52aを含む伝票履歴を雛形伝票52として雛形編集部135に渡す。
【0054】
[ステップS24]雛形編集部135は、送信伝票52aと受信伝票52bとで構成される雛形伝票52から受信伝票52bを抽出する。
[ステップS25]雛形編集部135は、予め指定されている編集ルール41を編集ルールDB133から取得する。
【0055】
[ステップS26]雛形編集部135は、編集ルール41によって編集対象となっているタグを、受信伝票52bから検索する。
[ステップS27]雛形編集部135は、編集ルール41に従って、受信伝票52bの編集対象のタグを編集する。
【0056】
[ステップS28]雛形編集部135は、受信伝票52bの全ての検索が行われたか否かを判断する。全ての検索が行われた場合、処理がステップS29に進められる。未検索の要素がある場合、処理がステップS26に進められ検索処理が行われる。
【0057】
[ステップS29]雛形編集部135は、ステップS25〜S28の処理により生成されたテスト用受信伝票53を、応答メッセージとして送信する。
このようにして、テスト用送信伝票51に対するテスト用受信伝票53をスタブ130によって自動生成し、電子商取引部110aに応答することができる。
【0058】
図10は、スタブによる応答例を示す図である。たとえば、選択ルール31では、<会社名>と<商品番号>とが一致していることを、雛形伝票を選択するためのルールとして規定している。そこで、<会社名>が「相手先A」、<商品番号>が「F9876」であるテスト用送信伝票51が電子商取引部110aから出力されると、送信伝票52aの<会社名>と<商品番号>とが一致する伝票履歴が、雛形伝票52として選択される。すると、雛形伝票52の受信伝票52bに対して編集ルール41,42が適用される。
【0059】
編集ルール41には、<日付>に10日をプラス、<伝票番号>を置換というルールが定義されている。そこで、雛形伝票52の受信伝票52bにおける<日付>のタグの内容を、テスト用送信伝票51の<日付>に10日を加算した日付「20030919」に置き換える。また、雛形伝票52の受信伝票52bにおける<伝票番号>のタグの内容を、過去の伝票で使用されていないユニークな番号「ID−00100301」に置き換える。このような置き換え処理によりテスト用受信伝票53aが生成される。
【0060】
また、編集ルール42には、<日付>に10日をマイナス、<伝票番号>を置換というルールが定義されている。そこで、雛形伝票52の受信伝票52bにおける<日付>のタグの内容を、テスト用送信伝票51の<日付>に10日を減算した日付「20030830」に置き換える。また、雛形伝票52の受信伝票52bにおける<伝票番号>のタグの内容を、過去の伝票で使用されていないユニークな番号「ID−00100302」に置き換える。このような置き換え処理によりテスト用受信伝票53bが生成される。
【0061】
テスト用受信伝票53bは、日付が過去に遡っている。従って、電子商取引部110aでは、誤ったデータとしてエラー処理を行う必要がある。予め想定されている通りにエラー処理が行われていれば、動作が正常であると判断できる。
【0062】
編集ルールとしては、図11〜図14に示すようなルールが考えられる。
図11は、流用の編集ルールを示す図である。この編集ルールでは、テスト用送信伝票61の一部を内容を変えずに流用して、テスト用受信伝票62の値とする。たとえば、図11の例では、<日付>と<伝票番号>との値が流用されている。このように、電子商取引では、送信メッセージの値をそのまま流用しなければならない値が多数存在する。たとえば、以下のような要件があげられる。
・送信時と同じ商品番号を返さないと、別商品と扱われてしまう。
・送信時と同じ伝票番号を返さないと、別伝票と扱われてしまう。
【0063】
流用の編集ルールは、これらの要件を満たすテスト用受信伝票の生成に有用である。
図12は、置換の編集ルールを示す図である。この編集ルールでは、テスト用送信伝票63の一部を置換して、テスト用受信伝票64の値とする。図12の例では、<希望納期>のタグの名称を<納期>に変更すると共に、日付に10を加算している。また、<個数>のタグの内容を20だけ減算している。
【0064】
これは、実情に合わせたテストを行うのに有用である。すなわち、図11に示したような流用では、単に送信時の値を流用するだけで電子商取引の実運用に近いテストを行うことができない場合がある。そこで、以下の要件のように、テスト送信伝票の値を置換・編集することで、より実運用に近いデータをテストすることができる。
・希望納期の期日に納品できないため、納期をずらす。
・希望した商品の個数分、納品できないため、個数を減らす。
・希望した商品の個数分以上購入するなら、単価を下げる。
・税金やサービス料金など、金額を加算する。
【0065】
置換の編集ルールでは、これらの要件を満たすテスト用受信伝票の生成に有用である。
図13は、雛形伝票からの流用を定義した編集ルールを示す図である。雛形伝票からの流用では、選択ルールに合致した雛形伝票に含まれる受信伝票65の値を置換せずに、テスト用受信伝票66の値とする。このような編集ルールは、以下のような要件に対して有用である。
・過去にテスト実績のある値でのテストが必要である(機能のレベルダウン防止)。
・過去の伝票番号を返すことで、意図的に冗送(二重送信)のエラーを発生させる必要がある。
【0066】
図14は、雛形伝票からの置換設定を定義した編集ルールを示す図である。雛形伝票からの置換設定では、選択ルールに合致した雛形伝票に含まれる受信伝票67の値を置換して、テスト用受信伝票68の値とする。図14の例では、<日付>の内容を現在の日付に変換している。また、<伝票番号>のタグの内容を、ユニークな番号に変更している。
【0067】
このような編集ルールは、以下のような要件に対して有用である。
・日付は、現在の日付でないと動作確認ができない。
・過去の伝票番号のままでは、冗送(二重送信)となり、正常系の動作確認ができない。
【0068】
なお、図11〜図14に示したケースは、主として正常系のテストを確認するものである。電子商取引では、取引先のシステムの実装状況や運用形態(システムが介在せず、人手によりデータを作成)によって、以下のような不当なXML文書がやりとりされるケースがある。
・XML文書が空である。
・XML文書ではない(単なるテキストファイル、XML宣言がないなど)。
・XML文書のルート要素が存在しない。
・XML文書がDTDにあわない(必須項目が存在しない、順序が異なる)。
【0069】
このような場合、XML文書を変換するルール(XSLT(eXtensible Style Language Transformations)によるXML文書間の変換)を工夫することで、上記のような要件に対応することができる。
【0070】
なお、図11〜図14に示したルールは、それぞれ組み合わせて使用することができる。
また、もとの内容を置換して設定する場合、置換方法には以下のようなパターンがある。
【0071】
図15は、置換時のデータ加工パターン例を示す図である。図15の例では、加工パターンが「値の加工」と「XML文書の加工」とに分類されている。値の加工は、加工される値の種別として「日付」、「時刻」、「数値」、「日付、時刻、数値を含む文字列」がある。
【0072】
「日付」の加工には、「現在日の設定」、「日付の加算」、「日付の減算」、「日付のフォーマット変更」がある。「現在日の設定」は、元の日付を現在の日付に置き換える処理である。「日付の加算」は、元の日付に任意の日数を加算する処理である。「日付の減算」は、元の日付から任意の日数を減算する処理である。「日付のフォーマット変更」は、日付の表記方法を変更する処理である。たとえば「20030830」を「03/08/30」に変換する。
【0073】
「時刻」の加工には、「現在時刻の設定」、「時刻の加算」、「時刻の減算」、「時刻のフォーマット変更」がある。「現在時刻の設定」は、元の時刻を現在の時刻に置き換える処理である。「時刻の加算」は、元の時刻に任意の時間を加算する処理である。「日付の減算」は、元の時刻から任意の時間を減算する処理である。「時刻のフォーマット変更」は、時刻の表記方法を変更する処理である。たとえば「13:30」を「13h45m」に変換する。
【0074】
「数値」の加工には、「数値の加算」、「数値の減算」、「数値のフォーマット変更(カンマ編集、小数点桁数など)」、「四則演算」、「ランダムな数値の設定」がある。「数値の加算」は、元の数値に任意の数値を加算する処理である。「数値の減算」は、元の数値から任意の数値を減算する処理である。「数値のフォーマット変更(カンマ編集、小数点桁数など)」は、数値の表示形式を変換する処理である。「四則演算」は、元の数値に対して、加減乗除の演算を施す処理である。「ランダムな数値の設定」は、元の数値に変えて、ランダムに生成した値を設定する処理である。
【0075】
「日付、時刻、数値を含む文字列」の加工には、上記の処理以外に「固有値の設定」、「文字列の切り取り」、「文字列の結合」がある。「固有値の設定」は、予め指定された値を設定する処理である。「文字列の切り取り」は、元の文字から任意の位置の文字を削除する処理である。「文字列の結合」は、元の文字に任意の文字を結合する処理である。
【0076】
「XML文書の加工」は、XML文書の「タグ」を加工する処理であり、「削除」、「追加」、「前後の入れ換え」がある。「削除」は、任意のタグを削除する処理である。「追加」は、任意のタグを追加する処理である。「前後の入れ換え」は、タグの配列の前後を入れ換える処理である。
【0077】
上記の説明では、インターネットを介した電子商取引に本発明を適用しているが、インターネット以外のネットワーク(電話網を含む)を介した電子商取引にも利用できる。
【0078】
また、タグを用いて構造が定義されているというXMLの利点を利用した発明の実施の形態を説明したが、SGML(Standard Generalized Markup Language)やXHTML(eXtensible Hyper Text Markup Language)等の他の構造化文書に適用することもできる。
【0079】
なお、上記の処理機能は、様々なコンピュータによって実現することができる。その場合、サーバが有すべき機能の処理内容を記述したテスト支援プログラムが提供される。そのテスト支援プログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したテスト支援プログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto−Optical disc)などがある。
【0080】
テスト支援プログラムを流通させる場合には、たとえば、そのテスト支援プログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、テスト支援プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのテスト支援プログラムを転送することもできる。
【0081】
テスト支援プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたテスト支援プログラムもしくはサーバコンピュータから転送されたテスト支援プログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からテスト支援プログラムを読み取り、テスト支援プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接テスト支援プログラムを読み取り、そのテスト支援プログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからテスト支援プログラムが転送される毎に、逐次、受け取ったテスト支援プログラムに従った処理を実行することもできる。
【0082】
(付記1) プログラムの動作を確認するためのテスト支援プログラムにおいて、
コンピュータに、
ネットワークを介して接続された取引相手サーバに対して送信メッセージが送信され、前記取引相手サーバから受信メッセージが応答されると、前記送信メッセージと前記受信メッセージとの組をメッセージ履歴として保存し、
動作確認の対象である開発対象プログラムに基づく処理機能からテスト用送信メッセージが出力されると、予め設定された選択ルールに従って、前記テスト用送信メッセージに応じた前記メッセージ履歴を雛形メッセージとして選択し、
選択された前記雛形メッセージの受信メッセージを、予め設定された編集ルールに従って編集してテスト用受信メッセージを生成し、
生成された前記テスト用受信メッセージを、前記テスト用送信メッセージに対する応答として送信する、ことを特徴とするテスト支援プログラム。
【0083】
(付記2) 前記メッセージ履歴を、タグによってデータ構造が定義された構造化文書の形式で保存することを特徴とする付記1記載のテスト支援プログラム。
【0084】
(付記3) 前記選択ルールでは、前記テスト用送信メッセージとの間で所定のタグの内容が一致する前記送信メッセージを有するメッセージ履歴が、選択対象として指定されていることを特徴とする付記2記載のテスト支援プログラム。
【0085】
(付記4) 前記編集ルールでは、前記開発対象プログラムが正常に処理可能な応答メッセージを返すためのルールと、前記開発対象プログラムでエラーを発生させる応答メッセージを返すためのルールとが設定されていることを特徴とする付記1記載のテスト支援プログラム。
【0086】
(付記5) 前記編集ルールでは、前記テスト用送信メッセージの受信メッセージの一部の項目について、前記テスト用送信メッセージの内容を流用することが示されていることを特徴とする付記1記載のテスト支援プログラム。
【0087】
(付記6) 前記編集ルールでは、前記テスト用送信メッセージの受信メッセージの一部の項目について、前記テスト用送信メッセージの内容を基準とした別の内容に置き換えることが示されていることを特徴とする付記1記載のテスト支援プログラム。
【0088】
(付記7) 前記編集ルールでは、前記雛形メッセージの受信メッセージの一部の項目について、前記テスト用送信メッセージの内容を流用することが示されていることを特徴とする付記1記載のテスト支援プログラム。
【0089】
(付記8) 前記編集ルールでは、前記雛形メッセージの受信メッセージの一部の項目について、前記テスト用送信メッセージの内容を基準とした別の内容に置き換えることが示されていることを特徴とする付記1記載のテスト支援プログラム。
【0090】
(付記9) 前記開発対象プログラムは、前記ネットワークを介した電子商取引を行うための動作が記述されていることを特徴とする付記1記載のテスト支援プログラム。
【0091】
(付記10) プログラムの動作を確認するためのテスト支援方法において、コンピュータにより、
ネットワークを介して接続された取引相手サーバに対して送信メッセージが送信され、前記取引相手サーバから受信メッセージが応答されると、前記送信メッセージと前記受信メッセージとの組をメッセージ履歴として保存し、
動作確認の対象である開発対象プログラムに基づく処理機能からテスト用送信メッセージが出力されると、予め設定された選択ルールに従って、前記テスト用送信メッセージに応じた前記メッセージ履歴を雛形メッセージとして選択し、
選択された前記雛形メッセージの受信メッセージを、予め設定された編集ルールに従って編集してテスト用受信メッセージを生成し、
生成された前記テスト用受信メッセージを、前記テスト用送信メッセージに対する応答として送信する、
ことを特徴とするテスト支援方法。
【0092】
(付記11) プログラムの動作を確認するためのテスト支援装置において、ネットワークを介して接続された取引相手サーバに対して送信メッセージが送信され、前記取引相手サーバから受信メッセージが応答されると、前記送信メッセージと前記受信メッセージとの組をメッセージ履歴として保存する履歴保存手段と、
動作確認の対象である開発対象プログラムに基づく処理機能からテスト用送信メッセージが出力されると、予め設定された選択ルールに従って、前記履歴保存手段で保存された前記メッセージ履歴から前記テスト用送信メッセージに応じた前記メッセージ履歴を、雛形メッセージとして選択する雛形選択手段と、
前記雛形選択手段で選択された前記雛形メッセージの受信メッセージを、予め設定された編集ルールに従って編集して、テスト用受信メッセージを生成する受信メッセージ生成手段と、
生成された前記テスト用受信メッセージを、前記テスト用送信メッセージに対する応答として送信する応答手段と、を有することを特徴とするテスト支援装置。
【0093】
(付記12) プログラムの動作を確認するためのテスト支援プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータに、
ネットワークを介して接続された取引相手サーバに対して送信メッセージが送信され、前記取引相手サーバから受信メッセージが応答されると、前記送信メッセージと前記受信メッセージとの組をメッセージ履歴として保存し、
動作確認の対象である開発対象プログラムに基づく処理機能からテスト用送信メッセージが出力されると、予め設定された選択ルールに従って、前記テスト用送信メッセージに応じた前記メッセージ履歴を雛形メッセージとして選択し、
選択された前記雛形メッセージの受信メッセージを、予め設定された編集ルールに従って編集してテスト用受信メッセージを生成し、
生成された前記テスト用受信メッセージを、前記テスト用送信メッセージに対する応答として送信する、ことを特徴とするテスト支援プログラムを記録したコンピュータ読み取り可能な記録媒体。
【0094】
【発明の効果】
以上説明したように本発明では、過去に送受信されたメッセージの履歴を編集して応答するようにしたため、テスト用送信メッセージに応じた実情に即した応答内容を容易に作成することができる。その結果、不特定多数の他のサーバと連携して動作する機能の信頼性の高い動作確認を、効率的に行うことができる。
【図面の簡単な説明】
【図1】実施の形態に適用される発明の概念図である。
【図2】本発明の実施の形態のシステム構成例を示す図である。
【図3】本発明の実施の形態に用いるサーバのハードウェア構成例を示す図である。
【図4】サーバの機能を示すブロック図である。
【図5】伝票DBのデータ構造例を示す図である。
【図6】選択ルールDBのデータ構造例を示す図である。
【図7】編集ルールDBのデータ構造例を示す図である。
【図8】サーバによる電子商取引の動作確認処理を示す図である。
【図9】スタブが実行する処理の詳細を示すフローチャートである。
【図10】スタブによる応答例を示す図である。
【図11】流用の編集ルールを示す図である。
【図12】置換の編集ルールを示す図である。
【図13】雛形伝票からの流用を定義した編集ルールを示す図である。
【図14】雛形伝票からの置換設定を定義した編集ルールを示す図である。
【図15】置換時のデータ加工パターン例を示す図である。
【符号の説明】
1 テスト支援プログラム
1a メッセージ履歴
1b 選択ルール
1c 編集ルール
2 既存プログラム
3 開発対象プログラム
4 送信メッセージ
5 受信メッセージ
6 テスト用送信メッセージ
7 雛形メッセージ
8 テスト用受信メッセージ
9 取引相手サーバ
10 インターネット
100 サーバ
110 電子商取引部
120 伝票収集部
130 スタブ
131 伝票DB
132 選択ルールDB
133 編集ルールDB
134 雛形選択部
135 雛形編集部
210,220 取引相手サーバ
Claims (5)
- プログラムの動作を確認するためのテスト支援プログラムにおいて、
コンピュータに、
ネットワークを介して接続された取引相手サーバに対して送信メッセージが送信され、前記取引相手サーバから受信メッセージが応答されると、前記送信メッセージと前記受信メッセージとの組をメッセージ履歴として保存し、
動作確認の対象である開発対象プログラムに基づく処理機能からテスト用送信メッセージが出力されると、予め設定された選択ルールに従って、前記テスト用送信メッセージに応じた前記メッセージ履歴を雛形メッセージとして選択し、
選択された前記雛形メッセージの受信メッセージを、予め設定された編集ルールに従って編集してテスト用受信メッセージを生成し、
生成された前記テスト用受信メッセージを、前記テスト用送信メッセージに対する応答として送信する、ことを特徴とするテスト支援プログラム。 - 前記メッセージ履歴を、タグによってデータ構造が定義された構造化文書の形式で保存することを特徴とする請求項1記載のテスト支援プログラム。
- 前記選択ルールでは、前記テスト用送信メッセージとの間で所定のタグの内容が一致する前記送信メッセージを有するメッセージ履歴が、選択対象として指定されていることを特徴とする請求項2記載のテスト支援プログラム。
- 前記編集ルールでは、前記開発対象プログラムが正常に処理可能な応答メッセージを返すためのルールと、前記開発対象プログラムでエラーを発生させる応答メッセージを返すためのルールとが設定されていることを特徴とする請求項1記載のテスト支援プログラム。
- プログラムの動作を確認するためのテスト支援方法において、
コンピュータにより、
ネットワークを介して接続された取引相手サーバに対して送信メッセージが送信され、前記取引相手サーバから受信メッセージが応答されると、前記送信メッセージと前記受信メッセージとの組をメッセージ履歴として保存し、
動作確認の対象である開発対象プログラムに基づく処理機能からテスト用送信メッセージが出力されると、予め設定された選択ルールに従って、前記テスト用送信メッセージに応じた前記メッセージ履歴を雛形メッセージとして選択し、
選択された前記雛形メッセージの受信メッセージを、予め設定された編集ルールに従って編集してテスト用受信メッセージを生成し、
生成された前記テスト用受信メッセージを、前記テスト用送信メッセージに対する応答として送信する、ことを特徴とするテスト支援方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003208522A JP2005070835A (ja) | 2003-08-25 | 2003-08-25 | テスト支援プログラムおよびテスト支援方法 |
US10/828,057 US6963815B2 (en) | 2003-08-25 | 2004-04-20 | Test support program and test support method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003208522A JP2005070835A (ja) | 2003-08-25 | 2003-08-25 | テスト支援プログラムおよびテスト支援方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005070835A true JP2005070835A (ja) | 2005-03-17 |
Family
ID=34208981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003208522A Pending JP2005070835A (ja) | 2003-08-25 | 2003-08-25 | テスト支援プログラムおよびテスト支援方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6963815B2 (ja) |
JP (1) | JP2005070835A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006338540A (ja) * | 2005-06-03 | 2006-12-14 | Mitsubishi Electric Corp | アプリケーションテスト装置 |
JP2007026306A (ja) * | 2005-07-20 | 2007-02-01 | Nec Corp | プログラムテスト装置、方法、及び、プログラム |
JP2007264967A (ja) * | 2006-03-28 | 2007-10-11 | Fujitsu Ltd | シナリオ作成プログラム |
JP2008234151A (ja) * | 2007-03-19 | 2008-10-02 | Fujitsu Ltd | シナリオ作成プログラム及びシナリオ作成装置 |
JP2012503819A (ja) * | 2008-09-25 | 2012-02-09 | エルエスアイ コーポレーション | 外部記憶アレイにおいて帯域外管理アプリケーションを認証するための方法及び/又は装置 |
JP2013073531A (ja) * | 2011-09-28 | 2013-04-22 | Fujitsu Ltd | 試験支援プログラム、試験支援方法および試験支援装置 |
JP2015146179A (ja) * | 2014-01-31 | 2015-08-13 | 富士通株式会社 | テストダブルの生成 |
JP2017049728A (ja) * | 2015-08-31 | 2017-03-09 | 株式会社日立製作所 | サービス仮想化システム、及び、サービス仮想化方法 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8230390B2 (en) * | 2007-02-09 | 2012-07-24 | Nokia Corporation | Template-based rule generation |
US7886219B2 (en) * | 2007-02-26 | 2011-02-08 | Emc Corporation | Automatic form generation |
US7840890B2 (en) * | 2007-02-26 | 2010-11-23 | Emc Corporation | Generation of randomly structured forms |
US8311794B2 (en) * | 2007-05-04 | 2012-11-13 | Sap Ag | Testing executable logic |
CN106980889A (zh) * | 2016-01-18 | 2017-07-25 | 阿里巴巴集团控股有限公司 | 非接触式ic卡片的模拟方法、装置及模拟装置 |
CN110321287A (zh) * | 2019-06-20 | 2019-10-11 | 北京奇艺世纪科技有限公司 | 一种服务器功能的检测方法、装置及电子设备 |
CN112346993B (zh) * | 2020-11-30 | 2022-05-17 | 杭州安恒信息技术股份有限公司 | 一种情报分析引擎的测试方法、装置及设备 |
CN115225531B (zh) * | 2022-07-15 | 2024-03-15 | 北京天融信网络安全技术有限公司 | 数据库防火墙测试方法、装置、电子设备及介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6272555B1 (en) * | 1996-07-01 | 2001-08-07 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system |
US5999972A (en) * | 1996-07-01 | 1999-12-07 | Sun Microsystems, Inc. | System, method and article of manufacture for a distributed computer system framework |
JP2000132425A (ja) | 1998-10-26 | 2000-05-12 | Hitachi Ltd | ソフトウェアテスト方法 |
AU2002222890A1 (en) * | 2000-12-08 | 2002-06-18 | Chikka Pte Ltd | A messaging system involving wireless communications and method therefor |
-
2003
- 2003-08-25 JP JP2003208522A patent/JP2005070835A/ja active Pending
-
2004
- 2004-04-20 US US10/828,057 patent/US6963815B2/en not_active Expired - Fee Related
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006338540A (ja) * | 2005-06-03 | 2006-12-14 | Mitsubishi Electric Corp | アプリケーションテスト装置 |
JP4684748B2 (ja) * | 2005-06-03 | 2011-05-18 | 三菱電機株式会社 | アプリケーションテスト装置 |
JP2007026306A (ja) * | 2005-07-20 | 2007-02-01 | Nec Corp | プログラムテスト装置、方法、及び、プログラム |
JP4696744B2 (ja) * | 2005-07-20 | 2011-06-08 | 日本電気株式会社 | プログラムテスト装置、方法、及び、プログラム |
JP2007264967A (ja) * | 2006-03-28 | 2007-10-11 | Fujitsu Ltd | シナリオ作成プログラム |
US8306805B2 (en) | 2006-03-28 | 2012-11-06 | Fujitsu Limited | Scenario generation method and scenario generation apparatus |
JP2008234151A (ja) * | 2007-03-19 | 2008-10-02 | Fujitsu Ltd | シナリオ作成プログラム及びシナリオ作成装置 |
JP2012503819A (ja) * | 2008-09-25 | 2012-02-09 | エルエスアイ コーポレーション | 外部記憶アレイにおいて帯域外管理アプリケーションを認証するための方法及び/又は装置 |
US8966098B2 (en) | 2008-09-25 | 2015-02-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and/or apparatus for certifying an out of band management application in an external storage array |
JP2013073531A (ja) * | 2011-09-28 | 2013-04-22 | Fujitsu Ltd | 試験支援プログラム、試験支援方法および試験支援装置 |
JP2015146179A (ja) * | 2014-01-31 | 2015-08-13 | 富士通株式会社 | テストダブルの生成 |
JP2017049728A (ja) * | 2015-08-31 | 2017-03-09 | 株式会社日立製作所 | サービス仮想化システム、及び、サービス仮想化方法 |
Also Published As
Publication number | Publication date |
---|---|
US20050049815A1 (en) | 2005-03-03 |
US6963815B2 (en) | 2005-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kumar et al. | Workflow support for electronic commerce applications | |
JP2005070835A (ja) | テスト支援プログラムおよびテスト支援方法 | |
US20120144381A1 (en) | Method and system for managing digital goods | |
US20020082857A1 (en) | Method and apparatus for providing an online document and input form creation and storage system | |
US20020198743A1 (en) | Network architecture and management system for conducting insurance activities on a network | |
Cockburn | Basic use case template | |
US20050268165A1 (en) | Method and system for automated testing of web services | |
US8875013B2 (en) | Multi-pass validation of extensible markup language (XML) documents | |
US8244644B2 (en) | Supply chain multi-dimensional serial containment process | |
JP2010205190A (ja) | プログラム開発が不要なユーザ主導による業務アプリケーションケーション構築技法と基本的な業務処理で構成されたプロトタイプモデル | |
CN101488201A (zh) | 用于时间跟踪的系统和方法 | |
JP2006277644A (ja) | データ移行支援システム及びデータ移行支援プログラム | |
US20030154263A1 (en) | Server program | |
US20050065945A1 (en) | Merging of products into a database | |
JP2004178480A (ja) | 取引伝票管理方法及び取引伝票管理プログラム | |
JP2001076045A (ja) | 業務フロー図作成支援装置およびその記録媒体 | |
JPH10177568A (ja) | 文書管理システムおよび文書管理用記憶媒体 | |
JP5359385B2 (ja) | 統合管理システム、統合管理装置、統合管理方法およびプログラム | |
JP5336906B2 (ja) | 設計工程管理装置 | |
JP2004139588A (ja) | プロジェクト管理装置、プロジェクト管理システムおよびプログラム | |
JP7012895B1 (ja) | 会計システム、方法、およびプログラム | |
JP2011043930A (ja) | 帳票処理システム、帳票処理サーバ装置、帳票処理装置、帳票処理方法、およびプログラム | |
JP2001125959A (ja) | 電子取引システムおよび電子取引方法 | |
JP2009003780A (ja) | モジュール管理方法、モジュール管理装置、モジュール管理システムおよびモジュール管理プログラム | |
JP4251893B2 (ja) | データ交換及び管理方法並びにコンピュータプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060424 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081008 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090616 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20091110 |