(57)【要約】【課題】情報システムのテストを効率化するための技術を提供する。【解決手段】スクリプトシート保持部３０は、テスト対象のシステムの画面を操作するためのスクリプトが記述されたスクリプトシートを保持する。データシート保持部３２は、スクリプトの実行態様を定めるデータが記述されたデータシートを保持する。シナリオシート保持部３４は、テストのシナリオを定めたシートであって、スクリプトシートとデータシートを対応付けたシナリオシートを保持する。テスト実行部４６は、シナリオシート、スクリプトシート、データシートに基づきシステムの画面を操作してテストを実行する。スクリプトシートは画面遷移数を単位として作成される。異なるテストにおいて画面遷移数が共通する場合、上記異なるテストのための複数のシナリオシートでは、共通の画面遷移数に対応する同一のスクリプトシートが指定される。【選択図】図２
2017138936.tif 000002
【特許請求の範囲】
【請求項１】
テスト対象のシステムの画面を操作するためのスクリプトが記述されたスクリプトシートを保持する第１保持部と、
前記スクリプトの実行態様を定めるデータが記述されたデータシートを保持する第２保持部と、
テストのシナリオを定めたシートであって、前記スクリプトシートと前記データシートを対応付けたシナリオシートを保持する第３保持部と、
前記シナリオシートで対応付けられたスクリプトシートとデータシートを識別し、識別したデータシートに記述されたデータにより定まる態様で、識別したスクリプトシートに記述されたスクリプトを実行させるテスト実行部と、
を備え、
前記スクリプトシートは、画面遷移数を単位として作成されたものであり、
異なるテストにおいて画面遷移数が共通する場合、前記異なるテストのための複数のシナリオシートでは、共通の画面遷移数に対応する同一のスクリプトシートが指定されることを特徴とする情報処理装置。
【請求項２】
テスト対象のシステムの画面を操作するためのスクリプトが記述されたスクリプトシートを保持する第１保持部と、
前記スクリプトの実行態様を定めるデータが記述されたデータシートを保持する第２保持部と、
テストのシナリオを定めたシートであって、前記スクリプトシートと前記データシートを対応付けたシナリオシートを保持する第３保持部と、
前記シナリオシートで対応付けられたスクリプトシートとデータシートを識別し、識別したデータシートに記述されたデータにより定まる態様で、識別したスクリプトシートに記述されたスクリプトを実行させるテスト実行部と、
を備え、
前記スクリプトシートは、複数の画面に共通する属性を単位として作成されたものであり、
テスト対象となる異なる画面間に共通する属性がある場合、前記異なる画面をテストするための複数のシナリオシートでは、前記共通する属性に対応する同一のスクリプトシートが指定されることを特徴とする情報処理装置。
【請求項３】
前記画面に対する操作が、当該画面を表示させるブラウザの種類に依存する操作を含む場合、前記スクリプトシートとして、前記ブラウザの種類に非依存の操作が記述され、画面の属性を単位として作成された第１のスクリプトシートと、前記ブラウザの種類に依存する操作が記述された第２のスクリプトシートが作成され、前記シナリオシートでは、前記第１のスクリプトシートと前記第２のスクリプトシートの両方が指定されることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
テスト対象のシステムの画面を操作するためのスクリプトが記述されたスクリプトシートを保持する第１保持部と、
前記スクリプトの実行態様を定めるデータが記述されたデータシートを保持する第２保持部と、
テストのシナリオを定めたシートであって、前記スクリプトシートと前記データシートを対応付けたシナリオシートを保持する第３保持部と、
前記シナリオシートで対応付けられたスクリプトシートとデータシートを識別し、識別したデータシートに記述されたデータにより定まる態様で、識別したスクリプトシートに記述されたスクリプトを実行させるテスト実行部と、
を備え、
前記スクリプトシートは、画面に対する操作を単位として作成されたものであり、
テスト対象となる異なる画面に対して共通の操作を実行すべき場合、前記異なる画面をテストするための複数のシナリオシートでは、前記共通の操作に対応する同一のスクリプトシートが指定されることを特徴とする情報処理装置。
【請求項５】
前記スクリプトシートには、テスト対象の画面を表示させるブラウザの種類に依存する操作が記述されることを特徴とする請求項４に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ処理技術に関し、特に情報処理装置に関する。
【背景技術】
【０００２】
情報システムの品質を保証する上で、サービス開始前のテストは不可欠である。例えば、情報システムの開発者等が情報システムのユーザインタフェースを手動操作し、その操作結果を確認することによりテストを実行することが多い。しかし、操作のバリエーションが豊富な近年の情報システムでは、手動によるテストには限界がある。
【０００３】
本出願人は、情報システムのテストを自動化し、効率的なテストを実現するための技術を提案している（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１０／１１６５８６号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１で提案する動作検証装置は、情報システムのテストにおいて、そのテストを実行する関数と、その関数へ入力するデータとを分離する。そして、関数へ入力するデータを複数パターン用意することで、様々なバリエーションのテストの自動化を実現する。以下、テストを実行する１つ以上の関数（以下「スクリプト」とも呼ぶ。）が記録されたファイルを「スクリプトシート」とも呼ぶ。本発明者は、複数の情報システム等、複数のテスト対象に対して同じスクリプトシートを適用可能にすることで、テストの一層の効率化を実現できると考えた。
【０００６】
本発明は、本発明者の上記着想に基づいてなされたものであり、主たる目的は、情報システムのテストを効率化するための技術を提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様の情報処理装置は、テスト対象のシステムの画面を操作するためのスクリプトが記述されたスクリプトシートを保持する第１保持部と、スクリプトの実行態様を定めるデータが記述されたデータシートを保持する第２保持部と、テストのシナリオを定めたシートであって、スクリプトシートとデータシートを対応付けたシナリオシートを保持する第３保持部と、シナリオシートで対応付けられたスクリプトシートとデータシートを識別し、識別したデータシートに記述されたデータにより定まる態様で、識別したスクリプトシートに記述されたスクリプトを実行させるテスト実行部と、を備える。スクリプトシートは、画面遷移数を単位として作成されたものであり、異なるテストにおいて画面遷移数が共通する場合、異なるテストのための複数のシナリオシートでは、共通の画面遷移数に対応する同一のスクリプトシートが指定される。
【０００８】
本発明の別の態様もまた、情報処理装置である。この装置は、テスト対象のシステムの画面を操作するためのスクリプトが記述されたスクリプトシートを保持する第１保持部と、スクリプトの実行態様を定めるデータが記述されたデータシートを保持する第２保持部と、テストのシナリオを定めたシートであって、スクリプトシートとデータシートを対応付けたシナリオシートを保持する第３保持部と、シナリオシートで対応付けられたスクリプトシートとデータシートを識別し、識別したデータシートに記述されたデータにより定まる態様で、識別したスクリプトシートに記述されたスクリプトを実行させるテスト実行部と、を備える。スクリプトシートは、複数の画面に共通する属性を単位として作成されたものであり、テスト対象となる異なる画面間に共通する属性がある場合、異なる画面をテストするための複数のシナリオシートでは、共通する属性に対応する同一のスクリプトシートが指定される。
【０００９】
本発明のさらに別の態様もまた、情報処理装置である。この装置は、テスト対象のシステムの画面を操作するためのスクリプトが記述されたスクリプトシートを保持する第１保持部と、スクリプトの実行態様を定めるデータが記述されたデータシートを保持する第２保持部と、テストのシナリオを定めたシートであって、スクリプトシートとデータシートを対応付けたシナリオシートを保持する第３保持部と、シナリオシートで対応付けられたスクリプトシートとデータシートを識別し、識別したデータシートに記述されたデータにより定まる態様で、識別したスクリプトシートに記述されたスクリプトを実行させるテスト実行部と、を備える。スクリプトシートは、画面に対する操作を単位として作成されたものであり、テスト対象となる異なる画面に対して共通の操作を実行すべき場合、異なる画面をテストするための複数のシナリオシートでは、共通の操作に対応する同一のスクリプトシートが指定される。
【００１０】
なお、以上の構成要素の任意の組合せ、本発明の表現を、方法、システム、コンピュータプログラム、コンピュータプログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１１】
本発明によれば、情報システムのテストの効率化を支援できる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態の企業システムの構成を示す図である。
【図２】図１のテスト装置の機能構成を示すブロック図である。
【図３】第１実施例のスクリプトシートの例を示す図である。
【図４】第１実施例のシナリオシートの例を示す図である。
【図５】第１実施例のデータシートの例を示す図である。
【図６】第１実施例のデータシートの例を示す図である。
【図７】第２実施例のスクリプトシートの例を示す図である。
【図８】第２実施例のシナリオシートの例を示す図である。
【図９】第２実施例のデータシートの例を示す図である。
【図１０】第３実施例のスクリプトシートの例を示す図である。
【図１１】第３実施例のシナリオシートの例を示す図である。
【図１２】第３実施例のデータシートの例を示す図である。
【図１３】第３実施例のデータシートの例を示す図である。
【発明を実施するための形態】
【００１３】
図１は、実施の形態の企業システム１０の構成を示す。企業システム１０は、企業に構築された情報処理システムであり、テスト対象システム１２ａ、テスト対象システム１２ｂ、テスト対象システム１２ｃ、テスト装置１４、担当者端末１６を備える。これらの装置は、ＬＡＮ・ＷＡＮ・インターネット等を含む通信網１８を介して接続される。
【００１４】
企業システム１０が構築された企業は例えば金融機関であり、テスト対象システム１２ａは株式売買システムでもよく、テスト対象システム１２ｂは債権売買システムでもよく、テスト対象システム１２ｃは顧客管理システムでもよい。テスト対象システム１２ａ、テスト対象システム１２ｂ、テスト対象システム１２ｃを特に区別しない場合、以下「テスト対象システム１２」と総称する。実施の形態のテスト対象システム１２は、クライアント端末からの要求を受け付けるためのユーザインタフェースとなるウェブページを提供するウェブサーバを備える。
【００１５】
テスト装置１４は、テスト対象システム１２のテスト（例えば総合テスト）を自動化する情報処理装置である。詳細は後述するが、実施の形態のテスト装置１４は、テスト対象システム１２のクライアント装置として動作し、テスト対象システム１２から提供されるウェブページを操作することによりテストを実行する。テスト装置１４は、表示装置であるモニタ１５と接続され、テスト対象システム１２から提供されるウェブページの画像をモニタ１５に表示させる。
【００１６】
担当者端末１６は、企業システム１０のテスト担当者により操作される情報端末である。担当者端末１６は、企業のテスト担当者により作成された後述のシナリオシート、スクリプトシート、データシートをテスト装置１４へアップロードする。
【００１７】
図２は、図１のテスト装置１４の機能構成を示すブロック図である。テスト装置１４は、制御部２０、記憶部２２、通信部２４を備える。制御部２０は、テスト装置１４の動作を制御し、例えばテスト対象システム１２をテストするためのデータ処理を実行する。記憶部２２は、制御部２０により参照され、また更新される各種データを記憶する記憶領域である。通信部２４は、通信網１８を介して外部装置と通信する。制御部２０は、通信部２４を介して外部装置とデータを送受する。
【００１８】
本明細書のブロック図で示す各ブロックは、ハードウェア的には、コンピュータのＣＰＵやメモリをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
【００１９】
例えば、制御部２０の各ブロックに対応するモジュールを備えるテスト支援アプリケーションがテスト装置１４のストレージへインストールされてもよい。テスト装置１４のＣＰＵは、制御部２０の各ブロックに対応するモジュールをメインメモリに読み出して実行することにより、それらのブロックの機能を発揮してもよい。また、記憶部２２の各機能ブロックは、テスト装置１４のストレージやメモリ等の記憶装置がデータを記憶することにより実現されてもよい。
【００２０】
記憶部２２は、スクリプトシート保持部３０、データシート保持部３２、シナリオシート保持部３４、関数保持部３６、証左物保持部３８を含む。
【００２１】
スクリプトシート保持部３０は、テスト対象のシステムの画面であり、実施の形態ではテスト対象システム１２から提供されるウェブページを操作するためのスクリプトが記述されたスクリプトシートを保持する。スクリプトは、例えばＪＡＶＡスクリプト（登録商標）により作成された関数である。スクリプトシートは、特許文献１に記載の操作内容ファイルに対応し、１つ以上のスクリプトと実行順が設定される。実施の形態では、スクリプトシートにはスクリプト名（関数名）が記述され、スクリプトの動作を定めるプログラムコードは関数保持部３６に保持されることとするが、プログラムコードがスクリプトシートに記述されてもよい。
【００２２】
データシート保持部３２は、スクリプトシートに記述されたスクリプトの実行態様を定めるデータであり、言い換えればパラメータ値が記述されたデータシートを保持する。データシートは、特許文献１に記載の入力データファイルに対応する。
【００２３】
シナリオシート保持部３４は、テストのシナリオを定めたシートであり、スクリプトシートとデータシートを対応付けたシナリオシートを保持する。具体的には、シナリオシートは、テスト対象システム１２に対するテストを構成する１つ以上の工程について、工程毎に使用するスクリプトシートとデータシートを対応付けたレコードを記録したものである。シナリオシートは、特許文献１に記載のケースファイルに対応し、スクリプトシート名とデータシート名の１つ以上の組み合わせと実行順が設定される。
【００２４】
関数保持部３６は、スクリプトシートで指定されうる複数のスクリプトのそれぞれに対応するプログラムコードを保持する。例えば、スクリプトシートで指定されうるスクリプト「ボタン（Ｙ１）押下」と対応付けて、ウェブページ上のボタン（Ｙ１）を押下する処理をウェブブラウザに実行させる内容のＪＡＶＡスクリプトプログラムを保持してもよい。
【００２５】
証左物保持部３８は、テスト対象システム１２に対するテストの結果を示す証左物データを保持する。証左物データは、後述のテスト実行部４６がブラウザ部４０に実行させた処理を逐次記録したログデータや、モニタ１５に表示されたウェブページのスクリーンショットであってもよい。
【００２６】
制御部２０は、ブラウザ部４０、指示受付部４２、プログラム生成部４４、テスト実行部４６、証左物記録部４８を含む。ブラウザ部４０は、既知のウェブブラウザの機能を発揮する。ブラウザ部４０は、スクリプトシートで指定された各スクリプトの実行エンジンを含んでもよい。
【００２７】
指示受付部４２は、キーボードやマウス等の入力装置（不図示）から入力され、また、担当者端末１６から通信網１８を介して入力された指示を受け付ける。実施の形態では、指示受付部４２は、シナリオシート保持部３４に格納された特定のシナリオシートを指定したテスト開始指示を受け付ける。以下、テスト開始指示で指定されたシナリオシートを「特定シナリオシート」とも呼ぶ。
【００２８】
テスト実行部４６は、特許文献１に記載のプログラム実行部１３４に対応する。テスト実行部４６は、特定シナリオシートで対応付けられたスクリプトシートとデータシートを識別し、識別したデータシートに記述されたデータにより定まる態様で、識別したスクリプトシートに記述されたスクリプトをブラウザ部４０に実行させる。これにより、ブラウザ部４０により表示されたウェブページに対する操作を自動化し、テスト対象システム１２に対するテストを自動実行する。このテスト実行機能は、特許文献１に記載された方法等、既知の方法により実現されてもよい。以下では、プログラム生成部４４とテスト実行部４６の連携によりテスト実行機能を実現する例を示す。
【００２９】
プログラム生成部４４は、特許文献１に記載のプログラム生成部１３２に対応する。プログラム生成部４４は、特定シナリオシートと、その特定シナリオシートで指定されたスクリプトシートにしたがって、テスト用プログラムを生成する。このテスト用プログラムは、テスト実行部４６により実行可能な予め定められた形式のプログラムである。
【００３０】
具体的には、プログラム生成部４４は、特定シナリオシートで指定されたスクリプトシートに記録された１つ以上のスクリプトについて、各スクリプトに対応付けられたプログラムコードを関数保持部３６から取得し、スクリプトシートで指定された実行順に、テスト用プログラムのコードに設定してもよい。また、特定シナリオシートで複数のスクリプトシートが指定されている場合、各スクリプトシートに記録されたスクリプトのプログラムコードを、特定シナリオシートで指定された実行順に、テスト用プログラムのコードに設定してもよい。
【００３１】
プログラム生成部４４は、スクリプトシートにおいてスクリプトのパラメータが、データシートの参照を示す所定の形式で記述されている場合、特定シナリオシートにて対応付けられたデータシートからテスト実行時に当該パラメータ値を取得するようにテスト用プログラムを設定する。
【００３２】
テスト実行部４６は、プログラム生成部４４により生成されたテスト用プログラムを実行する。具体的には、テスト用プログラムに設定された各スクリプト用のプログラムコードをブラウザ部４０に実行させる。テスト実行部４６は、ブラウザ部４０（ウェブブラウザ）に予め実装されたＡＰＩ（Application Programming Interface）であり、外部のプログラムから呼び出し可能なＡＰＩをコールすることにより、そのＡＰＩを介して各スクリプトが規定する動作をブラウザ部４０に実行させてもよい。
【００３３】
テスト実行部４６は、テスト用プログラムにおいてスクリプトのパラメータ値をデータシートから取得することが指定されている場合、データシートに記録されたパラメータ値を取得し、当該スクリプト用のプログラムコードにパラメータ値を動的に設定した上でブラウザ部４０に実行させる。言い換えれば、テスト実行部４６は、データシートから動的に取得したパラメータ値により定まる態様でスクリプトをブラウザ部４０に実行させる。
【００３４】
証左物記録部４８は、テスト対象システム１２に対するテストの開始から終了までの間に、当該テストの証左物を証左物保持部３８へ逐次記録する。例えば、証左物記録部４８は、テスト実行部４６がブラウザ部４０に対して行った個々の操作（言い換えればウェブページに対する個々の操作）を示すログを証左物保持部３８へ記録してもよい。また証左物記録部４８は、ブラウザ部４０がモニタ１５にウェブページを表示させた時点等、画面の表示や更新に関する予め定められたタイミングで、画面（ウェブページ）のスクリーンショットを取得し証左物保持部３８へ格納してもよい。なお、スクリーンショットの記録を指示するスクリプトが明示的にスクリプトシートに設定された場合、そのスクリプトの実行タイミングで、画面のスクリーンショットを記録してもよい。
【００３５】
テスト装置１４の動作を説明する。まず、企業のテスト担当者は、担当者端末１６でシナリオシート、スクリプトシート、データシートを作成し、これらのシートを担当者端末１６からテスト装置１４へ登録する。企業のテスト担当者がテスト開始指示をテスト装置１４へ入力すると、テスト装置１４のテスト実行部４６は、シナリオシート、スクリプトシート、データシートにしたがって、テスト対象システム１２に対する自動テストを実行する。テスト装置１４の証左物記録部４８は、自動テストの証左物を証左物保持部３８に格納する。企業の担当者は、証左物保持部３８に格納された証左物を確認して、テスト対象システム１２に対するテストの成否、例えば、テスト対象システム１２が仕様通りに動作しているかを確認する。
【００３６】
このように、情報システムのテストにおいて、そのテストを実行するスクリプトと、そのスクリプトへ入力するデータとを分離しておき、複数パターンのテストに対応する複数パターンのデータシートを用意することで、様々なパターンのテストの自動化を実現できる。
【００３７】
ところで、テスト装置１４によるテスト結果がテスト対象システム１２の状態を正確に反映するためには、スクリプトシートの内容と、スクリプトシートで指定されるスクリプト（関数保持部３６に保持されるプログラム）に誤りがないことが前提になる。本発明者は、異なるテスト間でスクリプトシートの再利用が可能であれば、スクリプトシートの新規作成が不要になることに加えて、スクリプトシートとスクリプトの正常性確認が不要になり、テストの一層の効率化を実現できると考えた。
【００３８】
以下では、情報システムのテストの一層の効率化を実現する技術として、複数のテスト対象に対して同じスクリプトシートの利用を可能にする技術を第１実施例〜第３実施例として説明する。
【００３９】
＜第１実施例＞
第１実施例では操作単位にスクリプトシートを共通化し、スクリプトシートの再利用を可能にする。第１実施例のスクリプトシートは、画面に対する操作を単位として作成される。ウェブページを表示させるブラウザ部４０に対する操作を単位としてスクリプトシートが作成されるとも言え、ブラウザ部４０により表示されるウェブページに対する操作を単位としてスクリプトシートが作成されるとも言える。
【００４０】
図３は、第１実施例のスクリプトシートの例を示す。図３の（ａ）〜（ｆ）は、ブラウザ起動や入力データ設定、ボタン押下等、テストで実行すべき個々の操作単位に作成された６つのスクリプトシートを示している。例えば、図３の（ａ）の「ブラウザ起動」スクリプトシートでは、データシートのパラメータ名「Ｘ」で指定されるウェブブラウザを起動し、起動したウェブブラウザに、データシートのパラメータ名「Ｚ」で指定されるウェブページを表示させることが規定されている。典型的には、１つのスクリプトシートあたり１つのスクリプトが設定されるが、図３の（ａ）のように密接な関係がある操作の場合、１つのスクリプトシートに複数のスクリプトが設定されてもよい。
【００４１】
図４は、第１実施例のシナリオシートの例を示す。図４のシナリオシートでは、図３の（ａ）→（ｂ）→（ｃ）→（ｄ）→（ｂ）→（ｅ）→（ｆ）→（ｃ）→（ｃ）の順に、各スクリプトシートによるテストを実行することが規定されている。また図４のシナリオシートでは、各スクリプトシート名に対応付けて、スクリプトのパラメータ値が記録されたデータシート名が規定される。
【００４２】
図５と図６は、第１実施例のデータシートの例を示す。図５の（ａ）〜（ｆ）では、図４のシナリオシートで指定された６つのデータシートである「データ１−１」、「データ２−１」、「データ２−２」、「データ３−１」、「データ３−２」、「データ３−３」を示している。また、図６の（ａ）〜（ｃ）では、図４のシナリオシートで指定された３つのデータシートである「データ４−１」、「データ５−１」、「データ６−１」を示している。
【００４３】
図３〜図６で示した各シートに基づく自動テストの動作を説明する。図３〜図６で示した各シートはテスト装置１４の記憶部２２に格納され、テスト装置１４のテスト実行部４６は次のようなテスト処理を自動実行する。
【００４４】
ここでは、図４のシナリオシートに記載の実行順を示しつつ説明する。（１）ウェブブラウザＡＡＡを起動し、ログイン画面のウェブページをモニタ１５に表示させる。（２）ログイン画面のウェブページにログインＩＤとパスワードを設定し、（３）ログインボタンを押下する。（４）ログイン後の画面のウェブページに設けられた「注文画面へ」のリンクを押下する。（５）注文画面のウェブページに対して銘柄コード等を入力し、（６）プルダウンメニューで３番目の値を選択し、（７）ラジオボタンで１番目の値を選択する。（８）注文画面のウェブページで注文確認ボタンを押下し、（９）注文確認画面のウェブページで注文完了ボタンを押下する。
【００４５】
第１実施例では、テスト対象となる互いに異なる複数の画面において共通の操作を実行すべき場合、それら複数の画面をテストするための複数のシナリオシートでは、共通の操作に対応する同一のスクリプトシートが指定される。例えば、テスト対象システム１２ａが提供する株式売買注文機能と株式売買取消機能のそれぞれをテストすべき場合に、入力データ設定、ボタン押下、プルダウン選択等の共通の操作があれば、株式売買注文機能をテストするためのシナリオシートと、株式売買取消機能をテストするためのシナリオシートでは共通の操作を規定する同一のスクリプトシートが指定される。テスト対象システム１２ａが提供する株式売買注文機能と、テスト対象システム１２ｂが提供する債権売買注文機能のテストにおいて画面に対する共通操作がある場合も同様である。
【００４６】
第１実施例によると、異なるテスト間でのスクリプトシートの再利用が可能になる。スクリプトシートを再利用する場合、スクリプトシートとスクリプトの正常性は予め別のテストで担保されている。そのため、スクリプトシートの新規作成が不要になることに加えて、スクリプトシートとスクリプトの正常性確認が不要になり、テストの効率化を実現できる。また、信頼性が高いテスト結果を得ることができる。
【００４７】
また第１実施例におけるシナリオシートとスクリプトシートの設定態様（シナリオシートとスクリプトシートのデータ構造とも言え、役割分担とも言える）は、ウェブページ等の画面に対する固有処理が必要なシステムテストの効率化に特に有効である。画面に対する固有処理は、例えば、テキストフィールドへの文字入力や、プルダウンメニューの選択、ラジオボタンの選択等、多くの種類のデータ入力処理を含む。
【００４８】
また第１実施例では、ブラウザソフト（例えばウェブブラウザ）に依存度が高い操作単位でスクリプトシートが分かれるため、ブラウザ別の動作の共通化にも対応が容易になる。具体的には、スクリプトシートには、テスト対象のウェブページを表示させるブラウザの種類に依存する操作が記述されてもよい。ブラウザの種類に依存する操作は、例えば、ブラウザの種類毎に異なるスクリプトを使用すべき操作を含む。このスクリプトシートには、テスト装置１４によるテストで使用されるブラウザの種類をテスト実行時に動的に取得し、条件分岐等によりブラウザの種類に応じたスクリプトを選択するプログラムコードが設定されてもよい。
【００４９】
テスト実行部４６は、テスト実行時に、スクリプトシートに記述された複数のスクリプトの中から、ウェブページを表示させるブラウザの種類に対応するスクリプトを識別し、そのスクリプトを当該ブラウザに実行させてもよい。これにより、シナリオシートの作成では、実際にブラウザに実行させるスクリプトを意識することなく、操作に対応するスクリプトシートを記述すればよく、テストの一層の効率化を実現できる。
【００５０】
＜第２実施例＞
第２実施例では画面遷移単位にスクリプトシートを共通化し、スクリプトシートの再利用を可能にする。第２実施例のスクリプトシートは、テスト対象システム１２のテストにおける画面遷移回数、例えばあるウェブページがブラウザ部４０により表示された状態から別のウェブページがブラウザ部４０により表示された状態へ切り替わる回数を単位として作成される。
【００５１】
図７は、第２実施例のスクリプトシートの例を示す。図７の（ａ）は画面遷移２回用のスクリプトシートを示し、図７の（ｂ）は画面遷移３回用のスクリプトシートを示している。例えば、図７の（ａ）のスクリプトシートでは、（１）パラメータで指定されたブラウザを起動し、（２）パラメータで指定されたウェブページを表示し、（３）ウェブページの入力項目に対してパラメータで指定された値をセットし、（４）パラメータで指定されたウェブページのボタンを押下する、ことが規定されている。このうち（２）と（４）の操作にて画面遷移が発生し、合計２回の画面遷移がなされる。同様に図７の（ｂ）のスクリプトシートでは合計３回の画面遷移がなされる。
【００５２】
図８は、第２実施例のシナリオシートの例を示す。図８のシナリオシートでは、図７の（ａ）→（ｃ）→（ｂ）の順に、各スクリプトシートによるテストを実行することが規定されている。また、図８のシナリオシートでは、各スクリプトシート名に対応付けて、スクリプトのパラメータ値が記録されたデータシート名が規定される。
【００５３】
図９は、第２実施例のデータシートの例を示す。図９の（ａ）〜（ｃ）では、図８のシナリオシートで指定された３つのデータシートである「データ１−１」、「データ２−１」、「データ３−１」を示している。
【００５４】
図７〜図９で示した各シートに基づく自動テストの動作を説明する。図７〜図９で示した各シートはテスト装置１４の記憶部２２に格納され、テスト装置１４のテスト実行部４６は次のようなテスト処理を自動実行する。
【００５５】
まず、シナリオシートの実行順１の「画面遷移２用スクリプト」と「データ１−１」にしたがって、（１）ウェブブラウザＡＡＡを起動し、（２）ログイン画面のウェブページをモニタ１５に表示させる。（３）ログイン画面のウェブページにログインＩＤとパスワードを設定し、（４）ログインボタンを押下する。次に、シナリオシートの実行順２の「リンク用スクリプト」と「データ３−１」にしたがって、（５）ログイン後の画面のウェブページに設けられた「注文画面へ」のリンクを押下する。
【００５６】
次に、シナリオシートの実行順３の「画面遷移３用スクリプト」と「データ２−１」にしたがって、（６）ウェブブラウザＢＢＢを起動し、（７）株式注文画面のウェブページをモニタ１５に表示させる。そして、（８）株式注文画面のウェブページに対して銘柄コード等を入力し、（９）注文確認ボタンを押下し、（１０）注文完了ボタンを押下する。
【００５７】
第２実施例では、異なる複数のテストにおいて画面遷移数が共通する場合、異なる複数のテストのための複数のシナリオシートでは、共通の画面遷移数に対応する同一のスクリプトシートが指定される。例えば、テスト対象システム１２ａが提供する株式売買注文機能に対するテストにおいて自動操作対象となるウェブページの遷移回数を２回とし、同じテスト対象システム１２ａが提供する株式売買取消機能に対するテストにおいて自動操作の対象となるウェブページの遷移回数も２回とする。この場合、株式売買注文機能のテスト用のシナリオシートと、株式売買取消機能のテスト用のシナリオシートの両方で、画面遷移２回に対応する同一のスクリプトシート（例えば図７の（ａ）のスクリプトシート）が指定される。
【００５８】
また、テスト対象システム１２ａに対するテストにおいて自動操作の対象となるウェブページの遷移回数を３回とし、テスト対象システム１２ｂに対するテストにおいて自動操作の対象となるウェブページの遷移回数も３回とする。この場合、テスト対象システム１２ａのテスト用のシナリオシートと、テスト対象システム１２ｂのテスト用のシナリオシートの両方で、画面遷移３回に対応する同一のスクリプトシート（例えば図７の（ｂ）のスクリプトシート）が指定される。
【００５９】
このように、異なるテスト間でスクリプトシートを共通化することにより、第１実施例と同様に、テスト毎のスクリプトシートの新規作成が不要になることに加えて、スクリプトシートとスクリプトの正常性確認が不要になり、テストの効率化を実現できる。また、信頼性が高いテスト結果を得ることができる。
【００６０】
また第２実施例に示すシナリオシートとスクリプトシートの設定態様は、異なる複数のテスト間で画面遷移数が共通し（言い換えれば画面遷移数の種類が少なく）、また、各テストにおいて画面に対して共通の操作を実行すべき場合のテスト効率化に特に有効である。さらに、シナリオシートのレコード量が少なくなり、データシートにパラメータ情報を集約するため保守が容易になる。例えば、シナリオシートの信頼性も高まり、また、異なるテスト間でのシナリオシートの再利用も可能になる。
【００６１】
変形例を説明する。テスト対象の画面（ウェブページ）に対する操作が、その画面を表示させるブラウザの種類に依存する操作を含む場合、ブラウザの種類に非依存の操作が記述され、かつ画面遷移数を単位として作成された第１のスクリプトシートと、ブラウザの種類に依存する操作が記述された第２のスクリプトシートが作成されてもよい。この場合、シナリオシートには、第１のスクリプトシートと第２のスクリプトシートの両方が指定されてもよい。第２のスクリプトシートは、第１実施例に記載した操作単位のスクリプトシートに対応する。
【００６２】
例えば、図７〜図９の例において、第１実施例と同様に、ウェブブラウザの種類に依存する操作を記述した第２のスクリプトシートである「ブラウザ依存操作用スクリプト」をさらに作成したとする。また、「画面遷移２用スクリプト」の実行後、「リンク用スクリプト」の実行前に、ログイン後の画面にてウェブブラウザの種類に依存する操作を実行すべきこととする。この場合、シナリオシートでは、実行順１で「画面遷移２用スクリプト」、実行順２で「ブラウザ依存操作用スクリプト」、実行順３で「リンク用スクリプト」、実行順４で「画面遷移３用スクリプト」が指定される。
【００６３】
この変形例によると、ブラウザソフト（例えばウェブブラウザ）依存の高い操作については、操作単位でスクリプトシートを作成することにより、第１実施例と同様に、ブラウザ別の動作の共通化が容易になる。また、第１のスクリプトシートからブラウザソフト依存の高い操作を排除でき、画面遷移回数を単位とする第１のスクリプトシートの再利用性を高めることができる。
【００６４】
＜第３実施例＞
第３実施例では画面の属性単位にスクリプトシートを共通化し、スクリプトシートの再利用を可能にする。第３実施例のスクリプトシートは、複数の画面に共通する属性を単位として作成される。
【００６５】
複数の画面は、１つのテスト対象システム１２の複数種類の機能（例えばテスト対象システム１２ａの株式売買注文機能と株式売買取消機能等）が提供する複数のウェブページであってもよい。また、異なる複数のテスト対象システム１２（例えばテスト対象システム１２ａとテスト対象システム１２ｂ）が提供する複数のウェブページであってもよい。画面の属性は、画面内の構成・特徴とも言え、１つの画面が受け付ける操作の特徴とも言える。例えば、特定のフォームの有る無し、またフォームアクションの有る無しについてそれぞれに対応するスクリプトシートが作成されてもよい。
【００６６】
図１０は、第３実施例のスクリプトシートの例を示す。図１０の（ａ）は、フォーム（例えばテキストフィールド）へのデータ入力があるスクリプトシート「入力有り用スクリプト」を示している。また、図１０（ｂ）は、フォームへのデータ入力がないスクリプトシート「入力無し用スクリプト」を示している。例えば、図１０の（ａ）のスクリプトシートでは、（１）パラメータで指定されたブラウザを起動し、（２）パラメータで指定されたウェブページを表示し、（３）ウェブページの入力項目に対してパラメータで指定された値をセットし、（４）パラメータで指定されたウェブページのボタンを押下する、ことが規定されている。
【００６７】
図１１は、第３実施例のシナリオシートの例を示す。図１１のシナリオシートでは、図１０の（ａ）→（ｃ）→（ａ）→（ｂ）→（ａ）→（ｂ）の順に、各スクリプトシートによるテストを実行することが規定されている。シナリオシートの実行順１、実行順３、実行順５で操作対象になるウェブページはいずれもデータ入力が必要であるため、「入力有り用スクリプト」が指定されている。その一方、シナリオシートの実行順４、実行順６で操作対象になるウェブページはいずれもデータ入力が不要であるため、「入力無し用スクリプト」が指定されている。また、図１１のシナリオシートでは、各スクリプトシート名に対応付けて、スクリプトのパラメータ値が記録されたデータシート名が規定される。
【００６８】
図１２および図１３は、第３実施例のデータシートの例を示す。図１２の（ａ）〜（ｃ）では、図１１のシナリオシートで指定された３つのデータシート「データ１−１」、「データ１−２」、「データ１−３」を示している。図１３の（ａ）〜（ｃ）では、図１１のシナリオシートで指定された３つのデータシート「データ２−１」、「データ２−２」、「データ３−１」を示している。
【００６９】
図１０〜図１３で示した各シートに基づく自動テストの動作を説明する。図１０〜図１３で示した各シートはテスト装置１４の記憶部２２に格納され、テスト装置１４のテスト実行部４６は次のようなテスト処理を自動実行する。
【００７０】
まず、シナリオシートの実行順１の「入力有り用スクリプト」と「データ１−１」にしたがって、（１）ウェブブラウザＡＡＡを起動し、（２）ログイン画面のウェブページをモニタ１５に表示させる。（３）ログイン画面のウェブページにログインＩＤとパスワードを設定し、（４）ログインボタンを押下する。次に、シナリオシートの実行順２の「リンク用スクリプト」と「データ３−１」にしたがって、（５）ログイン後の画面のウェブページに設けられた「注文画面へ」のリンクを押下する。
【００７１】
次に、シナリオシートの実行順３の「入力有り用スクリプト」と「データ１−２」にしたがって、（６）株式注文画面のウェブページをモニタ１５に表示させる。（７）株式注文画面のウェブページに対して銘柄コード等を入力し、（８）注文確認ボタンを押下する。なお「データ１−２」で示すように、データシートにおいてパラメータ値が未設定（図中のＮ／Ａ）のスクリプトの実行は抑制する。次に、シナリオシートの実行順４の「入力無し用スクリプト」と「データ２−１」にしたがって、（９）注文確認画面のウェブページの戻るボタンを押下する。これにより株式注文画面が再度表示される。
【００７２】
次に、シナリオシートの実行順５の「入力有り用スクリプト」と「データ１−３」にしたがって、（１０）株式注文画面のウェブページに対して銘柄コード等を再入力し、（１１）注文確認ボタンを押下する。次に、シナリオシートの実行順６の「入力無し用スクリプト」と「データ２−２」にしたがって、（１２）注文確認画面のウェブページの注文完了ボタンを押下する。
【００７３】
第３実施例では、テスト対象となる互いに異なる複数の画面間に共通する属性がある場合、それら複数の画面をテストするための複数のシナリオシートでは、共通する属性に対応する同一のスクリプトシートが指定される。例えば、テスト対象システム１２ａが提供する株式売買注文機能に対するテストにおいて自動操作対象となるウェブページのフォームへのデータ入力が必要であり、同じテスト対象システム１２ａが提供する株式売買取消機能に対するテストにおいて自動操作対象となるウェブページでもフォームへのデータ入力が必要であるとする。この場合、株式売買注文機能のテスト用のシナリオシートと、株式売買取消機能のテスト用のシナリオシートの両方で、データ入力に対応する同一のスクリプトシート（例えば図１０の（ａ）のスクリプトシート）が指定される。
【００７４】
また、テスト対象システム１２ａに対するテストにおいて自動操作対象となるウェブページのフォームへのデータ入力が必要であり、テスト対象システム１２ｂに対するテストにおいて自動操作対象となるウェブページでもフォームへのデータ入力が必要であるとする。この場合、テスト対象システム１２ａのテスト用のシナリオシートと、テスト対象システム１２ｂのテスト用のシナリオシートの両方で、データ入力に対応する同一のスクリプトシート（例えば図１０の（ａ）のスクリプトシート）が指定される。
【００７５】
このように異なるテスト間でスクリプトシートを共通化することにより、第１実施例と同様に、テスト毎のスクリプトシートの新規作成が不要になることに加えて、スクリプトシートとスクリプトの正常性確認が不要になり、テストの効率化を実現できる。また、信頼性が高いテスト結果を得ることができる。第３実施例に示すシナリオシートとスクリプトシートの設定態様は、異なる複数のテスト間で画面単位の固有処理が少なく、また、それぞれのテストにおいて画面に対して共通の操作を実行すべき場合のテスト効率化に特に有効である。
【００７６】
変形例を説明する。テスト対象の画面（ウェブページ）に対する操作が、その画面を表示させるブラウザの種類に依存する操作を含む場合、ブラウザの種類に非依存の操作が記述され、かつ画面の属性を単位として作成された第１のスクリプトシートと、ブラウザの種類に依存する操作が記述された第２のスクリプトシートが作成されてもよい。この場合、シナリオシートには、第１のスクリプトシートと第２のスクリプトシートの両方が指定されてもよい。第２のスクリプトシートは、第１実施例に記載した操作単位のスクリプトシートに対応する。
【００７７】
例えば、図１０〜図１３の例において、第１実施例と同様に、ウェブブラウザの種類に依存する操作を記述した第２のスクリプトシートである「ブラウザ依存操作用スクリプト」をさらに作成したとする。また、ログイン後の画面にてウェブブラウザの種類に依存する操作を実行すべきこととする。この場合、シナリオシートでは、実行順２に「ブラウザ依存操作用スクリプト」が記述され、図１１における実行順２以降の内容は、実行順３以降に記述される。
【００７８】
この変形例によると、ブラウザソフト（例えばウェブブラウザ）依存の高い操作については、操作単位でスクリプトシートを作成することにより、第１実施例と同様に、ブラウザ別の動作の共通化が容易になる。また、第１のスクリプトシートからブラウザソフト依存の高い操作を排除でき、画面の属性を単位とする第１のスクリプトシートの再利用性を高めることができる。
【００７９】
別の変形例を説明する。第２実施例で示したスクリプトシートの態様と、第３実施例で示したスクリプトシートの態様の組み合わせも有用である。すなわち、画面遷移回数と画面属性の組み合わせを単位としてスクリプトシートが作成されてもよい。例えば、図７の（ａ）に示すスクリプトシートを、２回の画面遷移と入力有りに対応する第１のスクリプトシートとして作成してもよい。また、図７の（ａ）に示すスクリプトシートから実行順序３のデータ入力操作を除外したスクリプトシートを２回の画面遷移と入力無しに対応する第２のスクリプトシートとして作成してもよい。同様に、図７の（ｂ）に示すスクリプトシートを、３回の画面遷移と入力有りに対応する第３のスクリプトシートとして作成してもよい。また、図７の（ｂ）に示すスクリプトシートから実行順序３のデータ入力操作を除外したスクリプトシートを３回の画面遷移と入力無しに対応する第４のスクリプトシートとして作成してもよい。
【００８０】
異なる複数のテスト対象における画面遷移回数と画面属性の組み合わせが一致する場合、複数のテスト対象のための複数のシナリオシートでは、同一のスクリプトシート（上記の第１〜第４のスクリプトシート）が指定されてよい。この変形例によると、スクリプトシートの再利用性を一層高め、テストの一層の効率化を実現しやすくなる。
【００８１】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００８２】
請求項に記載の各構成要件が果たすべき機能は、実施の形態および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。
【符号の説明】
【００８３】
１４  テスト装置、  ３０  スクリプトシート保持部、  ３２  データシート保持部、  ３４  シナリオシート保持部、  ４０  ブラウザ部、  ４４  プログラム生成部、  ４６  テスト実行部。
【図１】
2017138936.tif 000003
【図２】
2017138936.tif 000004
【図３】
2017138936.tif 000005
【図４】
2017138936.tif 000006
【図５】
2017138936.tif 000007
【図６】
2017138936.tif 000008
【図７】
2017138936.tif 000009
【図８】
2017138936.tif 000010
【図９】
2017138936.tif 000011
【図１０】
2017138936.tif 000012
【図１１】
2017138936.tif 000013
【図１２】
2017138936.tif 000014
【図１３】
2017138936.tif 000015