JP5535484B2 - 自動ソフトウェアテストフレームワーク - Google Patents

自動ソフトウェアテストフレームワーク Download PDF

Info

Publication number
JP5535484B2
JP5535484B2 JP2008545688A JP2008545688A JP5535484B2 JP 5535484 B2 JP5535484 B2 JP 5535484B2 JP 2008545688 A JP2008545688 A JP 2008545688A JP 2008545688 A JP2008545688 A JP 2008545688A JP 5535484 B2 JP5535484 B2 JP 5535484B2
Authority
JP
Japan
Prior art keywords
test
predetermined
software
tests
framework
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.)
Expired - Fee Related
Application number
JP2008545688A
Other languages
English (en)
Other versions
JP2009519544A (ja
Inventor
ノラー,ジェシー,エイ.
メイスン,ロバート,エス.ジュニア
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Data System Corp
Original Assignee
Hitachi Data System Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Data System Corp filed Critical Hitachi Data System Corp
Publication of JP2009519544A publication Critical patent/JP2009519544A/ja
Application granted granted Critical
Publication of JP5535484B2 publication Critical patent/JP5535484B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

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)

Description

本出願は、2005年12月12日に出願された第11/299,572に基づく優先権を主張する。
本発明は、一般にコンピュータシステムおよびソフトウェアの質を保証するテストに関する。
ソフトウェアプログラムまたはシステムの開発中に自動的にテストする周知の多くの取り組みがある。機能/テスト開発段階では、例えば、品質保証のエンジニアは、開発中のシステムに行われる一連の静的なテストケースを立案する。一連のテストケースあるいは一群のテストケースは、テスト群と呼ばれることもある。
複数のソフトウェアプラットホームに散在する複数の展開されたイメージをテストする周知の自動ソフトウェアテストシステムが、米国特許第6,662,312に記載されている。この特許では、展開された各イメージは、テストポートの接続を受けるテスト構成要素を備えている。展開されたイメージのテスト構成要素は、開発環境に挿入され、展開されたイメージに統合される。このシステムは、テストエンジンおよびユーザインタフェースを備えている。テストエンジンは、展開された複数のイメージに複数のテストを行うように構成されている。このテストエンジンは、周知のテストポート上の対応するテスト構成要素への接続を要求し、および接続を介した送信コマンドを送信することによりテストにより、イメージのテストを行う。ユーザインタフェースはテストエンジンに接続され、ユーザがテストエンジンを制御でき、テストの結果を確認できる。
同じような別の自動システムが、米国特許第6,301,701に記載されている。この特許は、トランザクションベースのソフトウェアアプリケーションの開発中およびその他のライフサイクル段階で使用する自動的なテスト方法を説明している。トランザクション評価員は、テストにおいてトランザクションの定義からテストデータを生成することによりトランザクションのインテグリティを評価する。フィールドの通常の値は、トランザクションの定義内に含まれ、通常のテスト値として再利用される。テストの結果が生成され、既知のよい値と比較され、代替的に、反対に、期待されるテスト結果は、トランザクション定義から生成される。また、メニュー構造を含む他のソフトウェア構成要素がテストされる。メニュー構造の定義は、各メニューの各エントリが完全にテストおよび報告されるように厳密に網羅される。結果は、既知のよい結果と自動的に比較および照合され、またはテスト結果は自動的に再検討される。トランザクションテストおよびメニューテスト双方は、回帰テストに組み込んでもよい。
米国特許第6,002,869は、ソフトウェアプログラムの機能テストを実施する自動テストシステムを説明している。このシステムは、それぞれがソフトウェアプログラムの個々の要素をテストするように構成された複数のテスト機能を備えている。ユーザが定義し且つプログラムに関連するテスト仕様書は、プログラムで実行される各種類のテスト処理の所望のテスト方法を明記する状態定義を提供する。テストエンジンは、ユーザが選択したテスト種類に適した総てのテストケースを生成し、ソフトウェアプログラムを制御し、テスト仕様書に従ってテスト機能および状態定義を利用する。テスト仕様書およびソフトウェアプログラム仕様書のデータは、ユーザが定義したテスト機能および仕様書に配置される一方、総ての一般的なテストシステムの処理はテストエンジンに属する。テスト仕様書は、修正可能なテキストファイルで実行され、ソフトウェアプログラムの展開と同時並行性を維持する。テストエンジンは、所望のテストを実施する可能な順列および組み合わせを生成する。これらのテスト仕様書は、ソフトウェアプログラムが保持する状態、一の状態と他の可能な状態との間を遷移するよう要求するテスト機能、および特定の入力が有する値に関連する情報などのアイテムを含む。処理中、テストエンジンは、テスト仕様書の一により実施されたテスト結果を示すテスト歴を生成する。
米国特許第5,513,315は、決定許容テスト(deterministic acceptance test)およびランダムなコマンドシーケンス選択を用いてコンピュータソフトウェアのエラーを明らかにする自動的にソフトウェアをテストするシステムおよび方法を説明している。結果のアナライザは、一連の所定のテストコマンドおよび一連のランダムなテストコマンドそれぞれの実行の後にテストパラメータをチェックし、コマンドが正しく実行されたかを判断する。テストコマンドシーケンスと、結果アナライザにより決定されるテスト結果が、評価者により調べられるログファイルに格納される。ランダムに選択されたテストコマンドシーケンスは、追跡用ログファイルに格納される。このシステムはまた、エラー回復を提供する。エラーが検出されると、システムはコンピュータソフトウェアのテストを再び開始し、ログファイルおよび追跡ファイルの管理を続ける。このシステムはまた、エンドユーザが特定のスクリーンディスプレイまたはプログラム情報に応じて作成する様々な応答の可能性(probability)を利用する。このシステムは、この可能性に対応するランダムな応答を選択してもよい。これらの可能性は、個別のスクリーンディスプレイまたはソフトウェア状態ごとに計算される。このシステムはコマンドシーケンスのランダムな選択を実行するため、プログラムが複数のマシンでテストされ、これにより、許容テストに要する全体の時間を削減する。
米国特許第5,751,941は、ソフトウェアをテストするオブジェクト指向のフレームワークを説明している。この特許では、ソフトウェアテストシステムは、設定および制御システムと、当該設定および制御システムに接続される1またはそれ以上のテストシステムを備えている。設定および制御システムは、ソフトウェアテストシステムのユーザと情報をやり取りするユーザインタフェースを備えている。設定および制御システムは、テストデータおよびテストコンフィグレーションを格納する。各テストシステムは、設定および制御システムに格納されたテストデータおよびテストコンフィグレーションからテストケースを設定する。各テストケースは、テストシステム内の少なくとも一つのテストオブジェクトから属性を継承する。継承された属性は、テストケースを有するテストシステムのインタラクションを促進する。
他の自動テストシステムは、例えば、米国特許第5,021,997、5,357,452、5,359,546、5,490,249、5,500,941、5,542,043、5,590,330、5,634,002および6,167,537に記載されている。また、既知の従来のテストフレームワークは、STAF(ソフトウェアテスト自動化フレームワーク)などの解決手段を備えている。
通常、前述した特許およびシステムは有用であるはあるが、これらの技術は、テストケースが様々なプログラミング言語で記述された環境で自動ソフトウェアテストを実行するほど順応性がない。さらに、このような従来のシステムはしばしば、テストが行われるアプリケーションまたはシステムに密接に関連しており、このため、汎用的なテスト能力を提供するのに有益ではない。これに関連する欠点は、システムが通常、開発中のアプリケーションのための特定のテストまたはテストの種類に準拠して記述または制御されていることである。したがって、自動システムは、必然的に開発される特定のアプリケーションあるいはシステムに従属し、一般的なプログラムセットまたはテスト群のテストを容易にサポートできない。
本発明の目的は、テストされるシステムの最新のバージョンを自動的に割り当て、インストールしおよび検証し、「ハンドオフ」による客観的な方法で一連のテストをシステムに適用し、1以上の開発者のレポジトリ(問い合わせ可能なデータベース、電子メールリスト、開発者のウェブサーバ、ソースコードバージョン制御システム、ディフェクトトラッキングシステム等)にテストの情報をエクスポートする汎用的なテストフレームワークを提供することである。このフレームワークは、テストがコマンドラインまたはコンフィグレーションファイルを介して命令を発行できる限り、特定のインプリメンテーション言語に「注意を払う」あるいは考慮しない。複数のテストを有する所定のテスト群の自動テスト中、および特定のテストが実行された後は、フレームワークは、テスト群の追加のテストが行われる場合でも、テストされるシステムの「イメージ(image)」を生成し、開発者が利用可能な情報を生成するのが好適である。この方法では、フレームワークは、システムの「状態」を保護し、現在のデバッグまたは事後のデバッグを容易にする。このフレームワークはまた、所定のテストが破壊的であり、またはシステムを許容不能な状態にするイベントに不可欠なテストにおいてシステムの最新のバージョンを再インストールし、検証する。
テスト情報を開発者のレポジトリに記録することにより、開発者は、開発中にテストデータに即座にアクセスする。したがって例えば、開発者はテストデータベースに問い合わせでき、特定の日またはシステムコンフィグレーションで失敗した特定のテストを判断できる。ウェブサーバ内の結果を公開し、特定のテスト運転について開発者に(例えば、電子メール等により)通知することにより、開発者は、簡単且つ効率的な方法で(例えば、電子メール内のリンクを選択することにより)、このようなデータにアクセスできる。また、テストされる特定のシステムの「イメージ」は、デバッグあるいは開発工程において非常に有用である。さらに、特定のテスト運転は、ディフェクトトラッキングシステムに報告する必要のある失敗を生成するために、フレームワークは、必要とされるこのようなシステムに容易にデータをエクスポートすることが好適である。
汎用的なテストフレームワークは、他のスタンドアロン論理モジュール(ルーチン、処理等)をコールして、クライアントアプリケーションが要求する様々な機能を実行するスタンドアロンのクライアントアプリケーション(または「デーモン」)として実装される。したがって、例えば、第1のこのような論理モジュールは、テストされるシステムの最新のソフトウェアビルドをフェッチするソフトウェアプログラムでもよく、第2の論理モジュールは、テストされるシステムにソフトウェアビルドをインストールすべく個別のプログラムで使用されてもよく、第3の論理モジュールは、バージョン制御システムにアクセスしてインストールされたソフトウェアビルドに用いられるテスト群の一連のテストを特定するソフトウェアプログラムでもよい。一実施例では、クライアントアプリケーションおよび関連する論理モジュールは、所定のマシン上で実行される。分散システムでは、クライアントアプリケーションは一のマシンで実行されるが、1またはそれ以上の論理モジュールは、1またはそれ以上の他のマシンで実行される。この方法では、所定のクライアントアプリケーションは、テスト群を実行するのに用いられる様々なツールまたは機能が、他のマシンプラットホーム、オペレーティングシステム等で実行されるとともに、所定のテスト群を開始し「所有」する。論理モジュールはまた、1またはそれ以上のクライアントアプリケーションにより共有され、それぞれが異なるクライアントマシン上で動作する。
典型的な実施例では、クライアントアプリケーションデーモンは要求の待ちを実行し、テスト群(あるいはテスト群のうちの所定のテスト)を開始する。要求を受信すると、フレームワークは、インストールする前に必要に応じてシステムを整理し、テストされるシステムの最新のソフトウェアビルドをダウンロードしてインストールする。フレームワークは、自動的なビルドシステム(例えば、CruiseControl)から最新のソフトウェアビルドをダウンロードしてもよい。最新のソフトウェアビルドがインストールされると、またはインストールに従うと、フレームワークは、場合によっては、インストールが成功しているかあるいは成功したかを自動的に検証する。次に、フレームワークは、テスト群および当該テスト群に関連するテストファイル/データを定義するテスト群の定義をデータベースから自動的に検索する。テスト群の定義は、これらのファイル、例えばコードレポジトリ(Perforce、ClearCase、CVS等)の位置をフレームワークに通知し、フレームワークはそれらを取得する。前述したように、テスト群またはテスト群のうちの所定のテストは、インプリメンテーション言語に関係なくフレームワークでテストされる。フレームワークはテスト群をインストールし、好適には各テストが独立した状態でテストの実行を開始する。テストは任意の順序で、例えば順々にまたはランダムに実行してもよい。各テストは合格または失敗する。テスト群の所定のテストの後、フレームワークは、テストされるシステムのイメージを作成し、これにより、現在または将来の分析のためにシステムの「状態」を保護する。必要であれば(例えば、従来の破壊的なテストのために)、フレームワークは、テストされるシステムまたは最新のソフトウェアビルドを再インストールし、テスト群の次のテストを継続する。このシステムコンフィグレーションは、再インストールする間に変更してもよい。テスト群の総てのテストが終了した後、フレームワークは、テストデータおよびイメージを集め、Webサービス等を介してアクセス可能な中央データベースなどのテストデータを問い合わせ可能なデータストアにエクスポートする。次いで、テスト群が記載された電子メールが、電子メール分配リスト上の1またはそれ以上の人物に配信される。フレームワークはまた、所定のテストデータをディフェクトトラッキングシステム(例えばBugzilla)に選択的にエクスポートする。
一般化すると、自動テストフレームワークは、テストされるシステムを自動的に割り当て、インストールし、検証するテストランナーまたはテストハーネスであり、割り当てられたシステムで実施されるテストのために「クリーンルーム」環境を提供し、テスト中のシステムの「スナップショット」を取得し、好適には高いレベル(「合格」または「失敗」)でテストの結果について報告し、あるいはフレームワークは、実行されるテストの方法に依存しない。フレームワークは、開始から終了に至るまで、テストされるシステムの管理を自動化するとともに、テスト(ホワイトボックステスト、ブラックボックステスト等)を実施し、好適には再利用可能あるいは外部のツールおよび構成要素および言語に依存しないテスト(language-agnostic)を用いる。
自動テストフレームは順応性があり、拡張が容易であり、テスト言語およびクライアントプラットホームに依存しないことが好適である。これは、任意のテストを任意の言語で実施する方法で実現される。実際には、テストは複数のクライアントホストおよびクライアントオペレーティングシステムでテストが実施されるように記述できる。
前述の記載は、本発明の関連する特徴の一部の概要である。これらの特徴は、単に説明するために記載されている。開示された発明を異なる方法で利用することにより、または以下に説明するように本発明を修正することにより、多くの他の有益な結果を得ることができる。
本発明および本発明の利点をより完全に理解すべく、ここで、添付図面と関連して以下の説明が参照される。
本発明の自動テストフレームワークは、一のマシン(または複数のマシン)で実行可能なプログラムコードとして実現されることが好適である。特定のマシンの詳細または動作環境は、本発明に特に関連しない。前述したような一の実施例では、コードは、フレームワークが要求する様々な機能を実行する他のモジュールをコールするスタンドアロンのアプリケーションまたは「デーモン」として動作する。このようなモジュールの一つは、フレームワークまたは外部システムの一部に由来してもよい。また、デーモンは一のマイン上で動作するが、1またはそれ以上のサービスモジュールは、同じまたは他のマシンで動作してもよい。これは、フレームワークのクロスプラットホームの互換性を保証する。
図1A、1Bおよび1Cは、一の例示的なシナリオでは(以下に説明する)分配されるソフトウェアアプリケーションである、所定の「テストされるシステム」(またはSUT)に対する本発明の自動テストフレームワークの基本的な動作を示している。「テストされるシステム」の語は、任意のシステム、製品、アプリケーション、処理、マシン、またはこれらの組み合わせを網羅するように広義に解釈すべきである。本発明の技術的な利益は、フレームワークが、テストされるシステムまたはシステムのための特別なテストが記述された言語に依存しないことである。したがって、自動テストフレームワークは、テストされる特定のシステムまたは特定の種類のシステムで利用することに限定されない。むしろ、フレームワークは、システムがスタンドアロンまたは分散システムであるかに拘わらず、システム環境または目的に拘わらず、システムで動作するアプリケーションの特性および種類に拘わらず、テストされる任意のシステムの自動テストをサポートする。
図1Aを参照すると、自動テストフレームワークは、ステップ100においてデーモンテストのように、実行要求がフーレムワークにより受信されたかを判断することが好適である。受信していない場合は、ルーチンサイクルはワークを待つ。実行要求を受信した場合は、ステップ102において、デーモンが要求を解析し、要求されているリソースを特定する。通常、要求はテストされる特定のシステム(またはSUTコンフィグレーション)、所定のソフトウェアビルド、テスト群、およびテストの結果がエクストートされるべきデータレポジトリを特定するが、要求の意味(request semantics)は通常、テストされるシステムの特性に依存する。デーモンはステップ104に分岐し、所望のリソースが利用不能である場合、通知/リスタートコマンドを発行し、この場合、制御はステップ100に戻る。リソースが利用可能である場合、ステップ106において、フレームワークはソフトウェアを検索する。通常、この検索は(以下に説明する1またはそれ以上の機能のように)、個別に呼び出し可能な論理モジュールにより実行される。代替的に、自動テストフレームワークは勿論、本来のコードなどのモジュールを備えてもよい。ソフトウェアビルドを検索する通信は、ローカルで、またはネットワークを介して行ってもよい。ステップ106で検索されたソフトウェアは、テストされるシステムの最新のソフトウェア「ビルド」であることが有益である。周知の通り、複雑なソフトウェアまたはソフトウェアシステムはしばしば、開発および所定のソフトウェアアプリケーションの耐用年数の間、多数(数十または数百)のソフトウェア「ビルド」を処理する。ステップ106において、自動テストフレームワークは、例えば、ソースコードまたは他のレポジトリから論理モジュールをビルドにフェッチすることにより、最新のソフトウェアビルド(あるいは要求で特定される他の設計されたビルド)を検索することが好適であり、次いで、ステップ108において検証ステップを実行する。この検証の特定および範囲は、テストされるシステムに依存する。検索されたビルドが検証できない場合、ルーチンは一旦ステップ104に分岐し、新たなワークを待つ。ソフトウェアビルドが検証できた場合、ステップ110において、フレームワークがインストールを実行する。このステップの詳細は図1Bに示されており、以下に説明する。ステップ112では、フレームワークが別の検証を実行し、ソフトウェアビルドが適切にインストールされたか否かを判断する。ステップ112は2つのステップを備えてもよい。ステップ114では、フレームワークは待ち状態になり(リソースが設定されているが)、ステップ116で、様々なリソースの利用可能性を検証できるか否かについてテストを開始する。フレームワークがインストール処理としてリソースの利用可能性を検証できない場合、制御は一旦ステップ104に戻る(したがって、ステップ100に戻る)。ステップ112の検証の結果、テストされるシステムが利用可能であることが分かった場合、ステップ118において処理は、テストされるシステムへのアクセスを要する1以上のデバイスまたはシステム(または「アクセスベクトル」)を検証する。アクセスベクトルの失敗またはアクセス不能により、フレームワークは、前述したようにステップ116に分岐する。ステップ120では、フレームワークは最後の検証を実行して、(最新のソフトウェアビルドに加え、様々なワードウェアおよびソフトウェアを備えることがある)テストされるシステム全体の状態が許容可能であるか、またはテスト群を実行する必要があるかを判断する。ステップ120のテストの結果が否定的である場合、ルーチンは前述したように一旦ステップ116に分岐し、1以上のリソースが正しくインストールするのを待つ。
ここで、インストールが実行され、SUTの状態が検証されたとすると、フレームワークはテスト群を実行する準備ができる。したがって、ステップ120ではフレームワークはテストメタデータを特定し、ステップ122では任意のテストの従属性(dependencies)を特定する。従属性がある場合、ステップ124において、フレームワークがテストの従属性を同期させ、ステップ126において、フレームワークが、この同期が成功したことを保証すべく検証を実行する。失敗した場合、ルーチンはステップ104に分岐し、場合により通知あるいはリスタートする。ステップ120および122の後、ステップ128において、フレームワークがテスト群のうちの1以上のテストを実行する。図1Cはテスト実行処理を示しており、以下に説明する。テスト群の所定のテストが実行された後、ステップ130において、フレームワークは、テストを受けるシステムが再インストールする必要があるか否かを判断する(前述したように、システムコンフィグレーションは再インストールの際に変更してもよい)。これは、例えば所定のテストがシステムまたはテストされるシステムの所定のリソースを破壊するため必要であろう。代替的に、ユーザは再インストールを要求するフラグを設定してもよい。ステップ130において、テストの結果が、システム(またはこれの構成要素)の再インストールが必要ないこと示す場合、フレームワークは、ステップ132でテストを実行し、テスト群の総てのテストが終了したか否かを判断する。終了していない場合、デーモンはステップ128に戻り、テスト群の次のテストを取得し実行する。システムコンフィグレーションは、再インストールが要求あるいは実行されてない場合でも、テスト群の次のテストが実行される前に変更してもよい。ステップ132のテストの結果が、テスト群の総てのテストが終了したことを示している場合、ステップ134において、デーモンがテストデータを集めて報告する。次に、デーモンは自動的にステップ136の結果を公表する。図示するように、通常の公表処理は、ステップ138に示すようなデータベースへの公表またはステップ140に示すようなウェブサーバへの公表を含む。データデースは集中化され、通常、データベースクエリー(例えば、SQL)が実行されるデータベースマネージメントシステムを備える。ウェブサーバは、イントラネット上で利用可能でもよく、通常はhttp、httpまたはftpサービスを備えている。これらは単なる典型的なデータレポジトリである。さらに、デーモンは、結果または電子メールリストで特定される電子メールの購読者に通知することによりテストが終了したことを公表してもよい。これは、ステップ142に示されている。処理フロー図のこの部分のステップの特定の順序は勿論制限されない。さらに、デーモンは1以上のテストに関する所定の情報をディフェクトトラッキングシステムに公表し、これはステップ144である。
前述したように図1Bは、典型的なインストール機能の処理フローを示しており、これは図1Aのステップ110である。ステップ146で処理が開始し、デーモンが実行要求のロードコマンドおよびロードオプションを解析する。ステップ148では、デーモンがテストに必要な特定のシステムコンフィグレーションを特定するロードコンフィグレーションファイルを取得する。ロードコンフィグレーションファイルは通常、必要な1以上のロードアシスタントモジュール150と、使用されるロギングシステム152のセットを特定する。ステップ154では、デーモンはロードコンフィグレーションファイルで特定されるリソースの可用性を検証し、インストールを開始する。具体的には、ステップ156で、テストが実行され、いずれの種類のインストールが要求されているかを判断する。処理フローの左側の枝は基本的なインストールを示しており、図の右側の枝はアップグレードなインストールを示している。基本的な枝では、デーモンは、ステップ158でテストされるシステムからソフトウェアをアンインストールすることにより開始する。ステップ160の検証の結果が肯定的である場合、デーモンは、ステップ162でローカルまたは取り付けられたストレージをフォーマットし、必要であれば、フレームワークはステップ164で、ローカルまたは取り付けられたストレージが既存のストレージの設定を継承する。ステップ166では、フレームワークはオペレーティングシステムをプッシュ/インストールする。ステップ168では、デーモンは、ターゲットソフトウェア(例えば、実際のソフトウェアビルド)をプッシュ/設定する。ステップ170では、フレームワークは、テストに要するデータベースを初期化する。ステップ172では、フレームワークは任意のシステムパッチをプッシュ/インストールし、ステップ174でシステムを保護する。したがってステップ176では、フレームワークは総てのリソースをリブートする。これらのステップは、テストされるシステムの「クリーンルーム」環境を保証する。ステップ175では、テストが実行され、総てのシステムの状態が検証される。これは、図1Aのステップ120のテストに対応する。システムの状態が検証できない場合、ルーチンが中断し、エラーログに書き込む。
僅かな変更を有するアップグレード方法のパスを進む並行処理も同様である。このパスでは、ステップ178において、処理が必要に応じて既存のリソースを継承することにより開始する。フレームワークはまた、ステップ175に分岐し、依存のリソースを継承した後にシステムの状態を検証する。ステップ160の検証が成功した後、ステップ180で、フレームワークはデータベースシステムをアップグレードする。ステップ166では、任意の必要なオペレーティングシステムのアップグレードインストールが行われ、このパスは、ステップ168で、テストされる実際のターゲットソフトウェアのプッシュ/設定が行われる。前述したように、ステップ172では、フレームワークが任意のシステムパッチをプッシュ/インストールし、ステップ174でシステムを保護する。この後、フレームワークは、ステップ176で総てのソフトウェアリソースをリブートする。
図1Cは、テストがどのように実行されるかを示している。前述したように、本発明の利点は、フレームワークが言語に依存しないことである。すなわち、フレームワークは、テスト言語がコマンドラインまたはコンフィグレーションファイルを介して命令を発行できる場合に、テストが記述された形式に捕らわれない。実行ルーチンはステップ182で開始し、テスト実行モジュールをコールする。このルーチンは、ステップ184で必要に応じてフラグを解釈する。このステップは、1以上のコマンドラインまたはコンフィグレーションファイルの命令を解釈する必要のある所定の言語でテストが記述されている場合に要求され、テスト実行モジュールにより理解される。ステップ186では、(テストが開始から終了まで行わ「パス」した場合に)所定のテストが実施される。ステップ188では、フレームワークは標準的な出力を記録し、ステップ190では、(テストが終了せずに「失敗」した場合に)任意のエラー出力を記録する。テストが実行されている間、実行モジュールは、ステップ192でテストの状態を判断するためにチェックし、ステップ193でテストの状態を判断するために定期的にテストする。テストが終了していない場合、ルーチンはステップ192に戻る。ステップ192のテストの結果が、テストが終了したことを示している場合、ステップ194において、ルーチンはテストされるシステムのイメージを作成し、1以上のSUTリソースの「スナップショット」を取得する。この「スナップショット」は、迅速且つ正確なデバッグまたは他の保守を容易にする特定の価値ある情報を提供する。この「イメージを作成する」処理は、1以上のサブステップを有することが好適であり、ステップ196ではフレームワークが様々なリソースのログをチェックし、ステップ198ではSUTの履歴がダンプされ、ステップ200ではSUTのデータベースの履歴がダンプされ、ステップ202では、例えば、デーモンが実行されるクライアントにこれらのログが複製される。次いで、ステップ204では、イメージおよびパス/失敗の情報が、後のデータレポジトリへのエクスポートで利用可能な編集物(compilation)に追加される。ステップ206では、実行モジュールがテストが終了したことを報告する。次いで、ステップ208でテストが実行され、再インストールのフラグがあるか、あるいは要求されているかを判断する。これは、図1Aのステップ130である。この場合、ルーチンは分岐し、再インストールを行う。ステップ208の後は、ステップ210でテストが行われ、テスト群の総てのテストが終了したかを判断し、終了していない場合はルーチンが回帰する。これにより処理が終了する。
図2に示すような典型的な実施例では、テストされるシステムは、アーカイブ記憶領域管理システムを提供するアーカイブクラスタアプリケーションである。この種の記憶領域管理システムは、潜在的に異なるハードウェア、すなわち「異種」であると考えられるハードウェアを備える一組のノードにより定義される。ノードは通常、1以上のストレージディスクにアクセスし、このストレージディスクは、実際の物理的なストレージディスク、またはストレージエリアネットワーク(SAN)などに見られる仮想的なストレージディスクでもよい。各ノードでサポートされるアーカイブクラスタアプリケーションは、同一または実質的に同一でもよい。本システムを利用することにより、企業は、文書、電子メール、ビデオ等の多くの異なる種類の一定のコンテント情報のための恒久的なストレージを作ることができる。米国広報第2005/0120025に記載されているように、アーカイブクラスタアプリケーションは、デジタルアセットを取得、保護、管理、および検索する各ノードで実行される分配されたソフトウェアアプリケーションである。図2に示すように、個別のアーカイブの物理的な境界はクラスタと呼ばれる。通常、クラスタは単一のデバイスではなく、複数のデバイスである。デバイスは、同種または異種である。通常のデバイスは、Linuxなどのオペレーティングシステムを動作させるコンピュータまたはマシンである。コモディティハードウェアに搭載されるLinuxベースのシステムのクラスタは、僅かなストレージノードサーバから、数千テラバイトのデータを格納する多くのノードまで記録できるアーカイブを提供する。データはクラスタを超えて複製され、アーカイブがデバイスの失敗から保護されるのが好適である。ディスクまたはノードが失敗した場合、クラスタは、同一のデータの複製を管理するクラスタ内の他のノードにフェイルオーバーにより自動的に切り替える。
図示するクラスタは、ノード202と、一対のネットワークスイッチ204と、電力配分装置(PDU)206と、任意で無停電電源装置(UPS)208とを備える。ノード202は通常、1以上のコモディティサーバを備え、CPU(例えば、Intel x86、好適なランダムアクセスメモリ(RAM)、1以上のハードウェアドライブ(例えば、標準的なIDE/SATA、SCSI等))、ネットワークインタフェース(NIC)カードを備える。ネットワークスイッチ204は通常、ノード間のピアツーピア通信を可能にする内部スイッチ205と、各ノードへの外部のクラスタアクセスを可能にする外部スイッチ207とを備える。PDU206は、総てのノードおよびスイッチに電力を供給するのに利用され、UPSは総てのノードおよびスイッチを保護するのに利用される。通常、クラスタは、公衆インターネット、企業のイントラネット、他のワイドエリアまたはローカルエリアネットワークなどのネットワークに接続可能である。エンドユーザは、従来のインタフェースまたはアクセスツールを用いてクラスタにアクセスする。したがって例えば、クラスタへのアクセスは、IPベースのプロトコル(HTTP、FTP、NFS、AFS、SMB、ウェブサービス等)により、APIまたは他の既知または後に開発されるアクセス方法、サービスまたはツールを介して実行してもよい。クライアントアプリケーションは、標準的なUNIXファイルプロトコルまたはHTTPAPIなどの1以上の種類の外部ゲートウェイを介してクラスタにアクセスする。アーカイブは、標準的なUNIXファイルプロトコル指向設備に設けられた仮想ファイルシステムを介して公開されるのが好適である。
環境をテストする実施例では、アーカイブクラスタアプリケーションは、クラスターのように(例えばイーサネットを介して)ネットワーク化された独立したノードの冗長配列(H−RAIN)上で動作する。各ノードは、図3に示すいくつかのランタイム要素で構成された分散型アプリケーションのインスタンス300を動作させる。前述したように、本発明は、テストされるシステムのためにテストケースを生成する。ソフトウェア要素は、ゲートウェイプロトコル層302と、アクセス層304と、ファイルトランザクションおよびアドミニストレーション層306と、コア要素層308とを備える。ゲートウェイは、NFE310およびSMB/CIFS312などの本来のファイルサービスや、WebサービスAPIを提供し、カスタムアプリケーションを作成する。HTTPサポート314も提供される。アクセス層304は、アーカイブへのアクセスを提供する。一定のコンテントのファイルシステム(FCFS)316は、本来のファイルシステムを模倣し、アーカイブオブジェクトへの完全なアクセスを提供する。アクセス層304は、Webユーザインタフェース(UI)318と、SNMPゲートウェイ320とを備えている。Webユーザインタフェース318は、ファイルトランザクションおよびアドミニストレーション層306内のアドミニストレーションへの双方向のアクセスを提供する。SNMPゲートウェイ320は、アドミニストレーションエンジン322へのアクセスするストレージ管理アプリケーションを提供し、クラスタの活動を安全に管理および制御する。アドミニストレーションエンジンは、システムおよびポリシーイベントを含むクラスタ活動を監視する。
また、ファイルトランザクションおよびアドミニストレーション層306は、要求管理処理324を備えている。要求管理324は、(アクセス層304を介した)外部からの要求や、コア要素層308内のポリシー管理326からの内部要求を管理する。ポリシー管理326に加え、要素は、メタデータ管理328と、ストレージ管理330の1以上のインスタンスとを備えてもよい。所定のノードのストレージ管理330は、物理的なストレージデバイスを管理する責任を有する。要求管理324は、システム内の他の要素と相互通信することによりアーカイブアクションを実行するのに必要な一組の処理を実行する責任を有する。メタデータ管理328は、各ノードにインストールするのが好適である。総合的に、クラスタ内のデータ管理は、分散型データベースのように動作し、アーカイブオブジェクトを管理する。ストレージ管理330は、分散型アプリケーション内の総ての他の要素が利用可能なファイルシステム層を提供する。これは、ノードのローカルファイルシステム内のデータオブジェクトを格納する。また、ストレージ管理330は、システム情報、データの完全性のチェック、およびローカルな構造に直接的にトラーバースする能力を提供する。図3に示すように、クラスタは、通信ミドルウェア層332およびDNS管理334を介して内部および外部の通信を管理する。アプリケーションインスタンスは、オペレーティングシステム336に基づいて動作する。
クラスタの主な責任は、ディスク上の非制限的な数のファイルを確実に格納することである。前述した自動テストフレームワークは、動作中の処理環境またはテスト設備またはラボラトリ内のクラスタを用いるのに利用される。したがって、一のテストシナリオでは、自動テストフレームワークは、(局所的あるいはコンピュータネットワークを介して)テストラボラトリ内のノードを利用することができ、RAINまたはSANクラスタを設定する。この処理では、フレームワークは、自身の本来の分散ソフトウェアを使用し、または外部モジュールを利用して様々な構成のクラスタをインストールする。これは、クラスタの状態を確認し、テスト群を実行する。テストはクラスタを用いるが、実際には、自動テストフレームワーク自体の問題ではなく、テストハーネスとしてのみ機能する。具体的には、自動テストフレームワークは、所定のクラスタを自動的に割り当て、インストールし、検証し、割り当てられたクラスタに行われるテストのための「クリーンルーム」環境を提供し、これは、テスト中のクラスタのスナップショップを取得し、ダンプログおよびデータベースイメージが好適である。しかしながら、フレームは所定のテストまたはテスト群の方法に関わりなく、テストの成功または失敗を容易に記録する。したがって、フレームワークは通常、所定のテストと連動せず、テストは通常、フレームワークと通信し、テストの結果をパスする。フレームワークは、テストの結果を記録および格納するが、テストスクリプトは、所定のテスト群を損なうことなく、クラスタを損傷あるいは変更する場合がある。このような深刻な損傷または変更は、例えば、ノードのドロッピング、データベースの破損、データの破損等を含む。フレームワークは、テスト群の次のテストが実行される前に、「クリーンな」環境を再インストールすることによりこのような破壊または変更の問題に取り組む。実際には、多くのインスタンスにおいて、肯定的にフレームワークにフラグを付してテスト中にクラスタを再インストールし、クラスタが、各テストのために、実際に(例えば、総てのゲートウェイがアップであり機能的であり、総てのクラスタが健全であり、所望のソフトウェアがインストールされ、動作し、パッチされることを保証することにより)安定的な「クリーンルーム」環境で動作することが所望される。
したがって、本発明の目的によると、所定のテスト群のテストは、任意のフレームワークの制御機能(フレームワークまたはフレームワークのデーモンを備えるオブジェクト、方法、クラス等)を直接的または間接的に参照しない。実際には、フレームワークは、テストされる基本システムとテスト自体から抽出される。この構造は、中央制御または管理スキームを取り除き、従来技術にはない利益を提供し、クローズシステムまたはテストが特定のテスト環境のために記述されたシステムのように動作する。テスト群の各テストは独立しており、任意の順序で動作できる。
前述したように、フレームワークデーモンは、多数のサポートツール、すなわち、要求される様々な機能を提供する実行可能なモジュールを有することが好適である。クラスタの例では、フレームワークデーモンは、テスト群(またはバッチ)を動作させ、結果をデータベースに記録し、ノードイメージまたはログをウェブでアクセス可能なローカルマシンのウェブサーバ上のディレクトリに格納できる。デーモンは、総ての例外、失敗、クラッシュ等を電子メールの受信者のターゲットセットに電子メールを送信し、またはこのような情報をバグトラッキングシステムにエクスポートする。したがって、フレームワークは、高度に構成され、テスト言語に依存しないハーネスを動作させる機能的なクラスタレベル回帰(regression)テストを提供する。
また、フレームワークはホワイトボックステストを実施できる。一組のホストまたは単一のホスト上で実施可能な任意のテストは、自動テストフレームワーク内で実施できる。前述したように、フレームワークの利点の一つは、動作する任意のクラスタをテストできるのに十分な寛容性または順応性があることである。クラスタの大きさを拡張するテストが存在し、これらは、クラスタを修復し、要素テストドライバ、インストールシステム自体をテストするテストである。フレームワークは、テストの方法に拘わらず前述したこの適応性を提供する。したがって、所定の品質保証のエンジニアまたは開発者がハーネス内に組み込むものに関する理論上の制限はない。
ここで図4を参照すると、ブロック図は、例えば、分散クラスタアプリケーションを有を用いて使用する自動テストフレームワークの特定の実施例を示している。図示するように、フレームワークは、デーモン形式のラッパ(wrapper)を有するツールボックスである。これは拡張可能なフレームワークであり、機能的なクラスタレベルのテストを提供し、好適には共通の拡張可能な簡単なツール、日々のクラスタの管理で利用できるツールで作られる。
図4に示すように、本実施例のフレームワーク400は、2つの層、フレームワーク層402およびツール層404を備えている。フレームワーク層402は、論理、モジュール、それ自体を「知る」ためにフレームワークが要するスクリプトまたはデータベース、クラスタ(およびこれらのノード)、および所望のテスト(これらのテストの実行)を備えている。対照的にツール層404は、クラスタの非中央的な管理を容易にし、限定ではないが、ビルドインストレーション、ログ管理、クラスタクリーニング、データベースクエリ等を含む様々なタスクを実行するツールを備える。ツール(または少なくともこれのらの一部)は、インタラクティブではなく、自動および再利用可能であり、中央管理または制御を要しない。
図4を参照すると、デーモン406は、個別の論理モジュールを用いることにより、クラスタを割り当て、インストールし、検証するネットワークアクセス可能なスクリプトである。前述したように、このデーモンは、ターゲットクラスタに対する所定のテスト群を実施すべく到来する要求を受ける。結果ハンドラモジュール408は、テスト中に生成されたデータを管理する。したがって、例えば、デフォルトの結果は、結果ディレクトリ内のレコードであり、これは、日/時間/群/テスト名がキーにされることが好適である。各テストの結果は、フラットなテキストファイル形式で格納され、現在の結果用のデータベースシステムにアップロードされる。動作が終了した後、結果のアップロードフラグがイネーブルである場合には、デーモン406はこれらの結果を結果データベースにアップロードする。結果ハンドラモジュール408は、別のシステムをアップロードするために、CSV形式の結果を電子メールで送り、この結果をデータベースに送り、またはアクセスの可能性を最大にすべくディスク上のファイルに結果を格納する。テスト動作モジュール410は、最終的に実際のテスト群の責任を有するスクリプトである。このスクリプトは、テストに必要な総ての詳細を扱う(例えば、マウントポイントの設定、リソースの初期化等)。このモジュールは、非ブロック/タイムアウト方法でテストを実行するのが好適である。これはテストが継続し、または終了しないことを期待し、これらのテストを監視し、必要に応じて終了する。マスタテストシステムモジュール412は、テスト動作モジュール410を使用し、マスタレベル群(個別の群とは反対に、フレームワーク群)を生成し、システムレベル分類のためのバッチシステムとして利用される(例えば、長いバーンイン(burn in)、クイックスモーク、性能等)。コードレポジトリ同期モジュール414は、総てのレポジトリ(例えば、必然的)リフレッシュを処理し、ソース制御サーバからコードビルドを取得する責任がある。データベースモジュールは、所望のテストがどこに存在するのか、これらのテストを更新するのかしないのかをモジュールに伝える。テストを更新すべき場合、このモジュールは、これらのテストをレポジトリから直接的にダウンロードする。コードレポジトリ同期モジュールは、ローカルコピーを有するか否かに関わらず、所定のテスト群のファイルを同期させる。したがって、ソース制御システムはマスタコピーと見なされ、対照的にフレームワークはローカルコピーを信用しない。データベース更新モジュール416は、任意および総てのデータベース接続性を扱う。このモジュールは、クラスタに関する情報を取得し、この情報をデーモンに提供するのに利用される。リフレッシュモジュール416はまた、所望のテスト/群情報を取得するのに利用される。テスト情報データベース418は、テスト群の各テストに関する情報と、実行すべきこのようなテストの所望の情報を備えるデータベースである。クラスタ情報データベース420は、
フレームワークが用いられる適切な情報を備えてる。このデータベースは、任意のテストが動作する前に(または所定のテスト群が実施される前に)ポーリングされ、所望の情報を発見する。
ツール層404要素は、層のツールにラップされる分散コマンドハンドラモジュール422を備える。モジュール422は、SSH接続を介してアクセス可能であり、ツールが、インタラクティブではなく、またはスクリプトあるいはオープンAPIを介してクラスタと交信する。分散コマンドハンドラモジュールへのアクセスは、認証を要求するのが好適である。ログ交換(rotate)または「イメージャ(imager)」モジュール424は、システムログをダンプし、クラスタノードのログのエラーメッセージをチェックし、テストが終了した後に、クラスタノードを超えてデータベースのイメージを作成する。デーモンマスタモジュール426は、開始および終了などのクラスタのデーモンに対する粒度の細かい制御を可能にするスクリプトである。データベーススナップショットモジュール428が提供され、クラスタを介して展開するデータベースのスナップショットを取得し、これらのスナップショットをローカルマシンに提供する。スナップショットモジュール430は、実際にクラスタのイメージを作成するツールであり、ログ回転モジュールにより動作し、所定のテスト群の様々なテスト動作中に、総てのクラスタノードからログを取得する。スナップショットモジュール430はまた、クラスタの総てのノードの現在のデータベースのイメージを取得し、これらのファイルをローカルマシンにコピーし、これらをテスト/群の動作のログとともに格納する。スナップショットモジュールはまた、クラスタの完全性を検証する。ビルドインストーラモジュール432は、分散コマンドハンドラモジュールを利用して、ターゲットクラスタを介して規定のビルドをインストールするスクリプトであり、任意および総ての所望の構成のスクリプトを含む。モジュール432は、コンフィグレーションデータベースの情報に基づいて、所望の値を自動的に決定するスクリプトとして実現してもよい。クラスタクリーンモジュール434は、非インタラクティブにターゲットクラスタを掃除または整理し、ディスク、データベース、ログ、ファイル等をフォーマットする。クラスタ状態監視436は、動作するクラスタの完全性を検証するスクリプトであり、有効/無効処理、スワッピングの利用法等をチェックする。任意の時点で、クラスタ状態監視436がコールされ、クラスタをチェックする。最後に、ゲートウェイマウント検証モジュール438は、様々なクラスタゲートウェイの状態を検証し、ゲートウェイに対する様々なアクセス方法を実行するために用いられ、したがって、このモジュールは、所定のクラスタ(および当該クラスタ内のノード)の可用性を検証するために動作する。このモジュールは、テストランナモジュールのマウントシステムとして利用し、所望のリソースを実装するためにコールしてもよい。
図4に示すツールは、様々な他のツールおよびモジュールがフレームワークにより使用されるように、必ずしも包括的または排他的ではない。さらに、ツール層と機能/デーモン層との間の図4の線は単なる例示であり、本発明の範囲を限定するものではない。前述したように、フレームワーク(どのように実装されているかに関係なく)は、テストを容易に実施する単なるプラットホームであり、処理する「クリーンルーム」を提供し、テスト群の進捗のようなクラスタの状態を保証する。典型的な実施例では、自動テストネットワークは、コモディティハードウェアおよびLinuxオペレーティングシステムを動作させるマシン上で動作する。これは限定的ではないが、前述したように、デーモンは所定のマシン上で実行され、図4に示す1以上のモジュールは、同一のマシンまたは1以上の他のマシン上で動作してもよい。したがって、フレームワークは、Solaris、HPUX、AIX、IRIX、OS/X、WinXP、Windows200等上で動作するクライアントなどの非Linuxベースのクライアントを割り当ておよび利用することができる。したがって、代替的な実施例では、フレームワークは、所定のテストのプラットホームを検出し、この検出に基づいてテストの実行を、それをサポートできる特定のプラットホームに送る適切な機能を有する。
以下は、
[root@client/home/daemon]#./daemon -s risfs -c clusterfoo -b
http:pathbuildrpm/foo.rpm --refresh --report
などの実行要求を受信した場合に、自動テストフレームワーク処理がどのように動作するのかを示した例である。
この要求により以下の処理が行われる。
・デーモンの動作
・risfsテスト群の実行
・clusterfooに対する
・build fooにより
・およびPerforceからテストを更新し、最新のテスト群を取得する
・結果をデータベースに報告
したがって、要求に応じて、フレームワークは、デーモンラッパ(daemon wrapper)を実行し、クラスタ情報を取得し(クラスタが動作しているか、あるいはビルドしているかチェックし、必要に応じてクリーニングする)、規定のビルドをダウンロードし、ビルドをクラスタに展開し(インストール)、クラスタを開始し、クラスタの状態をチェックし、データベースから所望のテストを取得し(必要に応じてコードレポジトリからテストを同期させ)、必要に応じてローカルテスト設定を実行し(例えば、マウントポイントを生成し)、テストを実行し、テスト中のシステムのイメージを作成し(完全性のチェック、ログの取得など)、テストが終了した場合にシャットダウンし、テストの結果およびイメージを報告/公表する。
図5は、自動テストフレームワーク(ATF)の別の図を提供する。この実施例では、AFTサーバ500a(例えば、サーバ500a乃至nのセットの一つ)は、ATFスケジューラーを実行する。ATFサーバ500aは、マシン502で動作するATFクライアントにジョブを発行する。ATFクライアントはデーモンを動作させる。この例では、デーモンは、順に選択された(または最新の)QAビルドおよび必要なテストツールをビルドサーバ506からダウンロードする命令をATFサーバ500a(一のサーバグループ内の他のサーバの一つ)に発行し、ターゲットクラスタ504を特定し(例えば、利用可能なクラスタのデータベースから)、ターゲットクラスタ504にビルドをインストールし、インストールを検証する。デーモンの制御の下、サーバ500は、クラスタに対する1以上のテスト群をダウンロードし、動作させる。この特定の例では、これは、AFTサーバ500にスクリプト実行ルールのための中央データベース508をチェックさせ、選択されたスクリプトをソースサーバ510からフェッチし、スクリプトを実行することにより実現される。次に、ATFサーバ500は、結果を1以上の特定のユーザ、または通常は、メーリングリストに送信する(例えば、電子メールサーバ512を用いて)。図6は、所定の夜間テストが実行されたことを示し、システム、その構成、テストの結果等に関する情報を示す典型的な電子メールの一部である。また、電子メールは、システムのイメージデータを含む完全なテストデータへのリンクを備えていることが好適である。リンクを選択することにより、ユーザは、詳細な結果を直接的に参照できる。電子メールの結果は、前述したように、ウェブサーバ514に保持され、あるいはディフェクトトラッキングシステムに供給してもよい。一実施例では、テストは、様々なサイズおよび構成の専用クラスタに対し周期的、例えば夜間に実施される。
前述したように、図示するマシンは、異なるハードウェア、異なるソフトウェア、または異なるハードウェアおよび異なるソフトウェアを動作させてもよい。この結果、フレームワークは拡張性が高くなる。これは順応性があり、容易に拡張でき、テスト言語やクライアントプラットホームに依存しない。この実装により、フレームワークが、任意の言語の任意のテストを実行できる。
以下は所定のテストのためにデータベースに格納される情報の種類を示している。
・テスト群
・テストサブ群
・テスト名/コード/シリアル
・テスト位置(必然的)
・実行に必要なテストフラグ(すなわち、-n $testnum, -s $port等)
・これはファイルテストか?(すなわち、マウントポイントが必要か)
・trueの場合
・ 所定のマウントが必要か?
・ nfsマウントが必要か?
・ 両方必要か?
・ これはhttpテストか?
・ trueの場合
・ どれだけのhttp urlが共有されたか?
・ループエラーか?
・エラーのエラー回数(最大n)
処理フロー図および前述の説明は、本発明の特定の実施例により実行される特定の順序の処理を示しているが、このような順序は例示であり、代替的な実施例は、異なる順序で実施され、特定の処理を組み合わせ、特定の処理を重複させることができると理解すべきである。所定の実施例に対する明細書における参照は、示されている実施例が、特定の機能、構造、または特徴を備えるが、総ての実施例が、特定の機能、構造または特徴を必ずしも備えるわけではないことを示している。
本発明は方法または処理のコンテキストで説明されているが、本発明は、ここに記載された処理を実行する装置に関する。この装置は、所望の目的のために特別に構成してもよく、コンピュータに格納されたコンピュータプログラムにより、選択的に駆動または再構成される汎用的なコンピュータを備えてもよい。このようなコンピュータプログラムは、限定ではないが、光学ディスク、CD−ROM、光磁気ディスク、読出し専用記憶装置 (ROM)、ランダムアクセスメモリ(RAM)、磁気または光学カード、または電子命令を格納するのに好適な任意の種類の媒体を含む任意の種類のディスクなどのコンピュータが読み取り可能な媒体に格納してもよく、これらの媒体はコンピュータシステムバスに接続される。前述したように、本発明の所定の実施例は、Linuxなどのオペレーティングシステムを動作させる標準的なハードウェアプラットホーム上で動作する所定のプログラミング言語で記述されたソフトウェアである。
本システムの所定の要素が個別に説明されているが、当業者であれば、所定の命令、プログラムシーケンス、コード部分等において一部の機能を組み合わせ、または共有してもよいことは理解できるであろう。
我々の発明を説明したが、我々が請求する発明は請求項の記載の通りである。
図1Aは、本発明の自動テストフレームワークの動作を示した処理フロー図である。 図1Bは、本発明の自動テストフレームワークの動作を示した処理フロー図である。 図1Cは、本発明の自動テストフレームワークの動作を示した処理フロー図である。 図2は、テストされる典型的なシステムの単純化した図であり、分配されたソフトウェアアプリケーションインスタンス実行する一組のノードを備え、自動テストフレームワークは、ノード対しテスト群を実施するのに用いられる。 図3は、図2のシステムの所定のノードで実行されるアーカイブクラスタアプリケーションの様々な要素の高いレベルの図である。 図4は、図2および3に示すクラスタを実行するのに利用される自動テストフレームワークの好適な実施例のブロック図を示している。 図5は、企業環境における自動テストフレームワークの一実施例を示している。 図6は、所定のテスト群が実行された後に、自動フレームワークにより自動的に生成される結果用の電子メールを示している。

Claims (32)

  1. システムを自動的にテストするソフトウェアテストシステムであって、
    プロセッサと、
    前記プロセッサにより実行される処理手段とを備え、当該処理手段が、
    (a)前記システム用の所定のテスト群を取得する第1処理手段と、
    (b)前記所定のテスト群を前記システムに展開する第2処理手段と、
    (c)1またはそれ以上のテストに関連する情報を取得する第3処理手段と、
    (d)前記システムに展開された所定のテストツールを用いて前記1またはそれ以上のテストそれぞれの実行を開始する第4処理手段と、
    (e)所定のテストが実行された後に、前記システムに関連する状態情報を取得する第5処理手段と、
    (f)前記1またはそれ以上のテストの結果に関連する情報前記テストが実行された後の前記所定のテストツールが展開された前記システムのスナップショット、及び前記テストに関連する情報が格納されたデータベースのスナップショットを対応付けて記憶する第6処理手段とを含むことを特徴とするソフトウェアテストシステム。
  2. 請求項1に記載のソフトウェアテストシステムにおいて、前記第2処理手段がまた、前記所定のテスト群を前記システムに展開する前に、所定のリソースを初期状態に戻すことを特徴とするソフトウェアテストシステム。
  3. 請求項1に記載のソフトウェアテストシステムにおいて、前記第2処理手段がまた、前記所定のテスト群を前記システムに展開する前に、所定のリソースを所定の状態にすることを特徴とするソフトウェアテストシステム。
  4. 請求項1に記載のソフトウェアテストシステムにおいて、前記第2処理手段がまた、前記所定のテスト群が展開されたあるいは展開されている場合に、前記システムまたは前記システムの所定の要素の動作状態を検証することを特徴とするソフトウェアテストシステム。
  5. 請求項1に記載のソフトウェアテストシステムにおいて、前記第3処理手段が実行され、コードレポジトリから前記1またはそれ以上のテストに関連する情報を取得することを特徴とするソフトウェアテストシステム。
  6. 請求項2に記載のソフトウェアテストシステムにおいて、前記第2処理手段がまた、所定のテストの実行の後に、所定のリソースを初期状態に戻し、前記所定のテスト群を再インストールするソフトウェアテストシステム。
  7. 請求項1に記載のソフトウェアテストシステムにおいてデータベース、ウェブサーバ、電子メールリスト、またはディフェクトトラッキングシステムのうちの少なくとも一つを含むレポジトリに前記テストの実行結果に関する情報を出力することを特徴とするソフトウェアテストシステム。
  8. 請求項7に記載のソフトウェアテストシステムにおいて、前記第1、第2、第3、第4、第5または第6処理手段のうちの少なくとも一つが、前記処理手段が実行される前記システムと異なる第2のシステムで実行されることを特徴とするソフトウェアテストシステム。
  9. 請求項8に記載のソフトウェアテストシステムにおいて、前記システムおよび前記第2のシステムが、異なるオペレーティングシステムを実行することを特徴とするソフトウェアテストシステム。
  10. 請求項1に記載のソフトウェアテストシステムにおいて、前記テストのうちの少なくとも一つが、前記処理手段を実現するコードが記述されたプログラミング言語と異なる言語で記述されていることを特徴とするソフトウェアテストシステム。
  11. 請求項1に記載のソフトウェアテストシステムにおいて、前記1またはそれ以上のテストそれぞれが独立しており、任意の順序で実行されることを特徴とするソフトウェアテストシステム。
  12. システムをテストする方法であって、
    1またはそれ以上のテストを有する所定のテスト群を取得するステップと、
    前記システムに展開された所定のテストツールを用いて前記所定のテスト群の各テストを実行するステップと、
    各テストが実行された後に、前記システムに関連する状態情報を取得するステップと、
    前記テスト群が終了した後に、前記所定のテストツールによって実行された前記所定のテスト群の1またはそれ以上のテストの結果に関連する情報前記テストが実行された後の前記所定のテストツールが展開された前記システムのスナップショット、及び前記テストに関連する情報が格納されたデータベースのスナップショットを対応付けて記憶するステップと、
    を有することを特徴とする方法。
  13. 請求項12に記載の方法において、前記所定のテスト群の1またはそれ以上のテストの結果に関連する情報が、データベース、ウェブサーバ、電子メールリスト、またはディフェクトトラッキングシステムのうちの一つにエクスポートされることを特徴とする方法。
  14. 請求項12に記載の方法において、前記システムのテスト用リソースは、先行するテストの間前記システムあるいはシステムが有する一部の要素が破損または変更された場合に、再び割り当てられ、インストールされ、および検証されることを特徴とする方法。
  15. 請求項12に記載の方法において、前記システムのテスト用リソースは、コンフィグレーションパラメータが設定されると、再び割り当てられ、インストールされ、および検証されることを特徴とする方法。
  16. 請求項15に記載の方法において、前記システムのテスト用リソースを再び割り当て、インストールし、および検証するステップがさらに、前記システムのコンフィグレーションを修正することを特徴とする方法。
  17. 請求項12に記載の方法において、少なくとも1またはそれ以上の前記ステップを実現するコードモジュールが、前記システムと異なるマシンで実行されることを特徴とする方法。
  18. 請求項12に記載の方法において、前記所定のテスト群に関連するテストファイルが、コードレポジトリから取得されることを特徴とする方法。
  19. 請求項12に記載の方法において、前記1またはそれ以上のステップを実現するコードモジュールをコールするコードが、所定のテストが記述された言語と独立した言語で記述されていることを特徴とする方法。
  20. 請求項12に記載の方法において、前記ステップを実現するコードが、自動的に且つ所定のテストを参照することなく実行されることを特徴とする方法。
  21. 請求項12に記載の方法において、前記システムのテスト用リソースが、ソフトウェアプログラムの所定のビルドを備えることを特徴とする方法。
  22. システムをテストする方法であって、
    所定のテスト群を実行する要求の受信に応答して、前記システムの所定のリソースを割り当て、インストールし、および検証するステップと、
    前記システムに展開されたテストツールを用いて前記所定のテスト群を実行するステップと、
    前記所定のテスト群の少なくとも一のテストの結果に関する情報を生成するステップと、
    前記所定のテスト群の一のテストの実行の後に所定のリソースを選択的に再び割り当て、インストールし、および検証するステップと、
    各テストのテスト結果に関連する情報前記テストが実行された後の前記所定のテストツールが展開された前記システムのスナップショット、及び前記テストに関連する情報が格納されたデータベースのスナップショットを対応付けて記憶するステップと、
    を備えることを特徴とする方法。
  23. 請求項22に記載の方法がさらに、前記所定のテスト群の各テストの後に、前記システムの状態を取得するステップを備えることを特徴とする方法。
  24. 請求項22に記載の方法において、前記システムの所定のリソースを割り当て、インストールし、および検証するステップが、
    所定のリソースを初期状態に戻すステップと、
    所定のテスト群をインストールするステップと、
    リブートするステップとを備えることを特徴とする方法。
  25. 請求項22に記載の方法において、前記システムの所定のリスースは、前記所定のリソースが使用可能になった場合に検証されることを特徴とする方法。
  26. 請求項22に記載の方法において、前記情報が、所定のテストが成功または失敗したかを含むことを特徴とする方法。
  27. 請求項22に記載の方法において先行するテストに関して前記システムあるいはシステムが有する一部の要素が破損または変更された場合、あるいはコンフィグレーションパラメータの設定に応答して、前記リソースを選択的に再び割り当て、インストールし、および検証するステップが実行されることを特徴とする方法。
  28. 請求項22に記載の方法において、前記ステップのうちの少なくとも一つが、所定のテストの実行と独立して実行されるデーモンの制御下で行われることを特徴とする方法。
  29. 請求項22に記載の方法において、前記所定のリソースが、所定のハードウェア、所定のソフトウェア、あるいは所定のハードウェアおよび所定のソフトウェアの組み合わせのうちの一つを含むことを特徴とする方法。
  30. 請求項22に記載の方法においてデータベース、ウェブサーバ、電子メールリスト、またはディフェクトトラッキングシステムのうちの少なくとも一つを含むレポジトリに前記テストの実行結果に関する情報を出力することを特徴とする方法。
  31. 請求項28に記載の方法において、前記デーモンが前記システムで実行され、前記テスト群の少なくとも一つのテストが第2のマシンで実行されることを特徴とする方法。
  32. 請求項31に記載の方法において、前記システムおよび前記第2のマシンが、異なるオペレーティングシステムを実行することを特徴とする方法。
JP2008545688A 2005-12-12 2006-12-11 自動ソフトウェアテストフレームワーク Expired - Fee Related JP5535484B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/299,572 US7694181B2 (en) 2005-12-12 2005-12-12 Automated software testing framework
US11/299,572 2005-12-12
PCT/US2006/046993 WO2007070414A2 (en) 2005-12-12 2006-12-11 Automated software testing framework

Publications (2)

Publication Number Publication Date
JP2009519544A JP2009519544A (ja) 2009-05-14
JP5535484B2 true JP5535484B2 (ja) 2014-07-02

Family

ID=38163439

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008545688A Expired - Fee Related JP5535484B2 (ja) 2005-12-12 2006-12-11 自動ソフトウェアテストフレームワーク

Country Status (4)

Country Link
US (2) US7694181B2 (ja)
EP (1) EP1963964A4 (ja)
JP (1) JP5535484B2 (ja)
WO (1) WO2007070414A2 (ja)

Families Citing this family (195)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7506311B2 (en) * 2004-02-19 2009-03-17 Oracle International Corporation Test tool for application programming interfaces
US8117591B1 (en) 2005-01-07 2012-02-14 Interactive TKO, Inc. Graphical model for test case viewing, editing, and reporting
US8146057B1 (en) * 2005-01-07 2012-03-27 Interactive TKO, Inc. Instrumentation system and method for testing software
US8141043B2 (en) 2005-01-11 2012-03-20 Worksoft, Inc. Automated business process testing that spans multiple platforms or applications
US7600220B2 (en) 2005-01-11 2009-10-06 Worksoft, Inc. Extensible execution language
US7996255B1 (en) * 2005-09-29 2011-08-09 The Mathworks, Inc. System and method for providing sales leads based on-demand software trial usage
US8352916B2 (en) * 2006-02-17 2013-01-08 International Business Machines Corporation Facilitating the automated testing of daily builds of software
US9166809B2 (en) * 2006-04-03 2015-10-20 Verizon Patent And Licensing Inc. Automated network testing
US8375013B2 (en) * 2006-05-17 2013-02-12 Oracle International Corporation Server-controlled testing of handheld devices
DE112006003953T5 (de) * 2006-07-11 2009-08-20 Abb Research Ltd. Ein Lebenszyklusmanagementsystem für intelligente elektronische Geräte
US8131644B2 (en) 2006-08-29 2012-03-06 Sap Ag Formular update
US8065661B2 (en) * 2006-08-29 2011-11-22 Sap Ag Test engine
US8037360B2 (en) * 2006-10-03 2011-10-11 Symantec Corporation Software testing framework for multiple operating system, hardware, and software configurations
US8074204B2 (en) * 2006-11-21 2011-12-06 Microsoft Corporation Test automation for business applications
US8140897B2 (en) * 2007-03-29 2012-03-20 International Business Machines Corporation Testing method for complex systems
US7979846B2 (en) * 2007-04-05 2011-07-12 Accenture Global Services Limited Automatic test generation for reference testing
US8239835B2 (en) * 2007-05-07 2012-08-07 Infosys Limited Automated software testing framework using independent test scripts
WO2009002997A2 (en) * 2007-06-26 2008-12-31 Topcoder, Inc. System and method for distributed software testing
US8326805B1 (en) * 2007-09-28 2012-12-04 Emc Corporation High-availability file archiving
US8266592B2 (en) * 2008-04-21 2012-09-11 Microsoft Corporation Ranking and optimizing automated test scripts
FR2931269A1 (fr) * 2008-05-16 2009-11-20 Ateji Soc Par Actions Simplifi Procede et systeme de developpement de programmes paralleles
US8719788B2 (en) * 2008-05-23 2014-05-06 Microsoft Corporation Techniques for dynamically determining test platforms
US20090307763A1 (en) * 2008-06-05 2009-12-10 Fiberlink Communications Corporation Automated Test Management System and Method
JP2010061461A (ja) * 2008-09-04 2010-03-18 Ricoh Co Ltd ソフトウェアの自動性能評価システム
US9111019B2 (en) 2008-09-30 2015-08-18 Interactive TKO, Inc. Modeling and testing interactions between components of a software system
US8135659B2 (en) 2008-10-01 2012-03-13 Sap Ag System configuration comparison to identify process variation
US8458666B2 (en) * 2008-10-22 2013-06-04 Oracle International Corporation Methods and systems for implementing a test automation framework for testing software applications on UNIX/LINUX based machines
US8396893B2 (en) 2008-12-11 2013-03-12 Sap Ag Unified configuration of multiple applications
US8255429B2 (en) 2008-12-17 2012-08-28 Sap Ag Configuration change without disruption of incomplete processes
AU2009334511C1 (en) 2008-12-31 2016-08-18 Ardelyx, Inc. Compounds and methods for inhibiting NHE-mediated antiport in the treatment of disorders associated with fluid retention or salt overload and gastrointestinal tract disorders
EP2214099A1 (en) * 2009-01-30 2010-08-04 Tieto Oyj Method for software package deployment in a network node
US9268532B2 (en) * 2009-02-25 2016-02-23 International Business Machines Corporation Constructing a service oriented architecture shared service
US20100235807A1 (en) * 2009-03-16 2010-09-16 Hitachi Data Systems Corporation Method and system for feature automation
JP5368878B2 (ja) * 2009-05-25 2013-12-18 キヤノン株式会社 情報処理装置、製造装置及びデバイス製造方法
US8949791B2 (en) * 2009-07-08 2015-02-03 Vmware, Inc. Distributed software testing using cloud computing resources
US8549476B2 (en) * 2009-07-30 2013-10-01 Hewlett-Packard Development Company, L.P. Comparison of result of program operation to result of an operation of a different version of the program
US8296342B2 (en) * 2009-08-31 2012-10-23 Hewlett-Packard Development Company, L.P. Fingerprinting a database
US20110061041A1 (en) * 2009-09-04 2011-03-10 International Business Machines Corporation Reliability and availability modeling of a software application
US9582396B2 (en) * 2009-10-23 2017-02-28 Novell, Inc. Techniques for generating an executable debugger script
US20110145643A1 (en) * 2009-12-10 2011-06-16 Microsoft Corporation Reproducible test framework for randomized stress test
US8615741B2 (en) * 2009-12-24 2013-12-24 International Business Machines Corporation Software defect tracking
US8489930B1 (en) * 2010-01-20 2013-07-16 Instavia Software, Inc. Method and system for creating virtual editable data objects by using a read-only data set as baseline
US20110214105A1 (en) * 2010-02-26 2011-09-01 Macik Pavel Process for accepting a new build
US8990813B2 (en) * 2010-03-29 2015-03-24 Red Hat, Inc. Automated virtual machine image deployment and testing by accessing downloadable test packages and dynamically-changing test parameters
US20110296386A1 (en) * 2010-05-28 2011-12-01 Salesforce.Com, Inc. Methods and Systems for Validating Changes Submitted to a Source Control System
US8966447B2 (en) * 2010-06-21 2015-02-24 Apple Inc. Capturing and displaying state of automated user-level testing of a graphical user interface application
US8572579B2 (en) * 2010-08-19 2013-10-29 Oracle International Corporation Break on next called function or method in java debugger agent
CN103180834B (zh) * 2010-09-09 2015-12-02 国际商业机器公司 自动操作***测试框架
US9122803B1 (en) * 2010-10-26 2015-09-01 Interactive TKO, Inc. Collaborative software defect detection
US8850399B2 (en) * 2010-11-15 2014-09-30 Microsoft Corporation Software development using code retraction and background warm up
US8607203B1 (en) * 2010-12-17 2013-12-10 Amazon Technologies, Inc. Test automation framework using dependency injection
US20120174068A1 (en) * 2010-12-30 2012-07-05 Sap Ag Testing Software Code
US9104803B2 (en) * 2011-01-03 2015-08-11 Paypal, Inc. On-demand software test environment generation
CN102591754A (zh) * 2011-01-18 2012-07-18 智比特信息技术(镇江)有限公司 用于由计算机控制的电子产品的自动测试方法
US8627311B2 (en) * 2011-02-01 2014-01-07 Hewlett-Packard Development Company, L.P. Systems, methods, and apparatus to deploy software
US9191327B2 (en) 2011-02-10 2015-11-17 Varmour Networks, Inc. Distributed service processing of network gateways using virtual machines
CN102736972B (zh) * 2011-03-30 2016-03-09 国际商业机器公司 对待测试应用的测试例进行处理的方法和***
US9448915B2 (en) * 2011-04-13 2016-09-20 Accenture Global Services Limited Modular script designer for next generation testing system
US9183124B2 (en) * 2011-04-18 2015-11-10 Accenture Global Services Limited Automation controller for next generation testing system
CA2775165C (en) * 2011-04-18 2016-02-09 Accenture Global Services Limited Automation controller for next generation testing system
WO2012167190A1 (en) * 2011-06-02 2012-12-06 Versata Development Group, Inc. End user remote enterprise application software testing
US8819488B1 (en) 2011-06-15 2014-08-26 Amazon Technologies, Inc. Architecture for end-to-end testing of long-running, multi-stage asynchronous data processing services
US9507699B2 (en) 2011-06-16 2016-11-29 Microsoft Technology Licensing, Llc Streamlined testing experience
US8738958B2 (en) * 2011-06-20 2014-05-27 QuorumLabs, Inc. Recovery node testing
US8713531B1 (en) 2011-06-28 2014-04-29 Google Inc. Integrated bug tracking and testing
EP2546749A1 (en) * 2011-07-15 2013-01-16 Siemens Aktiengesellschaft Method and system for test suite control
US8793535B2 (en) * 2011-07-21 2014-07-29 Microsoft Corporation Optimizing system usage when running quality tests in a virtual machine environment
US8769340B2 (en) 2011-09-08 2014-07-01 Microsoft Corporation Automatically allocating clients for software program testing
JP2013069077A (ja) * 2011-09-21 2013-04-18 Canon Inc システム、情報処理装置およびその制御方法、画像形成装置およびその制御方法、並びにプログラム
US9058423B1 (en) * 2011-11-18 2015-06-16 Google Inc. Dynamic environment deployment within system tests to clusters, local machines or production
FI20116278A (fi) * 2011-12-16 2013-06-17 Codenomicon Oy Tietoverkkopohjainen testauspalvelu ja testaamismenetelmä tietoverkossa
US9355017B2 (en) 2012-01-06 2016-05-31 Iii Holdings 4, Llc Automated error checking system for a software application and method therefor
EP2807540A4 (en) 2012-01-26 2015-10-21 Hewlett Packard Development Co AUTOMATION OF IMAGE-BASED APPLICATIONS
US9152541B1 (en) * 2012-03-22 2015-10-06 Amazon Technologies, Inc. Automated mobile application verification
CN104246759B (zh) 2012-04-25 2018-01-02 英派尔科技开发有限公司 应用程序接口测试服务
CN103377127B (zh) * 2012-04-28 2016-04-13 阿里巴巴集团控股有限公司 网页产品的开发测试***、测试方法及装置
US9146837B2 (en) * 2012-05-23 2015-09-29 Landis+Gyr Innovations, Inc. Automated build, deploy, and testing environment for firmware
US8776021B1 (en) 2012-06-07 2014-07-08 Amazon Technologies, Inc. Application experiment system
US8850267B2 (en) * 2012-08-02 2014-09-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Middleware for multiprocessor software testing
JP5816144B2 (ja) * 2012-08-30 2015-11-18 株式会社アドバンテスト テストプログラムおよび試験システム
US9348569B1 (en) * 2012-09-11 2016-05-24 Emc Corporation Method and system for a configurable automation framework
US8850400B2 (en) 2012-09-25 2014-09-30 Oracle International Corporation System and method for providing an implementation accelerator and regression testing framework for use with environments such as fusion applications
US10387294B2 (en) * 2012-10-12 2019-08-20 Vmware, Inc. Altering a test
US9684587B2 (en) 2012-10-12 2017-06-20 Vmware, Inc. Test creation with execution
US10067858B2 (en) 2012-10-12 2018-09-04 Vmware, Inc. Cloud-based software testing
US8984484B2 (en) 2012-11-27 2015-03-17 Nvidia Corporation Video sequence recording during a testing session on a data processing device to enable fault detection
US9195574B1 (en) * 2012-11-30 2015-11-24 Mobile Labs, LLC Systems, methods, and apparatuses for testing mobile device applications
US8930767B2 (en) 2012-12-07 2015-01-06 Software Ag Techniques for test automation in emergent systems
US9448792B2 (en) 2013-03-14 2016-09-20 Microsoft Technology Licensing, Llc Automatic risk analysis of software
US9218270B2 (en) * 2013-03-15 2015-12-22 Digital River, Inc. Functional software testing framework for determinate level testing
JP5326060B1 (ja) * 2013-04-19 2013-10-30 浮田建設株式会社 ゲームシステムの制御方法、ゲームシステム及びコンピュータ・プログラム
CN104123219B (zh) 2013-04-28 2017-05-24 国际商业机器公司 测试软件的方法和设备
US9104814B1 (en) * 2013-05-03 2015-08-11 Kabam, Inc. System and method for integrated testing of a virtual space
US9183117B2 (en) * 2013-06-20 2015-11-10 Abbott Laboratories Inc. Method for developing and testing a connectivity driver for an instrument
US9021438B2 (en) * 2013-06-20 2015-04-28 Sap Portals Israel Ltd Automatic framework for parallel testing on multiple testing environments
US9372787B2 (en) 2013-07-15 2016-06-21 Sap Se System and method for automating testing
US9317411B2 (en) 2013-07-31 2016-04-19 Bank Of America Corporation Testing coordinator
US9197546B2 (en) * 2013-08-06 2015-11-24 Oracle International Corporation System and method for providing a messaging cluster with hybrid partitions
US9317356B2 (en) * 2013-10-15 2016-04-19 Globalfoundries Inc. Device state capture during operating system dump
US10025839B2 (en) 2013-11-29 2018-07-17 Ca, Inc. Database virtualization
US9483393B1 (en) 2013-12-05 2016-11-01 Amazon Technologies, Inc. Discovering optimized experience configurations for a software application
US20150178184A1 (en) * 2013-12-19 2015-06-25 International Business Machines Corporation Test management using distributed computing
US10264025B2 (en) 2016-06-24 2019-04-16 Varmour Networks, Inc. Security policy generation for virtualization, bare-metal server, and cloud computing environments
US10091238B2 (en) 2014-02-11 2018-10-02 Varmour Networks, Inc. Deception using distributed threat detection
US9973472B2 (en) 2015-04-02 2018-05-15 Varmour Networks, Inc. Methods and systems for orchestrating physical and virtual switches to enforce security boundaries
US9727314B2 (en) 2014-03-21 2017-08-08 Ca, Inc. Composite virtual services
US9531609B2 (en) 2014-03-23 2016-12-27 Ca, Inc. Virtual service automation
US9665473B2 (en) * 2014-03-25 2017-05-30 Accenture Global Services Limited Smart tester application for testing other applications
US20150309917A1 (en) * 2014-04-29 2015-10-29 Yongyan Wang Automation Framework Interface
US9811248B1 (en) 2014-07-22 2017-11-07 Allstate Institute Company Webpage testing tool
US10042747B2 (en) 2014-11-12 2018-08-07 International Business Machines Corporation System and method for determining requirements for testing software
GB2532508B (en) * 2014-11-24 2017-03-15 Anritsu Corp Mobile communication terminal test device and a test analysis unit therefor
US9507590B2 (en) 2014-12-08 2016-11-29 Semmle Limited Transitive source code violation matching and attribution
GB2533117A (en) 2014-12-10 2016-06-15 Ibm Software test automation
US10193929B2 (en) 2015-03-13 2019-01-29 Varmour Networks, Inc. Methods and systems for improving analytics in distributed networks
US10009381B2 (en) 2015-03-30 2018-06-26 Varmour Networks, Inc. System and method for threat-driven security policy controls
US9380027B1 (en) 2015-03-30 2016-06-28 Varmour Networks, Inc. Conditional declarative policies
US9952965B2 (en) 2015-08-06 2018-04-24 International Business Machines Corporation Test self-verification with integrated transparent self-diagnose
US10324905B1 (en) * 2015-08-21 2019-06-18 Amazon Technologies, Inc. Proactive state change acceptability verification in journal-based storage systems
US10095608B2 (en) * 2015-09-15 2018-10-09 International Business Machines Corporation Application test automation transmitting data via phone/voice calls
US10169192B2 (en) 2015-11-11 2019-01-01 International Business Machines Corporation Automatic collection and presentation of runtime data semantics
US9436585B1 (en) 2015-11-19 2016-09-06 International Business Machines Corporation Image patching in an integrated development environment
US10191758B2 (en) 2015-12-09 2019-01-29 Varmour Networks, Inc. Directing data traffic between intra-server virtual machines
US9762599B2 (en) 2016-01-29 2017-09-12 Varmour Networks, Inc. Multi-node affinity-based examination for computer network security remediation
US9680852B1 (en) 2016-01-29 2017-06-13 Varmour Networks, Inc. Recursive multi-layer examination for computer network security remediation
US10003677B2 (en) 2016-01-31 2018-06-19 Nxp Usa, Inc. Network application verification at a network processor
KR101751515B1 (ko) * 2016-02-11 2017-06-27 네이버 주식회사 테스트 실행 장치, 방법 및 컴퓨터 프로그램
US9521115B1 (en) 2016-03-24 2016-12-13 Varmour Networks, Inc. Security policy generation using container metadata
US10114736B2 (en) 2016-03-30 2018-10-30 Ca, Inc. Virtual service data set generation
US10838846B1 (en) * 2016-05-16 2020-11-17 Jpmorgan Chase Bank, N.A. Method and system for implementing an automation software testing and packaging framework
US10623295B2 (en) * 2016-05-26 2020-04-14 CloudBolt Software Inc. Infrastructure testing
US11775273B2 (en) * 2016-06-08 2023-10-03 Veriversion Labs Ltd. Methods and systems of software testing, distribution, installation and deployment
US10755334B2 (en) * 2016-06-30 2020-08-25 Varmour Networks, Inc. Systems and methods for continually scoring and segmenting open opportunities using client data and product predictors
US10223247B2 (en) 2016-07-05 2019-03-05 Red Hat, Inc. Generating pseudorandom test items for software testing of an application under test (AUT)
CN106055486A (zh) * 2016-08-19 2016-10-26 浪潮(北京)电子信息产业有限公司 一种分布式文件***的自动化运维方法及平台
US10061685B1 (en) * 2016-08-31 2018-08-28 Amdocs Development Limited System, method, and computer program for high volume test automation (HVTA) utilizing recorded automation building blocks
US9690690B1 (en) 2016-09-30 2017-06-27 Semmle Limited Scalable transitive violation matching
US9639352B1 (en) 2016-10-12 2017-05-02 Semmle Limited Computing rework churn for contributions to a code base
KR102460416B1 (ko) * 2016-10-24 2022-10-28 삼성에스디에스 주식회사 컨테이너 기반의 분산 애플리케이션 관리 시스템 및 방법
US10452774B2 (en) 2016-12-13 2019-10-22 Bank Of America Corporation System architecture framework
US10496739B2 (en) 2017-01-18 2019-12-03 Bank Of America Corporation Test case consolidator
US10229750B2 (en) 2017-01-18 2019-03-12 Bank Of America Corporation Memory management architecture for use with a diagnostic tool
US10127141B2 (en) 2017-02-20 2018-11-13 Bank Of America Corporation Electronic technology resource evaluation system
US10489287B2 (en) * 2017-05-15 2019-11-26 Bank Of America Corporation Conducting automated software testing using centralized controller and distributed test host servers
US10430184B2 (en) * 2017-10-24 2019-10-01 Semmle Limited Violation match sets
US10692031B2 (en) 2017-11-02 2020-06-23 International Business Machines Corporation Estimating software as a service cloud computing resource capacity requirements for a customer based on customer workflows and workloads
EP3602306B1 (en) * 2017-11-10 2022-10-26 Google LLC Automated device test triaging system and techniques
US11323315B1 (en) * 2017-11-29 2022-05-03 Amazon Technologies, Inc. Automated host management service
US10540171B2 (en) * 2017-12-29 2020-01-21 Business Objects Software, Ltd. State capture and retrieval for rapid deployment environments
US10255065B1 (en) * 2017-12-29 2019-04-09 Semmle Limited Automatically building software projects
US11038770B2 (en) 2018-02-01 2021-06-15 Keysight Technologies, Inc. Methods, systems, and computer readable media for managing deployment and maintenance of network tools
US11954461B2 (en) 2018-02-26 2024-04-09 Ukg Inc. Autonomously delivering software features
US10769056B2 (en) 2018-02-26 2020-09-08 The Ultimate Software Group, Inc. System for autonomously testing a computer system
US10783065B2 (en) * 2018-03-23 2020-09-22 Sungard Availability Services, Lp Unified test automation system
CN108614770B (zh) * 2018-04-09 2021-08-27 中国工商银行股份有限公司 自动化测试断言方法、装置、存储介质及设备
CN108683567B (zh) * 2018-05-30 2021-12-07 郑州云海信息技术有限公司 一种基于mcs和服务器的交换机端口故障测试方法及***
US11113175B1 (en) 2018-05-31 2021-09-07 The Ultimate Software Group, Inc. System for discovering semantic relationships in computer programs
US11010284B1 (en) 2018-05-31 2021-05-18 The Ultimate Software Group, Inc. System for understanding navigational semantics via hypothesis generation and contextual analysis
US10977155B1 (en) 2018-05-31 2021-04-13 The Ultimate Software Group, Inc. System for providing autonomous discovery of field or navigation constraints
US10747651B1 (en) 2018-05-31 2020-08-18 The Ultimate Software Group, Inc. System for optimizing system resources and runtime during a testing procedure
US10599767B1 (en) 2018-05-31 2020-03-24 The Ultimate Software Group, Inc. System for providing intelligent part of speech processing of complex natural language
CN108829599A (zh) * 2018-06-15 2018-11-16 郑州云海信息技术有限公司 一种基于Linux的QuickAssist技术软件的测试方法与***
US11385994B2 (en) 2018-08-21 2022-07-12 Marlabs Incorporated Testing automation controller framework and a method to operate the same
US10528454B1 (en) * 2018-10-23 2020-01-07 Fmr Llc Intelligent automation of computer software testing log aggregation, analysis, and error remediation
KR102617906B1 (ko) * 2019-05-07 2023-12-27 한국정보통신기술협회 의료용 소프트웨어를 위한 테스트 자동화 프레임워크 시스템 및 테스트 자동화 방법
US11290494B2 (en) 2019-05-31 2022-03-29 Varmour Networks, Inc. Reliability prediction for cloud security policies
US11310284B2 (en) 2019-05-31 2022-04-19 Varmour Networks, Inc. Validation of cloud security policies
US11863580B2 (en) 2019-05-31 2024-01-02 Varmour Networks, Inc. Modeling application dependencies to identify operational risk
US11711374B2 (en) 2019-05-31 2023-07-25 Varmour Networks, Inc. Systems and methods for understanding identity and organizational access to applications within an enterprise environment
US11290493B2 (en) 2019-05-31 2022-03-29 Varmour Networks, Inc. Template-driven intent-based security
US11575563B2 (en) 2019-05-31 2023-02-07 Varmour Networks, Inc. Cloud security management
US10951509B1 (en) * 2019-06-07 2021-03-16 Keysight Technologies, Inc. Methods, systems, and computer readable media for providing intent-driven microapps for execution on communications network testing devices
CN110286281B (zh) * 2019-06-11 2021-11-02 上海龙旗科技股份有限公司 一种智能设备老化测试的方法与设备
US10846208B1 (en) 2019-09-12 2020-11-24 T-Mobile Usa, Inc. Automation framework with orchestrated test execution, such as for use in testing wireless network components
US11489745B2 (en) 2019-10-15 2022-11-01 Keysight Technologies, Inc. Methods, systems and computer readable media for providing a declarative network monitoring environment
CN110879769B (zh) * 2019-10-16 2024-01-26 中国航空工业集团公司洛阳电光设备研究所 一种基于动态可配置框架的嵌入式***测试环境构建方法
US11029938B1 (en) 2019-11-22 2021-06-08 Dell Products L.P. Software update compatibility assessment
CN112988555B (zh) * 2019-12-13 2024-05-24 中移信息技术有限公司 接口测试方法、装置、设备及存储介质
US11200049B2 (en) 2020-01-06 2021-12-14 International Business Machines Corporation Automated test authorization management
US11442839B2 (en) * 2020-03-10 2022-09-13 International Business Machines Corporation Runtime metrics based test ordering
US11726897B2 (en) * 2020-04-13 2023-08-15 The Toronto-Dominion Bank System and method for testing applications
CN111813387A (zh) * 2020-07-10 2020-10-23 斑马网络技术有限公司 测试装置及其构建方法以及自动化测试方法
KR102481249B1 (ko) * 2020-10-22 2022-12-26 주식회사 엔씨소프트 테스트 자동화 서비스 장치 및 방법
US11347630B1 (en) * 2020-11-09 2022-05-31 Jpmorgan Chase Bank, N.A. Method and system for an automated testing framework in design pattern and validating messages
US11876817B2 (en) 2020-12-23 2024-01-16 Varmour Networks, Inc. Modeling queue-based message-oriented middleware relationships in a security system
US11818152B2 (en) 2020-12-23 2023-11-14 Varmour Networks, Inc. Modeling topic-based message-oriented middleware within a security system
US11777978B2 (en) 2021-01-29 2023-10-03 Varmour Networks, Inc. Methods and systems for accurately assessing application access risk
US20220269586A1 (en) * 2021-02-24 2022-08-25 Applause App Quality, Inc. Systems and methods for automating test and validity
CN112948271B (zh) * 2021-04-09 2024-06-25 腾讯科技(深圳)有限公司 一种代码测试方法、装置、设备及存储介质
US11630749B2 (en) 2021-04-09 2023-04-18 Bank Of America Corporation Electronic system for application monitoring and preemptive remediation of associated events
US11734316B2 (en) 2021-07-08 2023-08-22 Varmour Networks, Inc. Relationship-based search in a computing environment
CN113835685B (zh) * 2021-11-26 2022-02-18 之江实验室 一种基于拟态数据库的网络操作***设计方法
CN114328184B (zh) * 2021-12-01 2024-05-17 重庆长安汽车股份有限公司 一种基于车载以太网架构的大数据上云测试方法
CN114629832B (zh) * 2022-03-17 2024-06-21 广州超云科技有限公司 一种远程自动化测试方法、***、电子设备及存储介质
CN114706796A (zh) * 2022-06-07 2022-07-05 广州易方信息科技股份有限公司 基于DOM树结构的UI自动化diff断言方法及装置

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5021997A (en) 1986-09-29 1991-06-04 At&T Bell Laboratories Test automation system
JPH03206531A (ja) * 1990-01-08 1991-09-09 Matsushita Electric Ind Co Ltd テストプログラム自動生成装置
JPH06110731A (ja) * 1992-05-26 1994-04-22 Nec Corp ソフトウェアテスト支援装置
US5359546A (en) 1992-06-30 1994-10-25 Sun Microsystems, Inc. Automatic generation of test drivers
US5357452A (en) 1992-06-30 1994-10-18 Sun Microsystems, Inc. Automatic generation of auto-checking testing functions
US5513315A (en) 1992-12-22 1996-04-30 Microsoft Corporation System and method for automatic testing of computer software
US5390325A (en) 1992-12-23 1995-02-14 Taligent, Inc. Automated testing system
US5500941A (en) 1994-07-06 1996-03-19 Ericsson, S.A. Optimum functional test method to determine the quality of a software system embedded in a large electronic system
US5596714A (en) * 1994-07-11 1997-01-21 Pure Atria Corporation Method for simultaneously testing multiple graphic user interface programs
JPH0895826A (ja) * 1994-09-21 1996-04-12 Hitachi Software Eng Co Ltd プログラムテスト方法
US5542043A (en) 1994-10-11 1996-07-30 Bell Communications Research, Inc. Method and system for automatically generating efficient test cases for systems having interacting elements
US5590330A (en) 1994-12-13 1996-12-31 International Business Machines Corporation Method and system for providing a testing facility in a program development tool
US5634002A (en) 1995-05-31 1997-05-27 Sun Microsystems, Inc. Method and system for testing graphical user interface programs
US5751941A (en) * 1996-04-04 1998-05-12 Hewlett-Packard Company Object oriented framework for testing software
US5892947A (en) * 1996-07-01 1999-04-06 Sun Microsystems, Inc. Test support tool system and method
US5995915A (en) * 1997-01-29 1999-11-30 Advanced Micro Devices, Inc. Method and apparatus for the functional verification of digital electronic systems
US6002869A (en) 1997-02-26 1999-12-14 Novell, Inc. System and method for automatically testing software programs
US6167537A (en) 1997-09-22 2000-12-26 Hewlett-Packard Company Communications protocol for an automated testing system
US6182245B1 (en) * 1998-08-31 2001-01-30 Lsi Logic Corporation Software test case client/server system and method
US6601018B1 (en) * 1999-02-04 2003-07-29 International Business Machines Corporation Automatic test framework system and method in software component testing
US6542841B1 (en) * 1999-08-10 2003-04-01 Tyco Telecommunications (Us) Inc. Method for managing test measurements
US6301701B1 (en) 1999-11-10 2001-10-09 Tenfold Corporation Method for computer-assisted testing of software application components
US6269457B1 (en) * 2000-06-01 2001-07-31 Testing Technologies, Inc. Technology regression and verification acceptance method
US6662312B1 (en) 2000-06-30 2003-12-09 Qwest Communications International Inc. Software-testing automation system
EP1179776A1 (en) * 2000-08-11 2002-02-13 Sony Service Centre (Europe) N.V. Test automation framework
US6766481B2 (en) * 2001-04-24 2004-07-20 West Virginia High Technology Consortium Foundation Software suitability testing system
US20030093716A1 (en) * 2001-11-13 2003-05-15 International Business Machines Corporation Method and apparatus for collecting persistent coverage data across software versions
GB0206761D0 (en) * 2002-03-22 2002-05-01 Object Media Ltd Software testing
US7024589B2 (en) * 2002-06-14 2006-04-04 International Business Machines Corporation Reducing the complexity of finite state machine test generation using combinatorial designs
US6876942B2 (en) * 2002-09-18 2005-04-05 Lsi Logic Corporation Methods and systems for enhanced automated system testing
US7178065B2 (en) * 2003-04-02 2007-02-13 Sun Microsystems, Inc. System and method for measuring performance with distributed agents
US6889158B2 (en) * 2003-06-30 2005-05-03 Microsoft Corporation Test execution framework for automated software testing
US20050044533A1 (en) * 2003-08-18 2005-02-24 Microsoft Corporation System and method for focused testing of software builds
JP2005107803A (ja) * 2003-09-30 2005-04-21 Hitachi Ltd システム更新方法、および、それを実行するための計算機システム
US20050086022A1 (en) * 2003-10-15 2005-04-21 Microsoft Corporation System and method for providing a standardized test framework
US20050120274A1 (en) * 2003-11-14 2005-06-02 Haghighat Mohammad R. Methods and apparatus to minimize debugging and testing time of applications
US7428663B2 (en) * 2004-06-01 2008-09-23 Alcatel Lucent Electronic device diagnostic methods and systems
WO2006096668A2 (en) * 2005-03-07 2006-09-14 Nettest North America, Inc. Passive optical network loss test apparatus and method of use thereof
US7526681B2 (en) * 2006-08-07 2009-04-28 Sap Portals Israel Ltd. Software testing framework

Also Published As

Publication number Publication date
US7694181B2 (en) 2010-04-06
EP1963964A4 (en) 2012-02-01
EP1963964A2 (en) 2008-09-03
US20070234293A1 (en) 2007-10-04
JP2009519544A (ja) 2009-05-14
WO2007070414A2 (en) 2007-06-21
WO2007070414A3 (en) 2008-06-26
US20110035629A1 (en) 2011-02-10
US8230267B2 (en) 2012-07-24

Similar Documents

Publication Publication Date Title
JP5535484B2 (ja) 自動ソフトウェアテストフレームワーク
CN110532189B (zh) 一种持续集成***、方法及装置
US10430204B2 (en) System and method for cloud provisioning and application deployment
US9417865B2 (en) Determining when to update a package manager software
KR102443172B1 (ko) 멀티테넌트 어플리케이션 서버 환경에서 패치를 지원하는 시스템 및 방법
US8365164B1 (en) Portable software applications
US8732693B2 (en) Managing continuous software deployment
US7926051B2 (en) Automatic parallel non-dependent component deployment
US7284157B1 (en) Faulty driver protection comparing list of driver faults
US8473913B2 (en) Method of and system for dynamic automated test case generation and execution
US7698391B2 (en) Performing a provisioning operation associated with a software application on a subset of the nodes on which the software application is to operate
US8352916B2 (en) Facilitating the automated testing of daily builds of software
US8010504B2 (en) Increasing application availability during automated enterprise deployments
US9043781B2 (en) Algorithm for automated enterprise deployments
US20100138818A1 (en) Computer System and Method for Resolving Dependencies in a Computer System
US8490078B2 (en) System and method for application management
US9542173B2 (en) Dependency handling for software extensions
US20100312879A1 (en) Plug-in provisioning integration in a clustered environment
US20060168564A1 (en) Integrated chaining process for continuous software integration and validation
EP4327205A1 (en) Transition manager system
US20160335068A1 (en) Checks for software extensions
US8805895B2 (en) Adaptive methodology for updating solution building block architectures and designs
US8812458B2 (en) Adaptive methodology for updating solution building block architectures and associated tooling
CN117608601A (zh) 一种erp软件应用程序部署方法、装置、设备及介质
Zhang et al. Lifecycle Management

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091209

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100407

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120423

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120508

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120806

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120813

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120907

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120914

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121009

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121016

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121204

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20121206

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130225

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130313

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130403

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130410

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130419

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130530

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130723

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131122

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140114

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140401

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140423

R150 Certificate of patent or registration of utility model

Ref document number: 5535484

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees