(57)【要約】  本発明の目的は、特定の自動テストスクリプトを、アプリケーション状態（状態情報）、外部交信シーケンス（制御フロー情報）、及び入力データを含むテストケース表現モデルに基づく抽象テストケース表現に変換するための方法、及びシステムを提供することである。
2007519105.tif 000002
【特許請求の範囲】
【請求項１】
１又はそれ以上の言語で書かれたテストケースを移入するステップと、
テストケースを、アプリケーション状態、外部交信シーケンス、及び入力データを含む抽象表現に変換するステップと、
テストケースの抽象表現を、データベースシステム内に格納するステップと
を含むことを特徴とする、テストケースを変換するための方法。
【請求項２】
アプリケーション状態は、外部交信の状況を定める、テスト中のアプリケーションの実行時スナップショットを表す
ことを特徴とする、請求項１に記載の方法。
【請求項３】
前記アプリケーション状態は、アプリケーションオブジェクトのセット、その属性、及び属性値を含む
ことを特徴とする、請求項２に記載の方法。
【請求項４】
テストケースに対応する前記アプリケーション状態は、階層式に配置される
ことを特徴とする、請求項２に記載の方法。
【請求項５】
前記データベースシステムは、リレーショナルデータベース管理システムである
ことを特徴とする、請求項２に記載の方法。
【請求項６】
前記データベースシステムは、ＸＭＬデータベース管理システムである
ことを特徴とする、請求項２に記載の方法。
【請求項７】
前記スクリプト言語は、テストケースを記録、又は作成するために使用される型付けされた、或いは型付けされないプログラミング言語とすることができる
ことを特徴とする、請求項２に記載の方法。
【請求項８】
前記外部交信シーケンスは、アプリケーションオブジェクト上で外部エージェントによって起動されるイベントを表す
ことを特徴とする、請求項２に記載の方法。
【請求項９】
前記外部エージェントは、人間エージェントか、或いは他のソフトウェアエージェントか、のいずれかとすることができる
ことを特徴とする、請求項８に記載の方法。
【請求項１０】
前記交信シーケンスは、順次の、同時の、ループの、及び条件付きの交信を捕らえるためのフロー制御構造を含む
ことを特徴とする、請求項８に記載の方法。
【請求項１１】
入力スクリプトについて、構文解析器を実装するステップ
をさらに含むことを特徴とする、請求項２に記載の方法。
【請求項１２】
前記構文解析器は、各スクリプト言語について１つ実装される
ことを特徴とする、請求項１１に記載の方法。
【請求項１３】
前記構文解析器は、拡張バッカス記法（ＥＢＮＦ）で規定される構文解析のルールを利用する
ことを特徴とする、請求項１２に記載の方法。
【請求項１４】
前記構文解析は、抽象構文木（ＡＳＴ）の形でパーズ木を生成する
ことを特徴とする、請求項１２に記載の方法。
【請求項１５】
前記抽象構文木を、アプリケーションオブジェクトモデル（ＡＯＭ）に基づく抽象テストケース表現に変換する意味解析を実施するステップ
をさらに含むことを特徴とする、請求項２に記載の方法、
【請求項１６】
前記意味解析は、抽象構文木として表された前記テストケースを、アプリケーション状態、外部交信シーケンス、及び入力データに分解する
ことを特徴とする、請求項１５に記載の方法。
【請求項１７】
アプリケーションオブジェクトモデルは、テスト中のアプリケーションをモデル化するためのメタデータ表現である
ことを特徴とする、請求項１５に記載の方法。
【請求項１８】
前記メタデータ表現は、アプリケーションオブジェクトにおけるオブジェクト型定義を含む
ことを特徴とする、請求項１７に記載の方法。
【請求項１９】
前記メタデータ表現は、各アプリケーションオブジェクト型における属性定義を含む
ことを特徴とする、請求項１７に記載の方法。
【請求項２０】
前記メタデータ表現は、各アプリケーションオブジェクト型でサポートされる方法、及びイベントの定義を含む
ことを特徴とする、請求項１７に記載の方法。
【請求項２１】
前記メタデータ表現は、イベントのアプリケーション状態への影響の定義を含む
ことを特徴とする、請求項１７に記載の方法。
【請求項２２】
アプリケーションオブジェクト型定義は、各アプリケーションオブジェクト型の、階層型、コンテナ型、及び単純型への更なるカテゴリ分類を含む
ことを特徴とする、請求項１８に記載の方法。
【請求項２３】
前記階層オブジェクト型は、それ自身のアプリケーション状態と関連付けられ；
他のオブジェクトのインスタンスを含み得るアプリケーションオブジェクト型は、コンテナ型と呼ばれる
ことを特徴とする、請求項２２に記載の方法。
【請求項２４】
階層アプリケーションオブジェクト型と関連付けられる前記状態は、モーダルなアプリケーション状態、又は非モーダルなアプリケーション状態である
ことを特徴とする、請求項２３に記載の方法。
【請求項２５】
モーダルなアプリケーション状態は、現在の前記アプリケーション状態内で利用可能なアプリケーションオブジェクトインスタンスへの可能な交信を制限する
ことを特徴とする、請求項２４に記載の方法。
【請求項２６】
前記イベントのアプリケーション状態への影響は、前記イベントの前記アプリケーション状態への１又はそれ以上の結果を捕らえる
ことを特徴とする、請求項２２に記載の方法。
【請求項２７】
イベントの結果は、所定の型の新しいオブジェクトインスタンスの作成、所定の型のオブジェクトインスタンスの削除、既存のオブジェクトインスタンスの属性の変更、及びオブジェクト型のインスタンスの選択、から選ばれる
ことを特徴とする、請求項２６に記載の方法。
【請求項２８】
階層的な型のオブジェクトの新しいインスタンスの作成は、新しいアプリケーション状態の作成という結果になる
ことを特徴とする、請求項２７に記載の方法。
【請求項２９】
階層的な型のオブジェクトインスタンスの選択は、該オブジェクトインスタンスと関連付けられる前記アプリケーション状態の選択という結果になる
ことを特徴とする、請求項２７に記載の方法。
【請求項３０】
前記テストケースの前記抽象表現を、アプリケーションメタデータレポジトリからの情報で拡充するステップ
を更に含むことを特徴とする、請求項２に記載の方法。
【請求項３１】
テストケースの抽象表現の前記拡充は、入力テストスクリプトにおいて欠けている前記テストケースと関連付けられるアプリケーションオブジェクトのそれらの属性についての値を抜き出すことを含む
ことを特徴とする、請求項３０に記載の方法。
【請求項３２】
テストケースの前記抽象表現を拡充するステップは、それらの記録、又は作成環境からのテストケースの切り離しを含む
ことを特徴とする、請求項３０に記載の方法。
【請求項３３】
テストケースの前記抽象表現を拡充するステップは、アプリケーションメタデータ表現内で安定している属性の使用を可能にする
ことを特徴とする、請求項３０に記載の方法。
【請求項３４】
前記アプリケーションの場所に基づいて変化し得るユーザインターフェース内の同じオブジェクトを表すのに使用されるラベルではなく、前記アプリケーションメタデータレポジトリ内の所定のオブジェクトにおける識別フィールドを使用することは、テストケースの再利用性を高める
ことを特徴とする、請求項３３に記載の方法。
【請求項３５】
識別フィールドを使用することは、異なる属性を使って同じアプリケーションオブジェクトを識別する、という異なるテスト実行環境の問題を克服することを可能にする
ことを特徴とする、請求項３３に記載の方法。
【請求項３６】
テストケースの前記抽象表現を拡充するステップは、テスト実行環境独立であるテストケースの表現を可能にする
ことを特徴とする、請求項３５に記載の方法。
【請求項３７】
アプリケーションオブジェクト属性、及び入力データを、外部交信シーケンスから切り離して、自動パラメータ化を提供するステップ
をさらに含むことを特徴とする、請求項２に記載の方法。
【請求項３８】
１又はそれ以上のスクリプト言語で書かれたテストケースを移入するためのプロセッサと、
テストケースを、アプリケーション状態、外部交信シーケンス、及び入力データを含む抽象表現に変換するためのロジックと、
テストケースの抽象表現を格納するデータベースと
を備えることを特徴とする、テストケースを変換するためのシステム。
【請求項３９】
入力スクリプトについての構文解析器、
をさらに備えることを特徴とする、請求項３８に記載のシステム。
【請求項４０】
抽象構文木を、アプリケーションオブジェクトモデル（ＡＯＭ）に基づく抽象テストケース表現に変換する意味解析を実施するためのロジック、
をさらに備えることを特徴とする、請求項３８に記載のシステム。
【請求項４１】
階層的な型のオブジェクトインスタンスを選択して、該オブジェクトインスタンスと関連付けられる前記アプリケーション状態の選択という結果になるためのロジック、
をさらに備えることを特徴とする、請求項３８に記載のシステム。
【請求項４２】
テストケースの前記抽象表現を拡充して、テスト実行環境独立であるテストケースの表現を可能にするためのロジック、
をさらに備えることを特徴とする、請求項３８に記載のシステム。
【請求項４３】
プロセッサと、
テストケースを、アプリケーション状態、外部交信シーケンス、及び入力データを含む抽象表現に変換するために、前記プロセッサによって実行可能なプログラム命令を格納する、前記プロセッサに結合されたメモリと、
テストケースの抽象表現を格納するデータベースと
を備えることを特徴とする、コンピュータシステム。
【請求項４４】
入力スクリプトについての構文解析器
をさらに備えることを特徴とする、請求項４３に記載のシステム。
【請求項４５】
前記構文解析器が、パーズ木を抽象構文木（ＡＳＴ）の形で生成する
ことを特徴とする、請求項４４に記載のシステム。
【請求項４６】
意味解析を実施し、前記ＡＳＴを、アプリケーションオブジェクトモデル（ＡＯＭ）に基づく抽象テストケース表現に変換するロジック
を更に備えることを特徴とする、請求項４５に記載のおシステム。
【請求項４７】
前記抽象テストケース表現を、アプリケーションメタデータレポジトリからの情報で拡充するためのロジック
を更に備えることを特徴とする、請求項４３に記載のシステム。
【請求項４８】
アプリケーションオブジェクト属性、及び入力データを、外部交信シーケンスから切り離して、自動パラメータ化を提供するためのロジック
をさらに備えることを特徴とする、請求項４３に記載のシステム。
【請求項４９】
テストケースを、アプリケーション状態、外部交信シーケンス、及び入力データを含む抽象表現に変換するためのプログラム命令と、
テストケースの抽象表現のプログラム命令を格納するためのデータベースと
を備えることを特徴とする、搬送媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には、テストケースを管理するための方法、及びシステムに関するものであり、特に、抽象表現に変換されるテストケースを変換するための方法、及びシステムに関するものである。
【背景技術】
【０００２】
バグを発見する点で、十分な達成度、及び有効性を提供する適切なテストケースの作成、及び保守は、非常に困難、かつ大量のリソースを要する作業である。テストケース管理についての現行の手法は、テストケースの所望のレベルの再利用性、及び保守の容易性を確実にするものではない。これは、バージョンごとの、環境ごとの、及びプラットフォームごとの、繰り返しサイクルのテストケースの作り直しという結果になる。
【０００３】
テストケース作成に対する現行の手法は、多くのプログラミング言語のうちの１つによる手動プログラミングか、或いは記録／再生システムを使ったテストケースの記録か、のいずれかである。両方の手法において、テストケースは、テストスクリプトとして知られる一連のプログラミング言語の命令文として、作成及び管理される。そして、これらのテストスクリプトは、ストレージディスク上のファイルのようにそれらを扱うユーティリティのセットによって、管理される。
【０００４】
このようにテストケースを保守することの不利な点の１つは、それらが、ターゲット実行環境と結び付けられることである。様々なテスト実行環境が様々なスクリプト言語をサポートしており、これらの環境において、様々な命令文によって、同じ動作が表現される。ソフトウェア事業会社が、テスト実行システムを変更することを決定した場合には、それらの全てのテストケースを、新しい環境において作り直さなければならない。
【０００５】
そのような努力に必要な相当な投資を考慮すると、多くのソフトウェア開発組織が、単一のベンダのテスト実行環境と結び付けられるであろう。さらに、カスタマイズされた環境におけるテスト事業アプリケーションはまた、難問を提示する。殆どの事業アプリケーションは、それらのカスタマ環境において、実質的にカスタマイズされる。標準の試験項目群に対してアプリケーションをテストすることは、そのアプリケーションが望ましくない方法で変更されないことを確実にすることができる。
【０００６】
そのようなテストケースを提供することは、顧客のサイトにおいて、そのようなアプリケーションにおけるロールアウト時間を減らし、並びに、フィールドサポート作業の効率を高めることができる。顧客がソフトウェアプロバイダと同じテスト実行環境をサポートすることが出来ないと、これが不可能となる。
【０００７】
事業アプリケーションは、大量のプラットフォーム間にわたるテストを必要とする。これらのプラットフォームは、オペレーティングシステム、データベースシステム、及びそれらとともに機能するアプリケーション、の技術スタックを含む。テストケースの効率的な管理のために、スクリプトは、如何なる特定のプラットフォームとも結び付けられるべきではない。
【０００８】
殆ど全ての事業アプリケーションは、国際化、及び地域化をサポートしており、様々な言語、及び様々な地域フォーマットによるデータセットで、同じテストを実施できることが重要である。これを実現するために、データセットを、テストシナリオから切り離さなければならない。テストケースをスクリプトとして管理するとき、これは、スクリプトを手動でパラメータ化することを必要とする。これもまた、よりスキルの高い当業者の労働というかなりの投資を含むものである。
【０００９】
前のパラグラフで説明したように、パラメータ化されたテストケースはまた、十分な有効範囲を確実にすることが必要とされる。例えば、様々なデータセット、様々な境界条件値で、同じテストシナリオを実行して、システムの適切な機能を保証しなければならない。
【００１０】
事業アプリケーションが、１つにリリースから次のリリースへと移るとき、ユーザインターフェースに対するレイアウト変更のような微妙な変更さえも、テストケースに対する変更という結果になり得る。スクリプトを使用したテストケース表現内での抽象化の欠如は、実質的に、テストケースの再利用性を低減し、保守コストを増大させる。
【００１１】
全ての事業アプリケーションは、多くの異なる状況において繰り返される機能性を有する。モジュール式にテストケースを作成できる能力は、それらの再利用性を高める。同じ機能性についてのテストケースは、同じ機能性を使用するテストシナリオで再利用することができる。殆どのスクリプト環境は、プロシージャのサポートを通して、モジュール性を提供する。テストケースは、手続き抽象化を包含するだけでなく、データ抽象化もまた包含するので、そのような手続き抽象化は、それらの能力の点で制限される。テストケースを、モジュール式に構築し、効率的かつ効果的に再結合することができるように、テストケース管理システム内での適切な抽象化を考案すべきである。
【００１２】
テストケースを生成するためのシステム、及び方法の改善の必要性が存在する。抽象表現からのテストケースのルールベースの生成を使用して、テストケースを生成するための方法、及びシステムの改善の更なる必要性も存在する。
【００１３】
（本発明の要約）
従って、本発明の目的は、特定の自動テストスクリプトを抽象テストケース表現に変換するための方法、及びシステムを提供することである。
【００１４】
本発明のもう１つの目的は、一般的に利用可能な、或いは所有しているテスト自動化ツールから生成された特定の自動テストスクリプト（及び、その下にあるテストケース）を抽象テストケース表現に変換するために、意味解析を使用する方法、及びシステムを提供することである。
【００１５】
本発明のもう１つの目的は、特定の自動テストスクリプトを、アプリケーション状態（状態情報）、外部交信シーケンス（制御フロー情報）、及び入力データを含むテストケース表現モデルに基づく抽象テストケース表現に変換するための方法、及びシステムを提供することである。
【００１６】
本発明の更なる目的は、特定の自動テストスクリプトを、テストケースのプラットフォーム独立の表現を提供する抽象テストケース表現に変換するための方法、及びシステムを提供することである。
【００１７】
本発明の更にもう１つの目的は、特定の自動テストスクリプトを、テスト中のアプリケーションの構造、及び行動属性を捕らえるのに必要な具象能力を提供するテストケース表現モデルに基づく抽象テストケース表現に変換するための方法、及びシステムを提供することである。
【００１８】
本発明の更にもう１つの目的は、特定の自動テストスクリプトを、抽象テストケース表現に変換するための方法、及びシステムを提供することであり、その抽象テストケース表現は、アプリケーションメタデータレポジトリに対して検証され、アプリケーションメタデータレポジトリからの特定のオブジェクト情報によって更に拡充される。
【００１９】
本発明のもう１つの目的は、特定の自動テストスクリプトを、オブジェクト情報、及び入力データが制御フロー情報から切り離されて、テストスクリプトの自動パラメータ化を提供する抽象テストケース表現に変換するための方法、及びシステムを提供することである。
【００２０】
本発明のこれら、及び他の目的は、１又はそれ以上のスクリプト言語で書かれたテストケースを移入する、テストケースを変換するための方法で実現される。テストケースは、アプリケーション状態、外部交信シーケンス、及び入力データを含む抽象表現に変換される。テストケースの抽象表現は、データベースシステム内に格納される。
【００２１】
本発明のもう１つの実施形態では、テストケースを変換するためのシステムが、１又はそれ以上のスクリプト言語で書かれたテストケースを移入するためのプロセッサを含む。テストケースを、アプリケーション状態、外部交信シーケンス、及び入力データを含む抽象表現に変換するためのロジック；及び、テストケースの抽象表現を格納するデータベースが、提供される。
【００２２】
本発明のもう１つの実施形態では、コンピュータシステムが、メモリに結合されたプロセッサを含む。そのメモリは、テストケースをアプリケーション状態、外部交信シーケンス、及び入力データを含む抽象表現に変換するために、プロセッサによって実行可能なプログラム命令を格納する。データベースは、テストケースの抽象表現を格納する。
【００２３】
本発明のもう１つの実施形態では、搬送媒体が、テストケースをアプリケーション状態、外部交信シーケンス、及び入力データを含む抽象表現に変換するためのプログラム命令を含む。データベースは、テストケースの抽象表現のプログラム命令を格納する。
【００２４】
（好ましい実施形態の詳細な説明）
図１及び２を参照すると、本発明の一実施形態は、テストケースを変換するためのシステム１０、及び方法である。１又はそれ以上のスクリプト言語で書かれたテストケース１２が、移入される。次に、テストケース１２は、１又はそれ以上のアプリケーション状態１６、外部交信シーケンス１８、及び入力データ２０、を含む抽象表現１４に変換される。抽象表現１４は、データベースシステム２２に格納される。リレーショナルデータベース管理システム、ＸＭＬデータベース管理システム等を含むがそれらに限定されない、様々な異なるデータベースシステム２２を利用することができる。
【００２５】
アプリケーション状態１６は、外部交信の状況を定める、テスト中のアプリケーションの実行時スナップショットを表す。図３に示す一実施形態では、アプリケーション状態１６は、例えばウェブページ、又はウィンドウ制御、又はアカウントオブジェクトのような、アプリケーションオブジェクト２４のセットである。各アプリケーションオブジェクト２４は、属性２６、及びそれらの値のセットと関連付けられる。例えば、ウェブページは、現在のウェブページに対応するユニフォームリソースロケータ（ＵＲＬ）を含むユーアールエルと呼ばれる属性２６、現在のウェブページのタイトルを含むタイトルと呼ばれる属性２６を持つことができる。一実施形態では、アプリケーション状態１６のセットが、テストケース１２で表され、階層式に配置される。
【００２６】
利用されるスクリプト言語は、テストケースを記録、又は書くためのに使用される型付けされた、或いは型付けされないプログラミング言語とすることができる。外部交信シーケンス１８は、アプリケーションオブジェクト２４上で外部エージェント２８によって起動されたイベントを表すことができる。外部エージェント２８は、人間エージェントか、或いは他のソフトウェアエージェント、のいずれかとすることができる。交信シーケンスは、順次、同時、ループ、条件付きの交信等を捕らえるためのフロー制御構造３２を含むことができる。
【００２７】
図４に示すように、一実施形態では、入力スクリプトに対して、構文解析３４を実施することができる。構文解析器３４は、各スクリプト言語に対して１つ実装することができる。構文解析器３４は、拡張バッカス記法（ＥＢＮＦ）で規定される構文解析のルール３６を利用することができる。構文解析は、抽象構文木（ＡＳＴ）３８の形で、パーズ木を生成することができる。本発明によりスクリプトを扱う方法の一実施形態を、図５のフローチャートに示す。
【００２８】
一実施形態では、ＡＳＴ３８を、アプリケーションオブジェクトモデル（ＡＯＭ）４４に基づく抽象内部テストケース表現４２に変換する、意味解析４０を実施する。意味解析４０は、ＡＳＴ３８として表現されたテストケースを、アプリケーション状態１６、外部交信シーケンス、及び入力データに分解する。
【００２９】
図６に示すように、ＡＯＭ４４は、テスト中のアプリケーションをモデル化するためのメタデータ表現とすることができる。メタデータ表現の構成要素は、アプリケーションオブジェクト２４におけるアプリケーションオブジェクト型定義４８、各アプリケーションオブジェクト２４の型における属性定義５０、各アプリケーションオブジェクト２４の型でサポートされる方法及びイベントの定義５２、イベント５２のアプリケーション状態１６への影響の定義等を含むが、それらに限定されるわけではない。本発明により意味解析を実施する方法の一実施形態を、図７のフローチャートに示す。
【００３０】
アプリケーションオブジェクトの型定義４８は、各アプリケーションオブジェクト２４の型の更なるカテゴリ分類を含むことができ、それらは、（ｉ）階層型、（ｉｉ）コンテナ型、及び（ｉｉｉ）単純型とすることができる。階層オブジェクト型は、それ自身のアプリケーション状態１６と関連付けられる。他のオブジェクトのインスタンスを収容し得るアプリケーションオブジェクト型１６は、コンテナ型である。例えば、ウェブページは、階層オブジェクト型で表現することができ、ウェブページ内の表は、コンテナ型で表現することができる。ページ内のラベルは、単純オブジェクト型によって表現される。階層アプリケーションオブジェクト型と関連付けられる状態１６は、モーダルなアプリケーション状態、或いは非モーダルなアプリケーション状態である。モーダルなアプリケーション状態は、現在のアプリケーション状態１６内で利用可能なアプリケーションオブジェクト２４のインスタンスとの可能な交信を制限する。例えば、ダイアログウィンドウは、全てのユーザの対話を、カレントのダイアログウィンドウに制限する。
【００３１】
イベント５２のアプリケーション状態１６への影響は、アプリケーション状態１６へのイベント５２の１又はそれ以上の結果を捕らえる。イベント５２の結果は、所定の型のオブジェクトのインスタンスの作成、オブジェクト型のインスタンスの削除、既存のオブジェクトの型の属性の変更、オブジェクト型のインスタンスの選択等とすることができる。
【００３２】
階層オブジェクト型の作成、又は選択は、新しいアプリケーション状態１６の形成、そのオブジェクト型と関連付けられるアプリケーション状態１６の選択等という結果になり得る。
【００３３】
もう１つの実施形態では、テストケース１２の抽象表現１４を、アプリケーションメタデータレポジトリ５４からの情報で拡充する。入力テストスクリプトに欠けているテストケース１２と関連付けられるアプリケーションオブジェクト２４のそれらの属性２６についての値を抜き出すことにより、テストケース１２の抽象表現１４を拡充することができる。テストケース１２の拡充は、テストケース１２、及びそれらの記録、又は作成環境等を切り離すことができ、アプリケーションメタデータ表現５４内で安定している属性２６の使用を可能にすることができる。例えば、言語依存の表示ラベルではなく、アプリケーションメタデータレポジトリ５４内の内部識別フィールド５６を利用して、所定のオブジェクト２４を識別することができる。これは、テストケース１２の再利用性を高める。様々なテスト実行環境が様々な属性２６を使って、同じアプリケーションオブジェクト１６を識別することができるので、このような分離は、プラットフォーム独立性を提供する。
【００３４】
一実施形態では、アプリケーションオブジェクトの属性２６、及び入力データは、外部交信シーケンスから分離されて、自動パラメータ化を提供する。テストケースのシナリオからデータを自動的に分離することにより、システム１０は、スクリプトをパラメータ化するために含まれる手動の作業を劇的に減らす。アプリケーションオブジェクトモデルを使って、各イベント５２と関連付けられる入力データを、シナリオ定義から切り離す。同じプロセスを、オブジェクト属性２６を格納することにも適用する。入力データ定義は、シナリオ内に含まれるイベント５２ごとに起動される入れ子のテーブルデータ型定義、及びアプリケーションオブジェクトモデル内のオブジェクトイベント定義、を形成する。これは、この定義に適合する如何なるデータセットも、同じセットのシナリオに適用することを可能にする。
【００３５】
図８に示す、本発明のもう１つの実施形態では、コンピュータシステム１１０が、メモリ１１４に結合されたプロセッサ１１２を含む。メモリ１１４は、テストケースをアプリケーション状態、外部交信シーケンス、及び入力データを含む抽象内部表現に変換するためにプロセッサ１１２によって実行可能なプログラム命令１１６を格納する。データベース１１６は、テストケースの抽象表現を格納する。入力スクリプトについての構文解析器１１８を含めることができる。構文解析器１１８は、抽象構文木（ＡＳＴ）１２０の形のパーズ木を生成する。
【００３６】
ロジック１２２を提供して、意味解析を実施し、ＡＳＴ１２０を、アプリケーションオブジェクトモデル（ＡＯＭ）に基づく抽象内部テストケース表現１２２に変換する。ロジック１２４は、抽象内部テストケース表現を、アプリケーションメタデータレポジトリ１２６からの情報で拡充する。ロジック１２６は、アプリケーションオブジェクトの属性、及び入力データを、外部交信シーケンスから切り離して、自動パラメータ化を提供する。
【００３７】
図９及び１０に示す、本発明のもう１つの実施形態では、テストケース２１２を生成するための方法、及びシステム２１０を提供する。データ記憶装置２２２からのテストケースのアプリケーション状態２１６、外部交信シーケンス２１８、及び入力データ２２０を含む抽象表現２１４から、テストケース２１２が生成される。テストケース２１２は作り出され、次に、検証される。テストケース２１２は、テストスクリプト２２４に変換される。リレーショナルデータベース管理システム、ＸＭＬデータベース管理システム、ファイルシステム等を含むが、それらに限定されない様々なデータ記憶装置２２２を利用することができる。アプリケーション状態２１６は、アプリケーション状態２６と同じとすることができるということがわかるであろう。
【００３８】
一実施形態では、テストケース定義の構成要素、すなわちアプリケーション状態２１６、外部交信シーケンス２１８、及び入力データ２２０の選択のためのルール２２６、ならびにデータ駆動テストケース生成のためのルール２２８が提供される。選択ルール２２６は、ＳＱＬ、Ｘｑｕｅｒｙ、プログラミング言語で書かれたコードから呼ばれるＡＰＩ等を含むが、それらに限定されないクエリ言語を使って示されることができる。クエリ言語の使用は、テストケースを生のカスタマデータから生成することを可能にする。
【００３９】
本発明の一実施形態では、テストケース２１２の生成は、入力データ２２２によって要求されるようにテストケース２１２を構成することを含む。テストケース２１２における入力データセット２２０の少なくとも一部分、又は全部のために、複数のデータセット２３０を提供することができる。これは、複数のテストケース２１２の生成、又は各データセット２３０におけるループ制御構造内で繰り返される外部交信シーケンス、という結果になる。入力データ２２０の一部分についての複数のデータセット２３０の使用は、ｗｈｉｌｅループのようなループ制御構造内で繰り返される入力データのこの部分に対応する交信シーケンス、という結果になる。
【００４０】
一実施形態では、データ有効性フラグ２３２を使って、入力データ２２０の各要素に、有効又は無効とフラグを立てる。テストケース２１２を記録、又は作成するときの入力データ２２０に対応するものとは異なる入力データ２２０内の有効性フラグ２３２の存在は、例外処理のための適切な交信シーケンスを含む生成ステップという結果になる。例えば、有効な入力データセット２２０が提供されるとき、抽象表現２１４で格納されたテストケースは、通常の交信シーケンス２１８を有することができる。この抽象表現はまた、交信シーケンス２１８を含んでいて、無効データの入力というような例外状態の場合にたどられることができる。無効な入力データを伴ったこの抽象表現からテストケース２１２を生成するときの生成器は、通常の交信シーケンスではなく、例外状況における交信シーケンス２１８を含むテストケースを作成するであろう。
【００４１】
生成されたテストケース２１２を、外部アプリケーションメタデータレポジトリ２３８に対して検証することができる。その検証の挙動は、更なる検証ルール２４０によって制御することができる。
【００４２】
内部表現からスクリプト言語へのテストケース２１２の変換は、プラットフォーム固有のマッピング２３４によるものとすることができる。プラットフォーム固有のマッピングは、言語マッピング、及び他の環境マッピングを含む。使用される言語マッピングは、アプリケーションオブジェクト上のイベントとして捕らえられた外部交信２１８を、スクリプト言語２３６による適当な命令文にマップすることができる。１より多くの言語マッピングを、同時に提供することができる。これは、複数のテスト実行環境におけるテストスクリプトの生成を可能にする。更なる環境マッピングを提供して、更なるプラットフォーム独立性を支援する。例えば、テスト中のアプリケーションが第三者パーティのレポートライタを使用する場合には、汎用のレポートライタオブジェクトを使用して、テストケースを表現することができ、その環境マップを通して、特定のレポートライタのためのマッピングを提供することができる。このレベルのサポートは、下にあるプラットフォームの如何なるレベルまでも拡張することができる。
【００４３】
図１１に示すような本発明のもう１つの実施形態では、プロセッサ３１２、及びプロセッサ３１０に結合されるメモリ３１４を含むコンピュータシステム３１０を提供する。メモリ３１４は、抽象表現３１８からのテストケース３１６のルールベースの生成を格納する。抽象表現３１８は、データ記憶装置からのテストケースのアプリケーション状態、外部交信シーケンス、及び入力データを含んで、テストケースを作り出す。ロジック３２０は、そのテストケースを検証する。そのテストケースをテストスクリプトに変換するために、ロジック３２２を提供する。
【００４４】
ロジック３２０は、テストケース定義の構成要素、すなわちアプリケーション状態、外部交信シーケンス、及び入力データが互いに整合しており、かつアプリケーションオブジェクトモデルと整合していることを提供する。ロジック３２０は、外部検証ロジックとすることができる。外部検証ロジックは、生成されたテストケースをアプリケーションメタデータレポジトリに対して検証するステップを含むことができる。
【００４５】
コンピュータシステム３１０はまた、テストケース定義の構成要素、すなわちアプリケーション状態、外部交信シーケンス、及び入力データの選択のためのルール；データ駆動テストケース生成のためのルール、を提供するロジック３２４を含むことができる。コンピュータシステム３１０はまた、データ駆動テストケース生成を提供するロジック３２６を含むことができる。ロジック３２６は、入力データによって要求されるようにテストケースを構成することができる。
【００４６】
本発明の実施形態を例証し、説明したとはいえ、これらの実施形態が、本発明の全ての可能な形を例証し、説明することを意図されているわけではない。むしろ、本明細書で使用される語は、限定ではなく説明の語であり、本発明の技術的範囲から逸脱することなく様々な変更が成され得ることが理解される。
【図面の簡単な説明】
【００４７】
【図１】本発明のテストケース変換の実施形態の一実施形態を示す概略図である。
【図２】図１の実施形態を示す一般的なフローチャートである。
【図３】本発明の一実施形態において利用された、アプリケーション状態と交信表現との関係を示す概略図である。
【図４】本発明で利用されるテストケース移入の一実施形態を示す概略図である。
【図５】本発明で利用される移入プロセスの一実施形態を示すフローチャートである。
【図６】本発明の一実施形態で利用され得るアプリケーションオブジェクトモデルを示す概略図である。
【図７】本発明で利用され得る意味解析の一実施形態を示すフローチャートである。
【図８】本発明の図１のテストケース変換の実施形態を実施するために利用することのできるコンピュータシステムを示す概略図である。
【図９】本発明のテストケース変換の実施形態の一実施形態を示す概略図である。
【図１０】構成、抽象形式、及び検証を利用した、本発明のテストケース変換の実施形態の一実施形態を示す概略図である。
【図１１】図９及び１０のテスト変換の実施形態を実施するために利用することのできるコンピュータシステムを示す概略図である。
【図１】
2007519105.tif 000003
【図２】
2007519105.tif 000004
【図３】
2007519105.tif 000005
【図４】
2007519105.tif 000006
【図５】
2007519105.tif 000007
【図６】
2007519105.tif 000008
【図７】
2007519105.tif 000009
【図８】
2007519105.tif 000010
【図９】
2007519105.tif 000011
【図１０】
2007519105.tif 000012
【図１１】
2007519105.tif 000013
【国際調査報告】
2007519105.tif 000014
2007519105.tif 000015
2007519105.tif 000016