(57)【要約】【課題】  再生実行環境が無い状態であっても、マクロスクリプトの記述を画面遷移順序の並びと階層構造の表示として変換することで、マクロスクリプトに記述してある操作内容を容易に理解し、マクロスクリプトの再利用率を上げることで生産効率を高めることを目的とする。【解決手段】  マクロスクリプトから画面選択操作を抽出し、単画面単位の操作に分解する。画面遷移の並びを、階層構造変換アルゴリズムによって、階層構造に表現しモデル図として表示する。また、再生実行環境が無い状態で、画面を想定させるために画面のビットマップイメージを提供する。そのためには、記録時に、ウィンドウ選択操作及び画面が切り替わるタイミングのメッセージを判断し、ビットマップイメージを取得することで可能とする。単画面内の部品に対する操作一覧及びそのビットマップイメージを対比して表示させる。【選択図】  図１
2005284926.tif 000002
【特許請求の範囲】
【請求項１】
操作対象であるアプリケーションプログラムに対する操作手順が所定形式で記述されたマクロスクリプトをコンピュータによって処理するマクロスクリプト処理プログラムであって、
処理対象とされた前記マクロスクリプトの画面遷移の流れを解析するステップと、
前記解析により得られた画面遷移の順序に基づいて画面間の階層構造を表現したモデル図を表示装置に表示するステップと
を備えることを特徴とするマクロスクリプト処理プログラム。
【請求項２】
請求項１に記載のマクロスクリプト処理プログラムにおいて、
前記階層構造を表現したモデル図とともに画面の遷移順序を表示装置に表示するステップをさらに備えることを特徴とするマクロスクリプト処理プログラム。
【請求項３】
請求項１または２に記載のマクロスクリプト処理プログラムにおいて、
操作対象であるアプリケーションプログラムに対する操作手順を前記マクロスクリプトとして記録するとき、画面が切り替わる毎にその画面のイメージデータを取得するステップをさらに備え、
前記画面遷移の流れを解析するステップは、前記マクロスクリプトの操作メッセージを解析して画面が切り替わるタイミングを判定することにより、画面の遷移順序を検出するものである
ことを特徴とするマクロスクリプト処理プログラム。
【請求項４】
請求項３に記載のマクロスクリプト処理プログラムにおいて、
表示されている画面遷移の順序から選択された単画面に対し、その画面のイメージ表示及びその画面で行われる操作の一覧表示を行うステップをさらに備えたことを特徴とするマクロスクリプト処理プログラム。
【請求項５】
請求項３または４に記載のマクロスクリプト処理プログラムにおいて、
前記遷移順序を求める画面としてはメッセージダイアログを含めないことを特徴とするマクロスクリプト処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、操作対象であるアプリケーションプログラムに対する操作手順を所定形式で記述したマクロスクリプトを処理するマクロスクリプト処理プログラムに関するものである。
【背景技術】
【０００２】
従来、アプリケーション回帰テストを効率的に行う為に、予め一連の決まった操作内容を登録しておき、後でこの一連の操作内容を呼出して実行する技術として、例えば、下記特許文献１に記載の技術が知られている。
【０００３】
下記特許文献１に記載の技術は、一度行った操作をマクロスクリプトと呼ばれる所定形式の記述に記録しておき、同様の操作を再現する装置である。これをマクロスクリプト処理装置と呼ぶ。図１０に、従来のマクロスクリプト処理装置の概略構成の一例を示す。同図において、マクロスクリプト作成装置１０１は、操作対象アプリケーションプログラム１０６からの操作手順を操作記録部１０２によって記録し、その操作内容からマクロスクリプトファイル１０３に変換する機能を持つ。マクロスクリプト実行装置１０４は、マクロスクリプトファイル１０３を読み込んで、操作実行部１０５によって操作対象１０６に対する操作を再現して実行する機能を持つ。このように、一度行った操作をマクロスクリプトとして記録しておき、同一操作を再現する技術は、アプリケーション回帰テストや、操作手順が複雑なアプリケーションのデモンストレーション等に利用されている。
【特許文献１】特開２００３−３０８２９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に記載の技術は、マクロスクリプトというかたちで、記録した操作を記述しているが、どのような操作が記録されているのかは、再生してみなければ分からない。
【０００５】
もちろん、マクロスクリプトはGUI（Graphical  User  Interface）を用いたアプリケーションソフトウェアに対応した形式で記述しているため、マクロスクリプトの文法を完全に理解していることを前提とすれば、解析することは可能である。しかし、例えば画面遷移が頻繁に発生するような複雑な操作は、相当量のマクロスクリプトとして記述されているため、処理の概要を理解するのに負担となる。
【０００６】
この場合、再生を実行し、正しく再現できれば操作の流れを把握できるが、例えば、操作対象であるアプリケーションソフトウェアの構造や動作に変更が加わった場合、再生に失敗するケースが少なくない。アプリケーションソフトウェアの仕様変更に対応してマクロスクリプトに修正を加えればよいのであるが、第三者が記録したマクロスクリプトの処理内容を想定し、修正を加えるのは容易な作業ではない。また、複雑な操作であれば、再度記録することも負担になる。
【０００７】
本発明の目的は、再生実行環境が無い状態であっても、マクロスクリプトの記述を画面遷移順序の並びと階層構造の表示として変換することで、マクロスクリプトに記述してある操作内容を容易に理解し、マクロスクリプトの再利用率を上げることで生産効率を高めることである。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明では、記録操作の流れを把握するために画面の切り替わりのタイミングに着目した。単画面に対する操作を一つの記録単位として切り離して考え、単画面に対する操作記録を並べることによって、一連の操作に繋がる。そこで、本発明は、入力したマクロスクリプトから画面遷移の流れを解析し、前記解析により得られた画面遷移の順序に基づいて画面間の階層構造を表現したモデル図を表示することを特徴とするものである。
【０００９】
階層構造を表現したモデル図とともに画面の遷移順序を表示するようにしてもよい。また、操作対象であるアプリケーションプログラムに対する操作手順を前記マクロスクリプトとして記録するとき、画面が切り替わる毎にその画面のイメージデータを取得し、前記マクロスクリプトの操作メッセージを解析して画面が切り替わるタイミングを判定することにより画面の遷移順序を検出するようにするとよい。さらに、選択された単画面に対し、その単画面内の部品に対する操作を一覧で表示させ、また画面構成を視覚的に認識させる為に、単画面のビットマップイメージを対比して表示させる。なお、画面遷移を求める画面にはメッセージダイアログを含めない方がよい。
【発明の効果】
【００１０】
本発明によれば、操作を記録したマクロスクリプトから、画面遷移を階層構造に置換することで、操作記録時のアプリケーションの画面遷移がどの流れで行われているかが瞬時に判定できる。アプリケーション操作中に頻繁に出現するであろうメッセージダイアログは通常のアプリケーション画面に対する操作と区別し、メッセージとして上記モデル図内に表示させることによって、どのタイミングでメッセージが出現しているのかが瞬時に理解できる。
【００１１】
また、遷移順に、各画面単位に操作状況を一覧表示することで、マクロスクリプトの文法を理解していない者でも、どのような操作を行ったのかが容易に把握・理解できる。従って、追加、修正作業も、マクロスクリプトの文法を理解することなく容易に実施可能となる。
【００１２】
また、記録操作一覧表示中に、対象画面のビットマップイメージを表示させることによって、アプリケーションを起動させることなく、画面構成の視覚的なイメージを把握でき、マクロスクリプト操作内容の理解度も高まると期待できる。
【００１３】
以上により、マクロスクリプトの再生実行環境が無い状態であっても、マクロスクリプトの操作の流れを把握することができ、マクロスクリプトの資産としての生産効率を高めることができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明を実施する場合の一形態を図面を参照して具体的に説明する。
【００１５】
図１は、本発明の実施の一形態の概略構成を示すブロック図である。コンピュータ１にはメモリ２、CPU３が備えられ、キーボード４、マウス５、ディスプレイ装置６、記憶装置７が接続されている。メモリ２には、本発明の一実施形態に係るマクロスクリプト処理プログラム１０、操作対象となる操作対象アプリケーションプログラム２０、マクロスクリプトファイル１４が記憶される。
【００１６】
マクロスクリプト処理プログラム１０はマクロスクリプトを作成するマクロスクリプト作成処理部１１とマクロスクリプトの解析及び表示を行うマクロスクリプトプレビュー処理部１５とマクロスクリプトの実行を行うマクロスクリプト実行処理部１８から構成される。次にマクロスクリプト作成処理部１１、マクロスクリプトプレビュー処理部１５及びマクロスクリプト実行処理部１８の構成機能を詳細に説明する。
マクロスクリプト作成処理部１１は、操作対象アプリケーションプログラム２０に対する操作を操作記録部１２によって記録し、マクロスクリプトファイル１４に変換する機能を持つ。ここで、ビットマップ取得部１３は、操作記録部１２における記録時に、記録する操作がその操作対象であるアプリケーションのウィンドウに対する操作であった場合には、その時点におけるビットマップイメージを取得するといった機能を持つ。ただし、メッセージダイアログ発生時は、ビットマップを取得しないようにする。メッセージダイアログは、一時的に表示されるだけのものだからである。これにより操作対象であるアプリケーションの画面遷移によって、画面が切り替わる度にビットマップイメージを取得することになる。
【００１７】
マクロスクリプト実行処理部１８は、マクロスクリプトファイル１４を読み込み、操作実行部１９によって操作対象アプリケーションプログラム２０に対する操作を再現して実行する。マクロスクリプトプレビュー処理部１５は、マクロスクリプトファイル１４及びビットマップイメージを読み込み、マクロスクリプト解析部１６によって画面遷移の流れを解析し、マクロスクリプト表示部１７によって階層構造の形式で表示する。また、マクロスクリプト表示部１７は、画面単位に画面内の部品に対する記録を一覧表示させ、同時にビットマップ取得部１３によって取得したビットマップイメージを表示させる機能を持つ。
【００１８】
図２は、図１のビットマップ取得部１３における記録時のビットマップイメージ取得処理のフローチャートを示したものである。操作中に発生するマウス操作やキー操作のウィンドウ通知メッセージを全て取得し、一つ一つのメッセージを解析する（ステップ２１）。ウィンドウに対する操作メッセージであること（ステップ２２）、かつ、メッセージダイアログでないこと（ステップ２３）を確認する。ここで、メッセージダイアログが発生する場合は、画面→メッセージ→画面の順に遷移することが予想されるため、同一画面に対して２つのビットマップイメージを取得することになってしまう。そこで、前回のウィンドウ情報をバッファに退避しておき、これと比較を行う（ステップ２４）。ウィンドウタイトルとウィンドウクラスが前回のウィンドウ情報と異なっていた場合（ステップ２５）、画面遷移が発生したと判断し、ビットマップイメージを取得する（ステップ２６）。前述したステップ２４で述べたウィンドウ情報比較用として、ウィンドウ情報をバッファに退避しておく（ステップ２７）。以上の操作を、記録停止するまで繰り返すことにより、新しい画面を選択する度にビットマップイメージを取得することができる。
【００１９】
図３は、図１のマクロスクリプトプレビュー処理部１５によってマクロスクリプトを解析して画面の遷移順序を抽出し、階層構造に表現した場合のイメージ図の例（３１）を示す。ここから考えられる画面遷移順序として、少なくとも２種類の画面遷移順序が想定される（３２）。すなわち、画面０３から画面０２に戻ってその次に画面０４→画面０１と遷移するケースと、画面０３から画面０１に戻ってその次に画面０２→画面０４→画面０１と遷移するケースである（３２）。逆にいうと、複数種類の可能性のある遷移パターンが、同一の階層構造に表現される場合を考慮する必要がある。階層構造イメージ図（３１）の点線で囲った「メッセージ」は、メッセージダイアログであるので、通常のウィンドウと区別し、実際には表示しないこととする。もちろん、「メッセージ」を表示して、どのタイミングでメッセージが出現しているのか分かるようにしてもよい。
【００２０】
図４は、マクロスクリプトを解析して抽出した遷移順序から階層構造に変換する処理のフローチャートを示す。まず、マクロスクリプトから、ウィンドウ選択部分の記述を全て抽出していることが前提である。すなわち、マクロスクリプトの記述中から、どのウィンドウを選択した上で操作を行っているかを求め、そのウィンドウの選択状態の遷移順序を抽出しておく。１つのウィンドウ選択状態（１つの画面）を１つの要素（構造体）として表現しておく。
【００２１】
上述の要素の構造体は、「階層順序情報」（ルートとなる最上位の親要素を１とし、その子を２、孫を３としていくような、階層構造内の階層レベルを示す値である）と、ウィンドウタイトルやクラス名称などの「要素比較対象情報」と、「親要素へのポインタ情報」と、「次の要素へのポインタ情報」と（遷移順序）を持った構造体とする。「要素比較対象情報」が、当該要素に対応する１つの画面を示している。これらの構造体を指すワーク用のポインタとして、CURとPREVとWORKを用意する。なお、本処理開始時にはｉ＝１に初期化しておく。また、PREV=NULLと初期化しておく。図４の処理開始時点では、未だ階層構造は決定されていないので、各要素の構造体の「階層順序情報」と「親要素へのポインタ情報」は全て空である。
【００２２】
図４において、まず、上述した遷移順序の順番に従って、要素［ｉ］を指すポインタをCURに設定する。全ての要素を処理したか判定する（ステップ４２）。未処理の要素があれば、今回対象としているポインタCURが指す要素の「要素比較対象情報」と前回ポインタPREVが指す要素の「要素比較対象情報」とを比較する（ステップ４３）。この比較は、画面が切り替わったかどうかを判断するための比較である。画面が切り替わっていた場合、階層定義処理を呼び出す（ステップ４４）。階層定義処理を終了したら、ポインタCURをPREVにコピーする（ステップ４５）。次の要素を検索対象とし（ステップ４６）、全ての要素を検索するまで繰り返す。ステップ４６は、具体的には、ポインタCURが指す要素の「次の要素へのポインタ」を読み出して、新たにCURに設定する処理である。全ての要素の検索が終了したら（ステップ４２）、処理を終了する。
【００２３】
図５は、図４でPREVが指す要素の画面（前回画面）とCURが指す要素の画面（今回対象画面）とが異なっていた場合に実行される階層定義処理（ステップ４４）のフローチャートを示す。なお、本処理開始時にはｊ＝１に初期化する。まず、遷移順序の先頭要素からポインタPREVが指す前回要素までの要素のうち、ｊ番目の要素である要素［ｊ］を指すポインタをWORKに設定する（ステップ５１）。遷移順序の先頭からPREVが指す要素までの全ての要素を処理したか判定する（ステップ５２）。未処理の要素があれば、WORKが指す要素の「要素比較対象情報」とCURが指す要素の「要素比較対象情報」とを比較する（ステップ５３）。異なっていた場合は、次の要素を検索対象とし（ステップ５４）、ステップ５１に戻って上記処理を繰り返す。ステップ５３でWORKとCURとで「要素比較対象情報」が一致しているときは、現在処理対象であるCURが指す要素の画面が、既にここまでで決定されている階層構造中に定義済みと判断できる。そこで、WORKが指す要素の「階層順序情報」と「親要素へのポインタ情報」をCURが指す要素の対応する項目にコピーして（ステップ５５）、処理を終了する。その後、CURがPREVにコピーされるので（ステップ４５）、次回追加される要素の親要素がPREVに定義されたことになる。全ての要素について処理が完了し、画面が一致する要素が無かった場合は（ステップ５２）、今回の処理対象であるポインタCURが指す要素の画面が、前回処理対象であったポインタPREVが指す要素の画面の下位に付く画面であると判断できる。そこで、階層構造の新たな子要素として定義するために、まずポインタPREVが指す要素の「階層順序情報」に＋１した値を、ポインタCURが指す要素の「階層順序情報」に設定し（ステップ５６）、ポインタCURが指す要素の「親要素へのポインタ情報」にPREVをコピーする（ステップ５７）。
【００２４】
なお、図４で一番初めに遷移順序の先頭の要素をCURに取り出したときは、PREVは空（NULL）の状態で階層定義処理（ステップ４４）が呼び出されるが、このときは図５のステップ５１→５２→５６→５７と進み、CURの「階層順序情報」には１、「親要素へのポインタ情報」にはNULLを、それぞれ設定するものとする。
【００２５】
以上の図４及び図５の処理により、各画面に対応する要素の構造体には、「階層順序情報」と「親要素へのポインタ情報」が全て設定されるので、これにより画面間の階層構造が決定されたことになる。
【００２６】
図６は、操作を記録したマクロスクリプトの記述例である。サンプルで示した記録操作の流れを説明する。"ログイン画面"を選択してアクティブにする（M11）。入力フィールドに値を入力し（M12、M13）、"ログイン"ボタンを押下する（M14）。"メイン画面"に遷移する（M15）。次に、メイン画面に対して操作を行った後、"参照"ボタンを押下することによって、"参照画面"に遷移する。"参照画面"を選択してアクティブにする（M21）。入力フィールドに値を入力する（M22、M23）。"実行"ボタンを押下する（M24）。"通知"メッセージが出現する（M25）。"了解"ボタンを押下する（M26）。"参照画面"に戻り、アクティブにする（M27）。"参照画面"にて操作を実行した後、"戻る"ボタンを押下する（M28）。"メイン画面"に遷移する（M29）。最後に"ログアウト"ボタンを押下（M31）して終了している。
【００２７】
図７は、図６で使用したマクロスクリプトコマンドの解説を示す。GUIを用いたアプリケーションに対応したマクロスクリプトでは、このように部品ごとに操作コマンドが用意されているのが一般的である。また、図６では用いていないが、マウスクリック（"Click"コマンド）操作や、キーを押下する（"KeyIn"コマンド）操作などの汎用的な操作を再現するコマンドが、通常記録されている。図７で示したコマンドはほんの一例であり、これ以外にも様々な操作を実現できるためのコマンドが用意されている。
【００２８】
図８は、図６で示したサンプルの記録操作を、図１〜図５で説明したマクロスクリプトプレビュー処理部１５によって解析し、図３で説明したように階層モデル化表示した場合の表示例を示す。図６中の画面名称を使用したブロック図で表示し、階層構造８１で表現している。また、遷移順序、ウィンドウ名称、階層番号の一覧を表形式８２で表示することにより、階層構造８１との対応付けを図っている。
【００２９】
図９は、マクロスクリプトプレビュー処理部１５の表示機能による、単画面ごとの操作表示例である。図８で表示した遷移順序、ウィンドウ名称、階層番号の一覧９１から、１つの画面を選択して所定の操作を行なうことにより単画面ごとの操作表示に切り替えることができる。９２は単画面ごとにビットマップイメージと操作一覧をプレビューする表示例を示し、ここでは「参照画面」についてのビットマップイメージと操作一覧のプレビュー表示例を図示した。ここで、図１のビットマップ取得部１３で取得したビットマップを対比して表示することにより、操作内容を視覚的に理解することが可能となる。なお、メッセージに関しては、通常のウィンドウと区別するために、メッセージに対する操作は省略している。
【図面の簡単な説明】
【００３０】
【図１】本発明の一実施の形態のマクロスクリプト処理装置の概略構成を示すブロック図
【図２】記録時のビットマップイメージ取得処理のフローチャート
【図３】遷移順序から階層構造に変換したイメージ図
【図４】遷移順序から階層構造に変換する処理のフローチャート
【図５】階層定義処理のフロ−チャ−ト
【図６】マクロスクリプトの記述例を示す図
【図７】マクロスクリプトコマンドの説明図
【図８】マクロスクリププレビュー処理部の表示例−階層モデル化表示例を示す図
【図９】マクロスクリププレビュー処理部の表示例−画面単位の詳細表示例を示す図
【図１０】従来のマクロスクリプト処理装置の概略構成を示すブロック図
【符号の説明】
【００３１】
１１…マクロスクリプト作成処理部、１２…操作記録部、１３…ビットマップ取得部、１４…マクロスクリプトファイル、１５…マクロスクリプトプレビュー処理部、１６…マクロスクリプト解析部、１７、マクロスクリプト表示部、１８…マクロスクリプト実行処理部、１９…操作実行部、２０…操作対象アプリケーションプログラム。
【図１】
2005284926.tif 000003
【図２】
2005284926.tif 000004
【図３】
2005284926.tif 000005
【図４】
2005284926.tif 000006
【図５】
2005284926.tif 000007
【図６】
2005284926.tif 000008
【図７】
2005284926.tif 000009
【図８】
2005284926.tif 000010
【図９】
2005284926.tif 000011
【図１０】
2005284926.tif 000012