(57)【要約】      （修正有）【課題】テスト対象プログラムあるいは実行環境や他のソフトウエアが自発的に発生させる事象に依存した動作の検証を自動化する。【解決手段】テスト対象プログラムに対する操作手順を記述したスクリプトを保持する記憶装置２００と、該スクリプトに従って操作を自動実行する操作自動実行手段１１０と、任意個数のプログラムと任意個数のサブルーチンに対して注入すべきサブルーチンを指定するルーチン指定情報、各プログラムについてサブルーチンに関係付けるプログラム中の箇所を指定するルーチン関連付け箇所情報を受け取り、各プログラムに対し、前記ルーチン指定情報に指定されているサブルーチンを結合し、各プログラムにおいて、ルーチン関連付け箇所情報に示されるサブルーチンとプログラム中の箇所との関係に従って、当該箇所の直前において当該サブルーチンへのサブルーチン分岐命令が実行されるようにプログラムを編集する注入手段１３０を含む。【選択図】図１
2009237707.tif 000002
【特許請求の範囲】
【請求項１】
テスト対象プログラムのテスト実行を自動化するプログラムテスト自動化システムであって、
前記テスト対象プログラムのテストに関与する任意個数のプログラムに対して自動実行すべき操作手順を記述したスクリプトを保持する記憶装置と、
テスト開始の指示を受け付けて前記スクリプトを前記記憶装置から読み出し、前記スクリプトに記述された手順で前記プログラムに対する操作を自動的に実行する操作自動実行手段と、
任意個数のプログラムと任意個数のサブルーチン、各プログラムに対して注入すべきサブルーチンを指定するルーチン指定情報、各プログラムについてサブルーチンに関係付けるべきプログラム中の箇所を指定するルーチン関連付け箇所情報を受け取り、
前記各プログラムに対し、前記サブルーチンのうち前記ルーチン指定情報に指定されているサブルーチンをそれぞれ結合し、
前記各プログラムにおいて、前記ルーチン関連付け箇所情報に示されるサブルーチンとプログラム中の箇所との関係に従って、当該箇所の直前において当該サブルーチンへのサブルーチン分岐命令が実行されるようにプログラムを編集する注入手段と、
を備えたことを特徴とするプログラムテスト自動化システム。
【請求項２】
前記注入手段が、前記サブルーチンが参照または更新する情報を保持するデータ領域並びに命令列保持領域を含む指示情報受取手段を、注入対象の前記プログラムに結合する機能を含むことを特徴とする請求項１記載のプログラムテスト自動化システム。
【請求項３】
前記注入手段が、前記指示情報受取手段内の変数値またはプログラム内の変数値の参照を含むような、与えられた条件判定式を評価して、当該の式の結果を受けて以後の処理の実行有無を制御する条件分岐命令手段を、前記プログラムに結合するサブルーチンの先頭部分に挿入する機能を含むことを特徴とする請求項２記載のプログラムテスト自動化システム。
【請求項４】
前記操作自動実行手段の指示を受けて、前記指示情報受取手段に対する情報または命令列の参照または更新を行うことのできる指示情報送出手段を含むことを特徴とする請求項２又は請求項３に記載のプログラムテスト自動化システム。
【請求項５】
テスト対象プログラムのテストに関与する任意個数のプログラムに対して自動実行すべき操作手順を記述したスクリプトを保持する記憶装置と、テスト開始の指示を受け付けて前記スクリプトを前記記憶装置から読み出し、前記スクリプトに記述された手順で前記プログラムに対する操作を自動的に実行する操作自動実行手段を有するプログラムテスト自動化システムのプログラムテスト自動化方法であって、
任意個数のプログラムと任意個数のサブルーチン、各プログラムに対して注入すべきサブルーチンを指定するルーチン指定情報、各プログラムについてサブルーチンに関係付けるべきプログラム中の箇所を指定するルーチン関連付け箇所情報を受け取り、
前記各プログラムに対し、前記サブルーチンのうち前記ルーチン指定情報に指定されているサブルーチンをそれぞれ結合し、
前記各プログラムにおいて、前記ルーチン関連付け箇所情報に示されるサブルーチンとプログラム中の箇所との関係に従って、当該箇所の直前において当該サブルーチンへのサブルーチン分岐命令が実行されるようにプログラムを編集するステップを含むことを特徴とするプログラムテスト自動化方法。
【請求項６】
前記プログラムを編集するステップにおいて、前記サブルーチンが参照または更新する情報を保持するデータ領域並びに命令列保持領域を含む指示情報受取手段を、注入対象の前記プログラムに結合することを特徴とする請求項５記載のプログラムテスト自動化方法。
【請求項７】
前記プログラムを編集するステップにおいて、前記指示情報受取手段内の変数値またはプログラム内の変数値の参照を含むような、与えられた条件判定式を評価して、当該の式の結果を受けて以後の処理の実行有無を制御する条件分岐命令手段を、前記プログラムに結合するサブルーチンの先頭部分に挿入することを特徴とする請求項６記載のプログラムテスト自動化方法。
【請求項８】
前記操作自動実行手段の指示を受けて、前記指示情報受取手段に対する情報または命令列の参照または更新を行う指示情報送出ステップを含むことを特徴とする請求項６又は請求項７に記載のプログラムテスト自動化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムのテスト実行を自動化するシステムに関し、特に、外部公開されているインタフェースを介して制御できない内部処理の発生に依存する動作のテストに適用できるプログラムテスト自動化システム、プログラムテスト自動化方法及びプログラムに関する。
【背景技術】
【０００２】
ある実行環境上でプログラムの動作をテストするには、ユーザが様々な操作を行い、その操作に依存する動作結果を確認する必要がある。
【０００３】
関連技術としての一般的なプログラムテスト自動化システムは、テストの際にソフトウエアに対して行わなければならない操作を自動化するため、例えば、特許文献１に記載されているように、操作手順をログファイルに記録する手段と、指示により該ログファイルに記録された手順を再現する手段とを備えている。
【０００４】
これはテスト対象プログラムをユーザが手動で操作した際に、実行環境上で検出されるコマンドやメッセージの発生をログファイルに記録しておき、以後はログファイルの内容を制御のシナリオと見立てて記録時と同等の操作を自動実行させることにより、プログラムのテストを自動実行するものである。
【０００５】
また、市販のいくつかのプログラムテスト自動化システム、例えばＭｅｒｃｕｒｙ社のＱｕｉｃｋＴｅｓｔやＭｉｃｒｏｓｏｆｔ社の「ＴｅａｍＥｄｉｔｉｏｎ  Ｆｏｒ  Ｔｅｓｔｅｒ」は、該ログファイルの内容を利用者が修正できるようにしている。そしてログファイルの書式として、操作を再現させるためのシナリオをプログラミングできるスクリプト言語形式を採用することにより、より複雑な操作手順の自動実行をプログラミングできるようになっている。
【０００６】
一般的なプログラムテスト自動化システムが自動化の対象としている操作の例を図８から図１６に示した。
【０００７】
テストを行う際にはユーザまたはテスト自動化ツールが、実行環境またはテスト対象プログラムに対して操作を行い、その際の振舞いを観測してテストの合否を判定する。
【０００８】
図８の例は、ユーザがテスト対象プログラムの処理を実行してその完了を待ち、処理結果を取得する場合を示している。
太い矢印の部分がユーザが行う作業であり自動化すべき対象でもある。
【０００９】
図９の例は、図８と似ているが、処理の実行を開始した後、ユーザはその完了を待たずに別の操作を行うことができるような場合を示している。
この場合は、最初の処理開始メッセージの送信とその処理中に行う操作とが自動化の対象である。
【００１０】
さらに図１０の例は、ユーザが開始した処理の途中でユーザに対して直接にメッセージが送り返されてくる場合を示しており、図１１の例は送り返されるメッセージが実行環境を経由してからユーザに渡される例を示している。
【００１１】
いずれも、送り返されてくるメッセージが同期の場合は、それを受け取る操作が必要となり、これも自動化の対象である。
【００１２】
また、テストに際しては、あらかじめ初期状態を設定しておく必要がある。
【００１３】
図１２の例は処理前または処理中にユーザがプログラムの状態を直接的に設定する場合を示している。
【００１４】
図１３の例はプログラムの処理実行前に実行環境の状態を設定する場合を示している。
【００１５】
これらの場合における状態を設定する操作も自動化の対象である。
さらにテストの結果判定のためにはプログラムや実行環境の状態を観測する必要があり、図１４〜図１６の例に示すような、ユーザからタイミングを指定してテスト対象プログラムや実行環境の状態を参照する操作も自動化の対象である。
【特許文献１】実開昭６４−２７７４０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
上述した関連技術としてのプログラムテスト自動化システムは、外部からの操作以外の要因、例えばメモリ空間の逼迫やシステム障害など実行環境内部でごく稀に発生する事象や、実行中のプログラムが外部からの操作とは無関係に内部で発生させる事象、あるいは他のプログラムがテスト対象プログラムの動作の影響を受けて発生させる事象など、に依存した動作のテストを自動実行できないという、問題点を有している。
【００１７】
例えば図１７の例は、実行環境自身が２で処理を自発的に実行したり、テスト対象プログラム自身が３で処理を自発的に実行するような場合を示している。この場合ユーザは１や４の操作を行ってテストを試みるが、２や３の発生タイミングを自由には制御できない。そのため、２以後に３が起こる状況を確実に再現させるような操作の手順は存在せず、テストを自動化することができない。
【００１８】
また図１８の例は、ユーザが１でテスト対象プログラムの処理を起動した後に、テスト対象プログラム内部で自発的なイベント２と４が間隔をおいて発生する場合を示している。そして、２で開始した処理の終了直後に実行環境に対する状態設定３を行っておいたとして、その後に４が発生したとしたらどうなるか、についてのテストを想定している。このときユーザには、４のタイミングを３の後になるよう制御する手立てがないため、このようなテストを自動化することはできない。
【００１９】
上記のような問題が生じる理由は、自動化する手段の対象が、ユーザの行うことのできる操作のみを対象としており、テスト対象プログラムあるいは実行環境あるいは他の関与するプログラムの側で自発的に発生しユーザ操作によっては直接制御できないような事象を発生させるための自動化手段を持たなかったためである。
（発明の目的）
本発明の目的は、テスト対象プログラムあるいは実行環境や他のソフトウエアが自発的に発生させる事象をテスト自動化手段から制御可能にすることで、そのような事象に依存した動作の検証を自動化できるプログラムテスト自動化システム、プログラムテスト自動化方法及びプログラムを提供することにある。
【課題を解決するための手段】
【００２０】
本発明によるプログラムテスト自動化システムは、テスト対象プログラムのテスト実行を自動化するプログラムテスト自動化システムであって、テスト対象プログラムのテストに関与する任意個数のプログラムに対して自動実行すべき操作手順を記述したスクリプトを保持する記憶装置と、テスト開始の指示を受け付けてスクリプトを記憶装置から読み出し、スクリプトに記述された手順でプログラムに対する操作を自動的に実行する操作自動実行手段と、任意個数のプログラムと任意個数のサブルーチン、各プログラムに対して注入すべきサブルーチンを指定するルーチン指定情報、各プログラムについてサブルーチンに関係付けるべきプログラム中の箇所を指定するルーチン関連付け箇所情報を受け取り、各プログラムに対し、サブルーチンのうちルーチン指定情報に指定されているサブルーチンをそれぞれ結合し、各プログラムにおいて、ルーチン関連付け箇所情報に示されるサブルーチンとプログラム中の箇所との関係に従って、当該箇所の直前において当該サブルーチンへのサブルーチン分岐命令が実行されるようにプログラムを編集する注入手段とを含む。
【００２１】
本発明によるプログラムテスト自動化方法は、テスト対象プログラムのテストに関与する任意個数のプログラムに対して自動実行すべき操作手順を記述したスクリプトを保持する記憶装置と、テスト開始の指示を受け付けてスクリプトを記憶装置から読み出し、スクリプトに記述された手順でプログラムに対する操作を自動的に実行する操作自動実行手段を有するプログラムテスト自動化システムのプログラムテスト自動化方法であって、任意個数のプログラムと任意個数のサブルーチン、各プログラムに対して注入すべきサブルーチンを指定するルーチン指定情報、各プログラムについてサブルーチンに関係付けるべきプログラム中の箇所を指定するルーチン関連付け箇所情報を受け取り、各プログラムに対し、サブルーチンのうちルーチン指定情報に指定されているサブルーチンをそれぞれ結合し、各プログラムにおいて、ルーチン関連付け箇所情報に示されるサブルーチンとプログラム中の箇所との関係に従って、当該箇所の直前において当該サブルーチンへのサブルーチン分岐命令が実行されるようにプログラムを編集するステップを含む。
【発明の効果】
【００２２】
第１の効果は、手動操作以外の要因で発生する事象に依存した動作のテストを自動実行できることにある。
【００２３】
その理由は、テスト対象プログラムあるいは実行環境あるいは他の関与するソフトウエアの側で自発的に発生しユーザ操作によっては直接制御できないような事象を発生させることのできる条件分岐命令手段を注入手段によってプログラムに注入できるためである。
【発明を実施するための最良の形態】
【００２４】
（第１の実施の形態）
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００２５】
図１を参照すると、本発明の第１の実施の形態によるプログラムテスト自動化システムは、テストに関与する一般に複数個のプログラムに対する操作手順をプログラムしたスクリプト２１０を保持する記憶装置２００と、プログラム制御により動作し、テスト開始の指示を受け付けてスクリプト２１０を記憶装置２００から読み出し、当該スクリプト２１０の指示内容を解釈し操作手順を自動的に実行するコンピュータ１００とを含んでいる。
【００２６】
コンピュータ１００は、操作自動実行手段１１０と、注入先プログラム１２０と、注入手段１３０と、条件分岐命令手段１４０と、サブルーチン１４１と、指示情報送出手段１５０と、指示情報受付手段１６０及びテスト対象プログラム３００を含む。
【００２７】
ここで、プログラムテスト自動化システムを構成する上記各手段の機能について説明する。
【００２８】
操作自動実行手段１１０は、テスト開始の指示を受け付けて当該スクリプト２１０を当該記憶装置２００から読み出し、読み出したスクリプト２１０の指示内容を解釈し操作手順を自動的に実行する機能を有する。
【００２９】
注入手段１３０は、条件分岐命令手段１４０と、与えられたサブルーチン１４１と、指示情報受付手段１５０を、指定された注入先プログラム１２０に結合する機能と、サブルーチン１４１に関連付けるべき注入先プログラム１２０中の箇所が指定された場合に、当該注入先プログラム１２０の当該箇所に、条件分岐命令手段１４０へのサブルーチン呼出が行われ、その復帰後に本来の処理が継続されるような命令列を挿入する機能を有する。
【００３０】
条件分岐命令手段１４０は、注入手段１３０の指示に従って、注入先プログラム１２０からの分岐によって実行を開始する手段であって、サブルーチン１４１を実行する命令を含み、分岐元への復帰命令で終結する命令列を保持する手段である。
【００３１】
指示情報送出手段１５０は、操作自動実行手段１１０からの制御を受け付けて、指示情報受付手段１６０に対してサブルーチン１４１に参照させるべき情報を送り出す手段である。
【００３２】
指示情報受付手段１６０は、指示情報送出手段１５０が送り出した情報を受け取って保持するデータ領域並びに命令列保持領域を含み、事象発生ルーチン１４１又は外部からの参照または更新を可能とする手段である。
【００３３】
なお、サブルーチン１４１とは、注入先プログラム１２０に結合可能な任意の命令と呼出元への復帰命令とを含む命令列であり、注入先プログラム１２０内部で通常にアクセス可能な変数や手続きに加え、指示情報受付手段１６０に保持された情報を参照、更新及び削除することができる任意のルーチンである。
【００３４】
コンピュータ１００のハードウェア構成例について、図７を参照して説明する。
【００３５】
図７を参照すると、コンピュータ１００は、一般的なコンピュータ装置と同様のハードウェア構成によって実現することができ、ＣＰＵ（Central Processing Unit）４０１、ＲＡＭ（Random Access Memory）等のメインメモリであり、データの作業領域やデータの一時退避領域に用いられる主記憶部４０２、ネットワークを介して他のノードとデータの送受信を行う通信部４０３、入力装置４０５、出力装置４０６及び記憶装置４０７（記憶装置２００に相当）と接続してデータの送受信を行う入出力インタフェース部４０４、上記各構成要素を相互に接続するシステムバス４０８を備えている。記憶装置４０７は、例えば、ＲＯＭ（Read
Only Memory）、磁気ディスク、半導体メモリ等の不揮発性メモリから構成されるハードディスク装置等で実現される。
【００３６】
本実施の形態によるプログラムテスト自動化システムは、コンピュータ１００に、図１に示す各手段の機能を実現するプログラムテスト自動化プログラムを組み込んだ、ＬＳＩ（Large Scale Integration）等のハードウェア部品である回路部品を実装することにより、その動作をハードウェア的に実現することは勿論として、プログラムテスト自動化プログラムを、記憶装置４０７に格納し、そのプログラムを主記憶部４０２にロードしてＣＰＵ４０１で実行することにより、ソフトウェア的に実現することも可能である。
【００３７】
（第１の実施の形態による動作）
次いで、上記のように構成される本実施の形態によるプログラムテスト自動化システムの動作について、図２及び図３のフローチャートを参照して説明する。
【００３８】
まず、テストを実行するための準備が行われる。
注入手段１３０に対して、任意個数のサブルーチン１４１、テスト対象プログラム３００のテストに関与する注入先プログラム１２０が与えられ、さらに、注入先プログラム１２０における監視対象手続きとそれに対応させるべき事象発生ルーチン１４１の情報が与えられる（ステップＡ１０１）。
【００３９】
詳細には、図２に示すように、任意個数の注入先プログラム１２０、任意個数のサブルーチン１４１、どのルーチンをどの注入プログラムに結合すべきかを指定するルーチン指定情報、ルーチン毎に関連付けるべき注入プログラム中の任意個数の箇所を指定するルーチン関連付け箇所情報、指示情報受付手段１６０内の変数値又は注入先プログラム内の変数値への参照を含むような条件判定式が与えられる。
【００４０】
注入手段１３０は、与えられた各注入プログラム１２０に、条件分岐命令手段１４０と、ルーチン指定情報で指定されたサブルーチン１４１と、指示情報受付手段１６０を結合する（ステップＡ１０２）。
【００４１】
また、注入手段１３０は、注入先プログラム１２０に対して、ルーチン関連付け箇所情報で指定された箇所に、条件分岐命令手段１４０へのサブルーチン呼出しを行うサブルーチン呼出し命令を挿入する（ステップＡ１０３）。
【００４２】
すなわち、注入手段１３０は、ルーチン関連付け箇所情報で指定された箇所の直前においてサブルーチンへのサブルーチン呼出し命令が実行されるように、注入先プログラム１２０を編集する。
【００４３】
さらに、注入手段１３０は、各注入プログラム１２０に関連付けた各サブルーチンに対して、与えられた条件判定式を評価して、その結果が真の時にサブルーチンの呼出しを行った後に分岐元への復帰を行うような命令例を挿入する（ステップＡ１０４）。
【００４４】
以上により、プログラムテストの準備が完了する（ステップＡ１０５）。
【００４５】
次に、テストの準備が完了した状態で（ステップＡ２１０）、テスト対象プログラム３００を操作する命令および注入先プログラム１２０を操作する命令および指示情報送出手段１５０を操作する命令を含んだスクリプト２１０が記憶装置２００に保持されているときに、コンピュータ１００がテスト実行の指示を受けると（ステップＡ２２０）、操作自動実行手段１１０は、テスト対象プログラム３００の操作および注入先プログラム１２０の操作ならびに指示情報送出手段１５０の操作を自動的に実行する（ステップＡ２３０）。
【００４６】
指示情報送出手段１５０は、操作自動実行手段１１０からの操作を受けたとき（ステップＡ２３１）、指示情報受付手段１６０に対して前記サブルーチン１４１に参照させるべき情報を送り出す（ステップＡ２３２）。
そして、指示情報受付手段１６０がアクセス可能な状態となる（ステップＡ２３３）。
【００４７】
注入先プログラム１２０が起動すると（ステップＡ３１０）、注入プログラム１２０による通常の処理が行われる（ステップＡ３２０）と共に、注入手段１２０によって挿入された分岐命令が実行され（ステップＡ３３０）、条件分岐命令手段１４０へと制御が分岐されると（ステップＡ３４０）、条件分岐命令手段１４０に格納されている命令列に従って、サブルーチン呼出しがなされサブルーチン１４１が実行される（ステップＡ３５０）。
【００４８】
サブルーチン１４１の実行においては、指示情報受付手段１６０からの指示情報を参照し（ステップＡ３５１）、その指示情報に応じて、テスト対象プログラム３００の状態参照（ステップＡ３５２）、注入先プログラムの状態参照（ステップＡ３５３）、実行環境の状態参照（ステップＡ３５４）を実行する。
【００４９】
また、状態参照によって取得した情報に対する条件判定式による評価がなされ（ステップＡ３５５）、評価結果が真であれば、所定の処理を実行する（Ａ３５５〜Ａ３５８）。
【００５０】
そして、サブルーチン１４１の実行完了後に、元の命令列へと制御が復帰する。
【００５１】
（実施の形態による効果）
本実施の形態によれば、手動操作以外の要因で発生する事象に依存した動作のテストを自動実行できる。その理由は、テスト対象プログラムあるいは実行環境あるいは他の関与するソフトウエアの側で自発的に発生しユーザ操作によっては直接制御できないような事象を発生させることのできる条件分岐命令手段を注入手段によってプログラムに注入できるためである。
【実施例】
【００５２】
次に、プログラムテスト自動化システムの具体的な動作について実施例を用いて説明する。
【００５３】
図４に示すように、イベントキューを読み取ってイベントに対応するスレッド（処理）を生成して実行し、再びイベントキュー読み取りを行うといった、イベント処理を反復するタイプのアプリケーションプログラムを想定する。
【００５４】
図５に示すように、main()関数内のwhileループ内で「queue」から「getEvent()」によりイベント取り出しを試み、それを「dispatch()」で具体的な処理を実行する例を用いて動作を説明する。
【００５５】
図６にaspectJ言語を利用して実現した注入手段１３０を示す。
「Injectee」に記述したアスペクトは、図５のアプリケーションプログラムの「Main」内の任意のメソッドが呼出されるたびに、「before」内のロジックが実行され、その後にメソッド本来の処理が実行されるべきことを指示する内容である。これをaspectJの処理系で処理することにより、アプリケーションプログラムの「Main」に対する注入が実現される。
【００５６】
また、図６において、「SharedObject」は、指示情報受付手段１６０を実装したクラスであり、「get()」で情報の参照、「set()」で情報の設定を行うことができるものとする。
【００５７】
さらに、図４によると、テストを自動化すべき対象のアプリケーションプログラムの持つ処理Ａおよび処理Ｂは実行環境の情報を参照、更新しながら動作し、処理Ａの結果は処理Ｂの挙動に影響するものとする。
【００５８】
これは、図５では、「processA()」でｘやｙに設定した値が「processB()」にてｚの値の算出に使用される場合を示している。
【００５９】
このとき、処理Ａの後に処理Ｂを実行させた場合の動作をテストしたいものとすると、処理Ａと処理Ｂの実行順序を制御することが必要だが、図５のアプリケーションプログラムには外部から処理Ａと処理Ｂの順序を制御する手段が備わっていない。
【００６０】
なお、「MyEventQueue」は外部から制御不可能なシステム内部のイベントが入力されるものとする。このとき、Injecteeアスペクトが注入されていることにより、指示情報"flag"を参照してprocessA()に続いてprocessB()を実行することができる。
【００６１】
まず、最初にプログラムテスト自動化システムから上記アプリケーションアプリケーションプログラムを起動する。
【００６２】
これにより、Mainのmain()関数内のwhileループ内のステートメントが反復実行され始める。
【００６３】
次に、指示情報送出手段１５０がSharedObject.set("flag",true)を実行し、指示情報受付手段１６０であるSharedObjectにtrueという値を持つ変数flagを渡す。
【００６４】
すると、その後でwhileループ中でdispatch()が呼出されたとき、アスペクトInjecteeに制御が渡り、SharedObjectからflag値がgetされ、それがtrueとなるため、次のprintln()とprocessA()とprocessB()とprintln()が順次実行される。これにより、出力結果の中で、begin
test と end testで囲まれた箇所を見れば、processA()の後にprocessB()を実行した場合の結果を確認することができる。
【００６５】
以上のようにして、希望通りの操作をプログラムテスト自動化システムから実行することができる。
【００６６】
なお、C言語のプログラムの場合であれば、Pin等のbinary
instrumentationツールを用いることで、同様の注入処理を実装することができる。
【００６７】
以上好ましい実施の形態と実施例をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態及び実施例に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
【産業上の利用可能性】
【００６８】
本発明によれば、プログラムを実運用に近い条件下でテストするテストシステムに適用することができる。
【図面の簡単な説明】
【００６９】
【図１】本発明の第１の実施の形態によるプログラムテスト自動化システムの構成を示すブロック図である。
【図２】本発明の第１の実施の形態によるプログラムテスト自動化システムの動作を説明するフローチャートである。
【図３】本発明の第１の実施の形態によるプログラムテスト自動化システムの動作を説明するフローチャートである。
【図４】本発明の第１の実施の形態における実施例による動作を示す図である。
【図５】本発明の第１の実施の形態における実施例による動作を示す図である。
【図６】本発明の第１の実施の形態における実施例による動作を示す図である。
【図７】本発明の第１の実施の形態におけるコンピュータのハードウェア構成例を示す図である。
【図８】関連技術によるプログラムテスト自動化システムにおいて自動化可能な操作のパターンを例示するシーケンス図である。
【図９】関連技術によるプログラムテスト自動化システムにおいて自動化可能な操作のパターンを例示するシーケンス図である。
【図１０】関連技術によるプログラムテスト自動化システムにおいて自動化可能な操作のパターンを例示するシーケンス図である。
【図１１】関連技術によるプログラムテスト自動化システムにおいて自動化可能な操作のパターンを例示するシーケンス図である。
【図１２】関連技術によるプログラムテスト自動化システムにおいて自動化可能な操作のパターンを例示するシーケンス図である。
【図１３】関連技術によるプログラムテスト自動化システムにおいて自動化可能な操作のパターンを例示するシーケンス図である。
【図１４】プログラムテスト自動化システムによって自動化可能な操作のパターンを例示するシーケンス図である。
【図１５】関連技術によるプログラムテスト自動化システムにおいて自動化可能な操作のパターンを例示するシーケンス図である。
【図１６】関連技術によるプログラムテスト自動化システムにおいて自動化可能な操作のパターンを例示するシーケンス図である。
【図１７】関連技術によるプログラムテスト自動化システムでは自動化できない操作のパターンを例示するシーケンス図である。
【図１８】関連技術によるプログラムテスト自動化システムでは自動化できない操作のパターンを例示するシーケンス図である。
【符号の説明】
【００７０】
１００：コンピュータ
１１０：操作自動実行手段
１２０：注入先プログラム
１３０：注入手段
１４０：条件分岐命令手段
１４１：サブルーチン
１５０：指示情報送出手段
１６０：指示情報受付手段
２００：記憶装置
２１０：スクリプト
３００：テスト対象プログラム
【図１】
2009237707.tif 000003
【図２】
2009237707.tif 000004
【図３】
2009237707.tif 000005
【図４】
2009237707.tif 000006
【図５】
2009237707.tif 000007
【図６】
2009237707.tif 000008
【図７】
2009237707.tif 000009
【図８】
2009237707.tif 000010
【図９】
2009237707.tif 000011
【図１０】
2009237707.tif 000012
【図１１】
2009237707.tif 000013
【図１２】
2009237707.tif 000014
【図１３】
2009237707.tif 000015
【図１４】
2009237707.tif 000016
【図１５】
2009237707.tif 000017
【図１６】
2009237707.tif 000018
【図１７】
2009237707.tif 000019
【図１８】
2009237707.tif 000020