JP2003271418A - Method for testing software object of web base - Google Patents

Method for testing software object of web base

Info

Publication number
JP2003271418A
JP2003271418A JP2002065065A JP2002065065A JP2003271418A JP 2003271418 A JP2003271418 A JP 2003271418A JP 2002065065 A JP2002065065 A JP 2002065065A JP 2002065065 A JP2002065065 A JP 2002065065A JP 2003271418 A JP2003271418 A JP 2003271418A
Authority
JP
Japan
Prior art keywords
test
application
code
undertest
test code
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.)
Pending
Application number
JP2002065065A
Other languages
Japanese (ja)
Inventor
George Friedman
ジョージ・フリードマン
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.)
Empirix Inc
Original Assignee
Empirix Inc
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 Empirix Inc filed Critical Empirix Inc
Priority to JP2002065065A priority Critical patent/JP2003271418A/en
Publication of JP2003271418A publication Critical patent/JP2003271418A/en
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a system for performing a remote test for middleware of an application in an N-hierarchy model via a network. <P>SOLUTION: The test system includes a test code generator, a test engine for executing a plurality of copies of a test code, and a data analyzer for analyzing a result and presenting the result to a human user. The system automatically generates the test code, and is capable of exercising components of the middleware remotely developed by using information on the components usable for an application under test. A plurality of copies of the test code are executed by a synchronizing system. Execution time for a plurality of events is recorded and is presented in one of a plurality of formats. <P>COPYRIGHT: (C)2003,JPO

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】発明の背景 分散コンピューティングが長年使用されている。分散コ
ンピューティングは「エンタープライズ−ワイド」アプリ
ケーションにおいて非常に頻繁に使用されている。エン
タープライズ−ワイド・アプリケーションは、多くのグ
ループの人々が、共通のタスク上で一緒に作業すること
を可能とするアプリケーションである。通常は、エンタ
ープライズ−ワイドなアプリケーションは、会社のビジ
ネスに重要なファンクションを実行する。例えば銀行に
おいては、全銀行支店の人々は全銀行の顧客のアカウン
トのデータベースにアクセス可能でなくてはならない。
同様に、保険会社では、会社の全ての人々が全ての保険
契約者に関する情報を含んでいるデータベースにアクセ
ス可能でなくてはならない。これらのファンクションを
実行するソフトウエアは、一般的にはエンタープライズ
−ワイドなアプリケーションとして知られている。
BACKGROUND OF THE INVENTION Distributed computing has been in use for many years. Distributed computing is very often used in "enterprise-wide" applications. Enterprise-wide applications are applications that allow many groups of people to work together on a common task. Typically, enterprise-wide applications perform functions that are important to a company's business. In banks, for example, people at all bank branches must have access to a database of accounts for all bank customers.
Similarly, an insurance company must have access to a database containing information about all policyholders for all people in the company. Software that performs these functions is commonly known as enterprise-wide applications.

【0002】利用可能なハードウエアおよびソフトウエ
アが開発されるにつれ、エンタープライズ−ワイドなア
プリケーションのアーキテクチャは変化している。現在
普及しているアーキテクチャはN階層エンタープライズ
モデルと呼ばれる。最も普及しているN階層エンタープ
ライズは、3階層モデルである。3階層はフロントエン
ド、ミドルウエアおよびバックエンドである。バックエ
ンドはデータベースである。時としてフロントエンド
は、「クライアント」又はグラフィカルユーザインターフ
ェース(GUI)と呼ばれる。ミドルウエアはデータベ
ースとの対話を管理し、「ビジネスロジック」を取得する
ソフトウエアである。ビジネスロジックはシステムに対
し、エンタープライズにおいて人々に有用な方法でデー
タをどのように検査し、処理し、レポートするかをシス
テムへ教える。
The architecture of enterprise-wide applications is changing as the available hardware and software are developed. The currently popular architecture is called the N-tier enterprise model. The most popular N-tier enterprise is the three-tier model. The three layers are the front end, middleware, and back end. The back end is a database. The front end is sometimes referred to as the "client" or graphical user interface (GUI). Middleware is software that manages the interaction with the database and acquires "business logic." Business logic tells the system how to inspect, process, and report data in ways that are useful to people in the enterprise.

【0003】ミドルウエアはサーバーと呼ばれるコンピ
ュータに常駐する。データベースは、同じコンピュータ
又は異なるコンピュータ上に存在し得る。「クライアン
ト」は、常に個人のパーソナルコンピュータ上にある。
全てのコンピュータはネットワークにより接続されてい
る。多くの人々がエンタープライズワイド・アプリケー
ションを使用するので、そのようなシステムは同時ユー
ザ可能なように設定され、単一のサーバに接続された多
くのクライアントが存在するであろう。しばしば、多く
のクライアントがサーバに同時に接続されるであろう。
The middleware resides in a computer called a server. The databases can be on the same computer or different computers. The "client" is always on an individual's personal computer.
All computers are connected by a network. Since many people use enterprise-wide applications, such systems will be configured for simultaneous user availability and there will be many clients connected to a single server. Often, many clients will be connected to the server at the same time.

【0004】インターネットコマースに親しい人は、N
階層モデルはさらに商品やサービスを販売する多くのイ
ンターネットウエブサイトを記述することが分かるであ
ろう。例えば、車を競売するウエブサイトはN階層モデ
ルに合致するであろう。そのようなアプリケーションに
おいては、データベースは、買い手、売り手、競売され
ている物件を追跡するために提供される。さらに、デー
タベースは、それらが入力された場合に付け値を追跡す
るために提供されなくてはならない。ミドルウエアは、
これらのデータベースへのアクセスを提供し、いつ付け
値を受け入れるか、いつ販売されるアイテムを宣言する
かなどトランザクションについてのビジネスロジックを
隠蔽する。分散コンピューティングの分野においては、
アプリケーションを使用している「クライアント」が、一
つの会社の従業員であるか全世界の多くのインターネッ
トユーザであるかは相違しない。ここでは、アプリケー
ション・アンダーテストの例が与えられるであろうが、
それらは本発明の使用を制限することを意図しているも
のではない。ここで記述される発明は、エンタープライ
ズワイドなアプリケーション又はウエブベースのアプリ
ケーションの開発者により使用可能である。
Those familiar with Internet commerce are N
It will be appreciated that the hierarchical model also describes many Internet websites selling goods and services. For example, a car auctioning website would fit the N-tier model. In such applications, a database is provided to keep track of buyers, sellers, and auctioned properties. In addition, databases must be provided to keep track of bids as they are entered. Middleware
It provides access to these databases and hides the business logic of transactions such as when to accept bids and when to declare items to be sold. In the field of distributed computing,
It makes no difference whether the "client" using the application is an employee of one company or many Internet users around the world. Here, an example of application undertest will be given,
They are not intended to limit the use of the invention. The invention described herein can be used by developers of enterprise-wide or web-based applications.

【0005】N階層モデルにおける一つの利点は、ミド
ルウエアが非常にコンポーネント化されやすく、コンポ
ーネント標準で記述可能であるので、他の階層における
ソフトウエアと容易に統合されるであろう。Sunマイ
クロシステムのエンタープライズJava(登録商標)
Beans(EJB)、マイクロソフト社のCOM,D
COM、COM+およびSOAP(シンプル・オブジェ
クト・アクセス・プロトコル)は、商業的に入手可能な
コンポーネントの指定標準の例である。ここで、EJB
は、N階層モデルにおけるミドルウエアを実践するため
に使用されるコンポーネント標準の例として使用される
が、ここで記述される概念は他のコンポーネント標準と
共に使用可能であることが理解されるべきである。
One advantage of the N-tier model is that the middleware will be very componentizable and can be described in component standards so that it will be easily integrated with software in other tiers. Sun Microsystems Enterprise Java ™
Beans (EJB), Microsoft COM, D
COM, COM + and SOAP (Simple Object Access Protocol) are examples of specified standards for commercially available components. Where EJB
Is used as an example of a component standard used to implement middleware in an N-tier model, but it should be understood that the concepts described herein can be used with other component standards. .

【0006】EJBは、JAVA(登録商標)言語で記
述されており、「プラットフォーム・インディペンデン
ト」となることを意図している。プラットフォーム・イ
ンディペンデントとは、アプリケーションがハードウエ
アやそれが動作しているオペレーションシステムに関係
なく同じに動作することを意図している。プラットフォ
ーム・インディペンデントは「コンテナ」の使用により達
成される。コンテナは、特定のプラットフォームに対し
て設計されたソフトウエアである。それは、プラットフ
ォームインディペンデント言語において使用されるアプ
リケーションが正確に動作することを確かにする標準化
された環境を提供する。コンテナは常に商業的に入手可
能なソフトウエアであり、アプリケーション開発者はそ
れを作るのではなく、開発するであろう。
The EJB is written in the JAVA (registered trademark) language and is intended to be "platform independent". Platform-independent means that an application behaves the same regardless of the hardware or operating system it is running on. Platform independence is achieved through the use of "containers". A container is software designed for a particular platform. It provides a standardized environment that ensures that applications used in the platform independent language work correctly. Containers are always commercially available software, and application developers will develop rather than create them.

【0007】コンポーネント化されたソフトウエアは、
異なる種類のアプリケーション、又は「オブジェクト」が
別々に作成されるがオブジェクトが一緒に働くことを可
能とするように設計されるソフトウエアである。これが
起きるためには、オブジェクトは他のオブジェクトによ
り理解され、アクセス可能である標準インターフェース
を有しなくてはならない。ソフトウエア言語は、これら
のインターフェースのいくつかの部分を強制する。ソフ
トウエア・インターフェースは、システムの部分として
直接的に入手出来ない場合には、ディスカバリー・メカ
ニズムがインターフェース情報を発見するために利用さ
れる。インターフェースが使用されない場合には、ソフ
トウエアオブジェクトは他のオブジェクトと共に働くこ
とが出来ないであろう。他のプラクティスが規約により
強要される。これらのプログラミング・プラクティスは
全てのものに知られているので、コンテナを作成する会
社はコンテナを作成する時にそれらに依存することが出
来る。結果として、これらのプラクティスが続けられな
い場合、コンテナは適切に動作し得ないであろう。この
ように、これらのプラクティスを実施するための直接で
ないメカニズムが存在する。
Componentized software is
Different types of applications, or software in which "objects" are created separately, but are designed to allow objects to work together. In order for this to happen, the object must have a standard interface that is understood and accessible by other objects. Software languages enforce some parts of these interfaces. The software interface is used by the discovery mechanism to discover interface information when it is not directly available as part of the system. If the interface is not used, software objects will not be able to work with other objects. Other practices are enforced by convention. These programming practices are known to all, so the company that creates the container can rely on them when creating the container. As a result, if these practices are not followed, the container will not be able to work properly. As such, there are indirect mechanisms for implementing these practices.

【0008】典型的には、アプリケーションは二つの方
法の一つでテストされている。オブジェクトはそれらが
記述される時にテストされる。それが意図されたファン
クションを実行することを確かにするために各々がテス
トされる。オブジェクトが完成されたアプリケーション
にアセンブルされる時、アプリケーション全体が常にテ
ストされる。これまでアプリケーションテストは一般的
には、クライアントエンドでテスト入力を適用し、アプ
リケーション応答を観察することにより行われている。
このプロセスには様々な欠点がある。一つは、特にロー
ド又はスケーラビリティのテストを開発するのに比較的
大きな労働力が必要とされることである。テストプログ
ラムを作成し、それをテストデータと共にインスタンス
生成し、テストを実行し、結果を収集するのに容易な方
法は存在しない。
Applications are typically tested in one of two ways. Objects are tested as they are described. Each is tested to ensure that it performs the intended function. When an object is assembled into a completed application, the entire application is always tested. Until now, application testing has typically been done by applying test input at the client end and observing the application response.
This process has various drawbacks. One is that a relatively large workforce is required, especially to develop load or scalability tests. There is no easy way to create a test program, instantiate it with test data, run a test, and collect the results.

【0009】「プロファイラー」と呼ばれるいくつかのツ
ールを利用することが出来る。しかし、これらのツール
はディスク使用、メモリー使用、アプリケーション・ア
ンダーテストのスレッド使用などのことを追跡する。そ
れらは、ロードに基づき、アプリケーションの性能につ
いてのデータを提供しない。
Several tools called "profilers" are available. However, these tools keep track of disk usage, memory usage, application undertest thread usage, and so on. They do not provide data about application performance based on load.

【0010】アプリケーション上でのテストの実行を自
動化するために他のツールを利用出来る。例えば、M
A、ウオールサムのRSWソフトウエア社はe−Loa
dと呼ばれる製品を提供する。このツールはアプリケー
ション・アンダーテスト上でロードをシュミレートし、
アプリケーションの性能についての情報を提供する。し
かし、このツールは、アプリケーションにおけるコンポ
ーネントについての情報を提供しない。われわれはソフ
トウエア開発者がそのような情報を非常に有用であると
分かると理解している。
Other tools can be used to automate the execution of tests on the application. For example, M
A, Waltham's RSW Software Company is e-Loa
Providing a product called d. This tool simulates load on application undertest,
Provides information about application performance. However, this tool does not provide information about the components in the application. We understand that software developers find such information very useful.

【0011】NH、ナシュアのTeradyne So
ftware and System Test社から
入手可能なTestMasterなどの自動テスト生成
ツールもさらに利用可能である。このタイプのツール
は、テストを生成するためのマニュアルの努力を減少す
る手段を提供する。TestMasterは、アプリケ
ーション・アンダーテストの状態モデルから働く。その
ようなアプリケーションは、アプリケーションの開発の
間ファンクションテストを生成するのに非常に有用であ
る。アプリケーションのモデルが指定されると、Tes
tMasterは、変化したアプリケーションのいくつ
かの部分を充分にエクササイズするなどの特定のタスク
に適しうる一続きのテストを生成するよう命令され得
る。モデルベースのテストは、特に大きなアプリケーシ
ョンのファンクションテストに特に有用であるが、テス
トされているアプリケーションの状態モデルの作成を必
要とするので充分に自動化されていない。
Teradyne So, NH, Nashua
Further available are automatic test generation tools such as TestMaster, available from ftware and System Test. This type of tool provides a means to reduce the manual effort to generate tests. TestMaster works from the application undertest state model. Such applications are very useful for generating functional tests during application development. When the application model is specified, Tes
The tMaster may be instructed to generate a suite of tests that may be suitable for a particular task, such as fully exercising some parts of the changed application. Model-based testing is particularly useful for functional testing of particularly large applications, but is not fully automated as it requires the creation of a state model for the application being tested.

【0012】我々は、エンタープライズワイドなアプリ
ケーションのテストの第2の欠点は、測定するための重
要な性能基準がしばしば、同時ユーザの数が増加するに
つれてアプリケーションがどのように振る舞うかに関連
していることであると理解している。あまりに多くのユ
ーザが同時にログする場合、通常のユーザをいらだたせ
る程度に非常に遅いウエブサイトのクラッシング又は動
作の例がある。過去において、いくらかの人々に同時に
アプリケーションを使用することを試みさせるなどし
て、ロードは非公式にシュミレートされていた。MA、
ウオールサムのRSWから入手可能なe−Loadなど
のテスト用アプリケーションでロードを提供するために
幾つかのツールが存在する。
[0012] We note that the second drawback of enterprise-wide application testing is that a critical performance metric to measure is often related to how the application behaves as the number of concurrent users increases. I understand that. If too many users log at the same time, there is an example of website crashing or behavior that is too slow to annoy normal users. In the past, the load was informally simulated, for example by letting some people try to use the application at the same time. MA,
There are several tools to provide the load with a test application such as e-Load available from Waltham's RSW.

【0013】しかし、一般的にアプリケーションが所望
のオペレーティング環境に配備されて初めて、アプリケ
ーションアンダーロードの性能が知られることになる。
従って、アプリケーション開発者が直面する最大の問題
は、各オブジェクトが設計通りに動作するか、又はさら
にオブジェクトがシステムとして共に働くかを調べるた
めのテストとは成り得ないことである。これまで指定さ
れたトランザクション応答時間にどれだけ多くの同時ユ
ーザをミドルウエアアプリケーションが収容出来るか、
本当の世界のロードコンディションでアプリケーション
におけるいずれのオブジェクトを識別するかをアプリケ
ーション開発者が確かめることを手助けする有用なツー
ルは存在しないことがボトルネックの原因になってい
る。応答時間は一つの主なロードテスト測定である。も
う一つはスループットである。応答時間は、個別のトラ
ンザクションが完了する時間を測定する。スループット
は、時間ユニットあたりどれだけ多くのトランザクショ
ンが処理されているかの測定であり、システムが行って
いる仕事量を測定する。さらに、コンポーネントをテス
トし又は識別するすることを望む開発者は、自ら自身の
テストを作成することなしに、さらにそれらのソフトウ
エアコンポーネントを他へ提供することなくそうするこ
とを希望する。
However, the performance of application underloading is generally known only after the application is deployed in the desired operating environment.
Therefore, the biggest problem faced by application developers is that it cannot be a test to see if each object behaves as designed or even works together as a system. How many concurrent users the middleware application can accommodate in the transaction response time specified so far,
The bottleneck is caused by the lack of useful tools that help application developers to determine which objects in an application to identify under real world load conditions. Response time is one major load test measurement. The other is throughput. Response time measures the time it takes for an individual transaction to complete. Throughput is a measure of how many transactions are being processed per unit of time and measures the amount of work the system is doing. In addition, developers who wish to test or identify components want to do so without writing their own tests, and without providing their software components to others.

【0014】発明の概要 上述した背景を注意しつつ、本発明の目的はリモートシ
ステムに展開されたソフトウエア・コンポーネントのリ
モートテストおよび/又は確認を容易にするために、ウ
エブベースのテストハーネスを提供することである。ソ
フトウエアコンポーネントはリモートでロードテストさ
れ得る。リモートソフトウエア・コンポーネントをテス
トし確認するために使用されるテストは、リモートソフ
トウエアコンポーネントから又はリモートソフトウエア
コンポーネントのために自動的に生成可能である。テス
トは、単一のソフトウエアコンポーネント上、複数のソ
フトウエアコンポーネント上、一つ以上のソフトウエア
コンポーネントを含むアプリケーション上で実行可能で
ある。現在の好適な実施の形態において、テストシステ
ムはアプリケーション内の複数のソフトウエアオブジェ
クトからの応答時間測定を分析し、アプリケーション内
のどのソフトウエアオブジェクトが性能のボトルネック
となりやすいかを予想する。
SUMMARY OF THE INVENTION With the above background in mind, it is an object of the present invention to provide a web-based test harness to facilitate remote testing and / or verification of software components deployed in a remote system. It is to be. Software components can be load tested remotely. The tests used to test and verify the remote software component can be automatically generated from or for the remote software component. Tests can be performed on a single software component, multiple software components, or an application containing one or more software components. In the presently preferred embodiment, the test system analyzes response time measurements from multiple software objects in the application and predicts which software objects in the application are likely to be performance bottlenecks.

【0015】発明の詳細な説明 図1は、本発明に従ったテストシステム110を描いて
いる。システムはリモートテストするアプリケーション
・アンダー・テスト114である。ここでアプリケーシ
ョン・アンダーテスト114は、N階層モデルのアプリ
ケーションである。より詳細には、3階層のデータベー
ス・アプリケーションである。アプリケーション・アン
ダー・テスト114は、銀行又は保険会社用のデータベ
ースを表すことが出来、又はそれはインターネットアプ
リケーションを表すことが出来る。アプリケーション・
アンダーテスト114の特定のファンクションは本発明
に重要ではない。
DETAILED DESCRIPTION OF THE INVENTION FIG. 1 depicts a test system 110 in accordance with the present invention. The system is an application under test 114 for remote testing. Here, the application under test 114 is an N-layer model application. More specifically, it is a three-tier database application. The application under test 114 can represent a database for a bank or insurance company, or it can represent an internet application. application·
The particular function of undertest 114 is not critical to the invention.

【0016】さらに、テストシステム110及びアプリ
ケーション・アンダーテスト114が常駐する特定のハ
ードウエアは、本発明には重要ではない。お互いから離
れて展開される二つの間に幾つかのコネクションがあれ
ば充分である。図において、そのコネクションはインタ
ーネット122により提供される。このシナリオにおい
て、テストシステム110はテスト会社つまりアプリケ
ーション・サービス・プロバイダ(ASP)100によ
り所有されるサーバにおいて展開され得る。sぷりけー
ションが多くの異なるプラットフォームで同じ働きをす
るように、多くのアプリケーションはプラットフォーム
・インディペンデント技術を使用して記述されている。
プラットフォーム・インディペンデント技術は、任意の
プラットフォームにおいてアプリケーションの実行を容
易にすることを意図している。
Moreover, the particular hardware on which test system 110 and application undertest 114 reside is not critical to the invention. It suffices to have some connections between the two deployed apart from each other. In the figure, the connection is provided by the Internet 122. In this scenario, test system 110 may be deployed on a server owned by a test company or application service provider (ASP) 100. Many applications are written using platform-independent technology so that splications work the same on many different platforms.
Platform independent technology is intended to facilitate the execution of applications on any platform.

【0017】アプリケーション・アンダーテスト114
は、当該技術において知られているソフトウエア・アプ
リケーションである。それは、いくつかのビジネスロジ
ックを隠蔽するミドルウエア116を含んでいる。ユー
ザはクライアントデバイスによりアプリケーションにア
クセスする。ネットワークがさらに普及しリストが成長
すると共に、多くのタイプのクライアントデバイスが可
能である。パーソナルンピュータ、電話システム、さら
にはマイクロコントローラを有する家庭用器具が、クラ
イアントデバイスであり得る。使用の際には、アプリケ
ーションアンダーテスト114に接続された複数のユー
ザがあるであろうことが考慮されている。アプリケーシ
ョンアンダーテスト114に同時にアクセスしているユ
ーザの数は、アプリケーションの「ロード」の一つの指標
である。
Application under test 114
Is a software application known in the art. It contains middleware 116 that hides some business logic. The user accesses the application via the client device. Many types of client devices are possible as networks become more prevalent and lists grow. Personal computers, telephone systems, and even household appliances that have a microcontroller can be client devices. In use, it is contemplated that there may be multiple users connected to the application under test 114. The number of users who are simultaneously accessing the application undertest 114 is one indicator of application "load."

【0018】例示的な実施形態において、アプリケーシ
ョン・アンダーテストへのアクセスは、当該技術におい
て知られたタイプのグラフィカル・ユーザ・インターフ
ェース(GUI)124によりなされる。複数のユーザ
とアプリケーションの間の対話を管理するソフトウエア
が知られている。そのようなソフトウエアは、時として
ウエブサーバと呼ばれている。ウエブサーバはブラウザ
ーと結合して動作し、ほとんどのPC上で一般に発見さ
れるソフトウエアである。
In the exemplary embodiment, access to the application undertest is provided by a graphical user interface (GUI) 124 of the type known in the art. Software is known that manages interactions between multiple users and applications. Such software is sometimes called a web server. A web server works in conjunction with a browser and is software commonly found on most PCs.

【0019】ウエブサーバおよびブラウザーはHTML
として知られた標準的なフォーマットで情報を交換す
る。HTMLファイルはタグおよび各タグに関連した特
定の情報を含んでいる。タグはブラウザーへ情報に関連
したタイプを信号送信し、ブラウザーが適切なフォーマ
ットで情報を表示することを可能とする。例えばタグ
は、情報がページのタイトルであるか、情報が別のウエ
ブページへのリンクであるかの信号を送る。ブラウザー
は、ウエブサーバにより送られた一つ以上のHTMLペ
ージに基づいた特定のウインドウにスクリーンディスプ
レイを作成する。
Web server and browser are HTML
Exchange information in a standard format known as. The HTML file contains tags and specific information associated with each tag. The tag signals the type associated with the information to the browser, allowing the browser to display the information in the proper format. For example, a tag signals whether the information is the title of a page or the information is a link to another web page. The browser creates a screen display in a particular window based on one or more HTML pages sent by the web server.

【0020】ユーザがブラウザーのウインドウにコマン
ド又はデータを入力すると、ブラウザはHTMLページ
に関する情報使用してこの情報をフォーマットし、それ
をウエブサーバへ送信する。このように、ウエブサーバ
はユーザから来るコマンドおよびデータをどのように処
理するかを知っている。
When the user enters a command or data into the browser window, the browser formats this information using information about the HTML page and sends it to the web server. Thus, the web server knows how to process the commands and data coming from the user.

【0021】GUI124は、受信する情報およびコマ
ンドをミドルウエア116へ渡す。図1の例では、ミド
ルウエア116はEJBと共に作成されるミドルウエア
アプリケーションとて描かれている。コンテナ130
は、好適な実施形態においては、商業的に入手可能なコ
ンテナである。コンテナ内部には、多くのエンタープラ
イズJava(登録商標) beans 132が存在
する。各Java(登録商標) beans 132
は、より一般的にはソフトウエアコンポーネントとして
考えら得る。GUI124は、その情報を適切なEJB
132へ渡す。アプリケーション・アンダー・テスト1
14からの出力は、ユーザへのディスプレイのためにG
UI124へ戻される。
The GUI 124 passes the received information and command to the middleware 116. In the example of FIG. 1, the middleware 116 is depicted as a middleware application created with the EJB. Container 130
Is a commercially available container in the preferred embodiment. Inside the container, there are many enterprise Java (registered trademark) beans 132. Each Java (registered trademark) beans 132
Can be more generally thought of as a software component. The GUI 124 sends the information to the appropriate EJB.
Pass to 132. Application Under Test 1
The output from 14 is G for display to the user.
Returned to the UI 124.

【0022】EJB132は、例示的な例において、デ
ータベースアプリケーションを集合的に実行する。EJ
B132は、データベース126と128からのデータ
との対話およびそれらの処理を管理する。それらは特定
のレコードにおける設定値、又は特定のレコードからの
獲得値としてそのようなデータベースファンクションを
実行するであろう。他のファンクションは、データベー
スにおける列を作成しデータベースにおける列の発見す
ることである。データベースにアクセスするEJBは、
しばしば「エンティティ・ビーンズ」と呼ばれる。
EJB 132 collectively executes database applications in the illustrative example. EJ
B132 manages the interaction with the data from databases 126 and 128 and their processing. They will perform such a database function as a set value in a particular record, or a value obtained from a particular record. Another function is to create columns in the database and discover columns in the database. The EJB that accesses the database
Often called "Entity Beans".

【0023】別のタイプのEJBは、計算又は制御ファ
ンクションを実行する。これらは、「セッションビーン
ズ」と呼ばれる。セッションビーンズは、データエント
リーを検査し、又はエントリーが誤っていることをユー
ザへのレポートすることなどのファンクションを実行す
る。セッションビーンズは、データベースアクセスの実
行するためにエンティティ・ビーンズを呼び出す。
Another type of EJB performs a computational or control function. These are called "session beans". Session beans perform functions such as inspecting data entries or reporting to the user that an entry is incorrect. Session beans call entity beans to perform database access.

【0024】各タイプのデータベーストランザクション
は、そのファンクションのみを実行する単一のビーンに
より制御され、他方いくつかのエンティティビーンズが
データベースアクセスに厳密に結びついていないファン
クションを実行するように、アプリケーションのプログ
ラミングを分離することが一般的には好ましい。同様
に、いくつかのセッションビーンズはエンティティビー
ンズを呼び出すことなくデータベースアクセスファンク
ションを実行するであろう。このように、異なるテスト
技術がテストセッションビーンズおよびエンティティビ
ーンズに対し記述されるが、いくつかのEJBはエンテ
ィティビーンズおよびセッションビーンズの双方の属性
を有することが可能である。結局、任意のビーンのフル
テストはテスティング・エンティティ・ビーンズおよび
テスティング・セッション・ビーンズの技術を利用し得
るであろう。
Each type of database transaction is controlled by a single bean that executes only that function, while programming the application so that some entity beans execute a function that is not strictly tied to database access. Separation is generally preferred. Similarly, some session beans will perform database access functions without calling entity beans. Thus, although different test techniques are described for test session beans and entity beans, some EJBs can have attributes of both entity beans and session beans. After all, a full test of any bean could utilize the techniques of testing entity beans and testing session beans.

【0025】テストシステム110はインターネット1
22上でアプリケーション・アンダー・テスト114の
EJB132にアクセスすることが出来る。このよう
に、各ビーンは開発者のサイトでテストのためにリモー
トでエクササイズすることが出来る。このように開発者
は単にASP100がインターネットを介してソフトウ
エアコンポーネントにアクセスし、テストを実行するこ
とを可能とする。好適な実施形態においては、テストは
ビーンズの応答時間の決定に支配的に向けられており、
より一般的にはアプリケーションアンダーテストを作成
するために使用されるコンポーネント又はオブジェクト
の応答時間の決定に向けられている。ビーンの応答時間
を知ることは、アプリケーションの性能について結論付
けを可能とする。上述したように、応答時間は一つの主
なロードテスト測定である。別のものはスループットで
ある。応答時間は個別のトランザクションが完了する時
間を測定する。スループットは時間ユニットあたりどれ
だけ多くのトランザクションが処理されているかの測定
であり、システムが行っている仕事の量を測定する。テ
ストシステム110の詳細は以下に記述されている。
The test system 110 is the Internet 1
On 22, the application under test 114 EJB 132 can be accessed. This way, each bean can be exercised remotely for testing on the developer's site. In this way, the developer simply allows the ASP 100 to access the software components over the Internet and perform the tests. In the preferred embodiment, the test is primarily directed at determining the response time of the beans,
More generally it is directed to determining the response time of components or objects used to create application undertests. Knowing the response time of the bean allows conclusions about the performance of the application. As mentioned above, response time is one major load test measurement. Another is throughput. Response time measures the time to complete an individual transaction. Throughput is a measure of how many transactions are being processed per unit of time and measures the amount of work the system is doing. Details of test system 110 are described below.

【0026】例示的な実施形態においては、テストシス
テム110はASPロケーションにける一つ以上のサー
バにインストールされるソフトウエアである。好適な実
施形態では、テストシステム110はJAVA(登録商
標)アプリケーションである。アプリケーションアンダ
ーテスト114と同様に、テストシステム110はグラ
フィカルユーザインターフェース150により制御され
る。GUI150は当該技術において知られたウエブサ
ーバであり得る。
In the exemplary embodiment, test system 110 is software installed on one or more servers at an ASP location. In the preferred embodiment, the test system 110 is a JAVA application. Similar to the application under test 114, the test system 110 is controlled by the graphical user interface 150. GUI 150 may be a web server known in the art.

【0027】ここで図2に戻ると、テストシステム11
0の詳細が示されている。テストシステム110はいく
つかのファンクションを実行する。ひとつのファンクシ
ョンはテストコードの生成である。第2のファンクショ
ンはアプリケーションアンダーテストにおいて一つ以上
のEJBをリモートにエクササイズするためにテストコ
ードを実行することである。別のファンクションはテス
トコードの実行の結果をレコードし分析することであ
る。これらのファンクションは、内部ネットワーク(イ
ントラネット)102に結合された一つ以上のコンピュ
ータ上で実行しているソフトウエアにより実行される。
ソフトウエアは商業的に入手可能な言語を使用して以下
で記述されるファンクションを実行する。
Returning now to FIG. 2, the test system 11
0 details are shown. The test system 110 performs several functions. One function is the generation of test code. The second function is to execute test code to remotely exercise one or more EJBs in the application under test. Another function is to record and analyze the results of test code execution. These functions are performed by software executing on one or more computers coupled to internal network (Intranet) 102.
The software uses commercially available languages to perform the functions described below.

【0028】図2はテストシステム110が分散アーキ
テクチャを有することを示している。ソフトウエアコン
ポーネントはテストシステム内のいくつかの異なるコン
ピュータにインストールされている。複数のコンピュー
タは複数のユーザにケイパビリティを提供し、複数のタ
スクを実行し、非常に多くのテストを実行するために使
用される。コンピュータの特定数や、これらのコンピュ
ータ上のテストシステムのソフトウエアコンポーネント
の分散は本発明にとって重要なことではない。
FIG. 2 illustrates that test system 110 has a distributed architecture. The software components are installed on several different computers in the test system. Computers are used to provide capabilities to multiple users, perform multiple tasks, and perform a large number of tests. The particular number of computers and the distribution of software components of the test system on these computers is not critical to the invention.

【0029】コーディネータ210は、GUI150と
インターフェースするソフトウエアアプリケーションで
ある。コーディネータ210の主たる目的は、ユーザに
トランスペアレントな方法でユーザの要求を適切なサー
バにルートすることである。図3に目を向けると、コー
ディネータ210がより詳細に示されている。しかし図
3はコーディネータ210の概念的な構造を示している
ことが理解されるべきである。コーディネータ210は
単一ではなく、別々に識別されたソフトウエアである。
例えば、それはテストシステム110の様々な他のコン
ポーネント内のコーディネーション・ソフトウエアとし
て実現され得る。さらに、GUI150を実現するため
に使用されるウエブサーバは、さらに個別又はコーディ
ネートしている複数のユーザからの複数の要求の問い合
わせなどのコーディネーションファンクションを提供す
ることが理解されるべきである。
The coordinator 210 is a software application that interfaces with the GUI 150. The main purpose of the coordinator 210 is to route the user's requests to the appropriate server in a user transparent manner. Turning to FIG. 3, the coordinator 210 is shown in more detail. However, it should be understood that FIG. 3 shows a conceptual structure of the coordinator 210. Coordinator 210 is not a single, but separately identified piece of software.
For example, it may be implemented as coordination software within various other components of test system 110. Further, it should be appreciated that the web server used to implement the GUI 150 also provides coordination functions such as querying multiple requests from multiple users, individually or coordinated.

【0030】コーディネータ210は、分配ユニット3
12を含んでいる。分配ユニット312は、好ましくは
サーバ上で動いているソフトウエアプログラムである。
ユーザの要求は分配ユニット312により受信される。
要求が受信されると、分配ユニット312は要求を処理
するために必要とされるリソースのタイプを決定する。
例えば、コードを生成するための要求は、コードジェネ
レータを実行しているサーバーへ送られなくてはならな
い。
The coordinator 210 is the distribution unit 3
Contains twelve. The distribution unit 312 is preferably a software program running on the server.
The user's request is received by the distribution unit 312.
When a request is received, distribution unit 312 determines the type of resources needed to process the request.
For example, a request to generate code must be sent to the server running the code generator.

【0031】コーディネータ210は、ペンディングし
た要求を保持するためのいくつかのキューを含んでい
る。各キューはコーディネータ210を実装しているサ
ーバのメモリーに実装される。図3において、キュー3
18A...318Cが記述されている。各キュー31
8A...318Cは、リソースの特定のタイプに対応
している。例えば、キュー318Aはコードジェネレー
タ要求を含み、キュー318Bはテストエンジン要求を
含み、キュー318Cはデータ分析要求を含み得る。分
配ユニットは、要求を処理するために必要とされるリソ
ースのタイプに基づき、各要求をキュー318A...
318Cのいずれか一つへ送信する。
The coordinator 210 contains several queues for holding pending requests. Each queue is implemented in the memory of the server that implements the coordinator 210. In FIG. 3, cue 3
18A. . . 318C is described. Each queue 31
8A. . . 318C corresponds to a particular type of resource. For example, queue 318A may include code generator requests, queue 318B may include test engine requests, and queue 318C may include data analysis requests. The distribution unit queues each request based on the type of resource required to process the request, queue 318A. . .
318C to any one.

【0032】各キュー318A...318Cに関連し
て、キューマネージャ320A...320Cが存在す
る。各キューマネージャは、コーディネータ210を実
装しているサーバ又は関連したコーディネータ210を
実装しているサーバで実行しているソフトウエアとして
好ましくは実現される。各キューマネージャは、その関
連したキューにおける要求に応答し得るテストシステム
110内のサーバのリストを維持している。キューマネ
ージャは、キューの最上部の要求をその要求を処理する
ために備えられたサーバへ送信する。キューマネージャ
と要求を処理するために備えられたサーバとの間の接続
はインターネット102上にある。利用可能な他のサー
バが存在し、キューに更なる要求がある場合に、キュー
マネージャは、キューにおける次の要求を利用可なサー
バへ送信するであろう。利用可能なサーバが存在しない
場合、各キューマネージャはサーバの一つがその割り当
てられた要求の処理を完了するのを待機する。
Each queue 318A. . . 318C, the queue manager 320A. . . 320C is present. Each queue manager is preferably implemented as software running on a server implementing coordinator 210 or a server implementing an associated coordinator 210. Each queue manager maintains a list of servers in test system 110 that can respond to requests in its associated queue. The queue manager sends the request at the top of the queue to the server equipped to handle the request. The connection between the queue manager and the server equipped to handle the requests is on the Internet 102. If there are other servers available and there are more requests in the queue, the queue manager will send the next request in the queue to the available servers. If no servers are available, each queue manager waits for one of the servers to finish processing its assigned request.

【0033】要求が処理されると、コードジェネレータ
やテストエンジンなどのサーバは、キューマネージャに
レポートを戻す。それに応じて、キューマネージャはキ
ューからの別の要求を送信し、さらにその結果を分配ユ
ニット312に提供する。分配ユニット312は、要求
を出したユーザへ戻すことが出来、要求が完了したこと
を指示し、結果を与えるか結果のロケーションを与え
る。例えば、テストコードが生成された後、ユーザはテ
ストコードがどこに保存されているかの指示を受信し得
る。テストが実行された後、ユーザはテストの平均実行
時間又はテストの間になされた各測定を格納するファイ
ルのロケーションのレポートを受信可能である。
When the request is processed, a server such as a code generator or test engine returns a report to the queue manager. In response, the queue manager sends another request from the queue and provides the result to distribution unit 312. The distribution unit 312 can be returned to the user who made the request, indicating that the request was completed, giving the result or the location of the result. For example, after the test code is generated, the user may receive an indication of where the test code is stored. After the test is run, the user can receive a report of the average run time of the test or the location of the file storing each measurement made during the test.

【0034】複数のユーザからのコマンドを含むユーザ
コマンドを処理するソフトウエアシステムがよく知られ
ていることは当業者に理解されるであろう。そのような
システムは、ユーザからのコマンドを受信し、それらの
コマンドを処理し、結果をユーザに提示するためのイン
ターフェースを有しなくてはならない。そのようなイン
ターフェースは、そららの結果がさらなるコマンドを実
現するためにユーザにより使用出来ることを可能とす
る。そのようなインターフェースがここで利用されるの
がよく、一般的にGUI150として描かれている。例
えば、GUI150はユーザが、特定のアプリケーショ
ンをテストするために生成されるべきコードを指示する
コマンドを入力することを可能とするであろう。コード
が生成されると、GUI150は、ユーザがテストがそ
のテストコードを利用して実行されるべきことを指定す
ることを可能とする。
Those skilled in the art will appreciate that software systems for processing user commands, including commands from multiple users, are well known. Such systems must have an interface for receiving commands from users, processing those commands, and presenting the results to the user. Such an interface allows those results to be used by the user to implement further commands. Such an interface is often utilized here and is generally depicted as GUI 150. For example, GUI 150 may allow a user to enter a command that directs the code to be generated to test a particular application. Once the code is generated, the GUI 150 allows the user to specify that the test should be run utilizing that test code.

【0035】いくつかの要求は複数のハードウエアエレ
メントのコーディネーションを必要とするであろうこと
は可能である。以下で述べるように、テストエンジンの
ファンクションの一つは、複数のユーザをシュミレート
するロードを適用することである。いくつかの例では、
一つのコンピュータは複数のクライアントスレッドを実
行することにより複数のユーザをシュミレートすること
が出来る。しかし、サーバ上で実行出来るクライアント
スレッドの数には限界がある。
It is possible that some requirements may require coordination of multiple hardware elements. As described below, one of the functions of the test engine is to apply a load that simulates multiple users. In some examples,
A single computer can simulate multiple users by executing multiple client threads. However, there is a limit to the number of client threads that can be executed on the server.

【0036】テストシステム110を操作するために、
テストコードが存在することが必要である。ユーザはテ
ストコードを提供することが可能である。又、テストコ
ードはNH、ナシュアのTeradyne Softw
are and System Testにより販売さ
れるTESTMASTERなどの、自動コード生成シス
テムにより提供され得る。とはいえ、図2はコードジェ
ネレータ212Aおよび212Bが、コードを作成する
ための好適な実施形態において使用されることを説明し
ている。図4に戻ると、コードジェネレータ212のさ
らなる詳細が示されている。
To operate the test system 110,
Test code must be present. The user can provide the test code. The test code is NH, Nashua's Teradyne Softw
It may be provided by an automatic code generation system, such as TESTMASTER sold by are and System Test. Nevertheless, FIG. 2 illustrates that code generators 212A and 212B are used in the preferred embodiment for creating code. Returning to FIG. 4, further details of code generator 212 are shown.

【0037】コードジェネレータ212は、いくつかの
スクリプト512を含んでいる。各スクリプトは、コー
ドジェネレータ212が特定のタイプのテストを実行す
るコードを作成するために実行しなくてはならない一連
のステップである。スクリプトは任意の好都合なプログ
ラミング言語において準備され得る。テストシステム1
10が実行するであろう各タイプのテストのために、ス
クリプトが提供される。所望されるテストのタイプに関
するユーザ入力は、いずれのスクリプト512が与えら
れた任意の時間にコードを生成するために使用されるべ
きであるかを指定する。
The code generator 212 includes a number of scripts 512. Each script is a series of steps that the code generator 212 must perform to create the code that performs a particular type of test. The script can be prepared in any convenient programming language. Test system 1
A script is provided for each type of test that 10 will perform. User input regarding the type of test desired specifies which script 512 should be used to generate code at any given time.

【0038】選択されたスクリプト512は、テストコ
ード516を集める。テストコード516を集めるため
に必要とされる情報は、いくつかのソースから来る。情
報のひとつのソースはテストテンプレート514であ
る。ほとんどの種類のテストにおいて必要とされるいく
つかのステップが存在する。例えば、テストされている
オブジェクトは展開されなくてはならず(deplo
y)、いくつかの初期化シーケンスが必要とされる。テ
ストが繰り返される場合、指定されたスタート時間にテ
ストを開始するコードが存在しなくてはならず、テスト
の終了時間はレコードされなくてはならない。さらに、
必要とされるデータがテストの間ログされるようにする
コードが存在しなくてはならない。テストの後で、必要
とされるいくつかの停止ステップがさらにある。例え
ば、初期化が特定のEJBへの参照への要求と共にスタ
ートした場合、テストコードはリリースされるその参照
で停止する可能性がある。これらのステップが実行させ
るテストコードはテンプレート514の組において獲得
される。
The selected script 512 collects the test code 516. The information needed to gather test code 516 comes from several sources. One source of information is the test template 514. There are some steps required in most types of tests. For example, the object being tested must be expanded (deplo
y), some initialization sequences are required. If the test is repeated, there must be code to start the test at the specified start time, and the end time of the test must be recorded. further,
There must be code that allows the required data to be logged during the test. After the test there are also some stopping steps required. For example, if initialization starts with a request for a reference to a particular EJB, the test code may stop at that reference being released. The test code that these steps execute is captured in a set of templates 514.

【0039】さらに、テストコード516がユーザによ
り提供される入力を適切に反映することを確かにする異
なるテンプレートが存在し得る。例えば、異なるコンテ
ナは同じ結果を達成するために異なるコマンドフォーマ
ットを必要とし得る。これらの異なるフォーマットがテ
ストコード516に反映され得る一つの方法は、各コン
テナに対して異なるテンプレートを持つことによる。代
替的に、ユーザはテストの間レコードされるべき情報の
タイプを指定し得るであろう。この例では、データ・ロ
ギング・プリファレンスは、テストの間データをレコー
ドさせるコマンドラインに相違があるテンプレートの組
を有することにより実現され得る。例示的なテンプレー
トが付録2に示されている。
In addition, there may be different templates that ensure that the test code 516 properly reflects the input provided by the user. For example, different containers may require different command formats to achieve the same result. One way these different formats can be reflected in test code 516 is by having different templates for each container. Alternatively, the user could specify the type of information to be recorded during the test. In this example, the data logging preference can be achieved by having a set of templates with different command lines that cause the data to be recorded during the test. An exemplary template is shown in Appendix 2.

【0040】テンプレートは、テストされる特定のオブ
ジェクト用にコードをカスタマイズするよう特定のスペ
ースを満たすように記述される。好適な実施の形態にお
いては、コードジェネレータ212はアプリケーション
アンダーテストにおける特定のEJBをテストするため
のコードを生成する。多くのテンプレートのために満た
される必要があるであろう情報はテストされているEJ
Bの記述である。含まれ得る別の情報は、アプリケーシ
ョンアンダーテストをテストに適した状態に置くための
ユーザコードである。例えば、銀行用のアカウント情報
のデータベースを管理するアプリケーションのコンポー
ネントのテストにおいて、テスト目的のために使用する
ために特定のアカウントをデータベースに作成する必要
があるか、もしくはそうではなくてテストする前にアプ
リケーションを初期化する必要がある。これらのイベン
トを引き起こすために必要とされるコードは、アプリケ
ーションにとってユニークであり、従ってアプリケーシ
ョンをテストするテスターにより最良にテストコードに
挿入されるであろう。この例示的な実施形態において
は、このコードはテンプレート内に挿入され、それから
最終テストコードへ運ばれる。
Templates are written to fill a particular space to customize the code for the particular object being tested. In the preferred embodiment, code generator 212 generates code for testing a particular EJB in an application under test. Information that would need to be filled for many templates is being tested
This is the description of B. Another information that may be included is user code to put the application undertest in a state suitable for testing. For example, in testing a component of an application that maintains a database of account information for banks, you need to create a specific account in the database to use for testing purposes, or else before testing. The application needs to be initialized. The code required to trigger these events is unique to the application and will therefore be best inserted in the test code by the tester testing the application. In this exemplary embodiment, this code is inserted into the template and then brought to the final test code.

【0041】テンプレートはテストのために使用するた
めの特定のデータの組などの他の情報を満たすためにヒ
ューマンテスター用のスペースをさらに含み得る。しか
し、現在の好適な実施形態においては、データセットは
データテーブルの形態で人間のユーザにより提供され
る。
The template may further include space for a human tester to fill other information such as a particular set of data to use for testing. However, in the presently preferred embodiment, the dataset is provided by a human user in the form of a data table.

【0042】コードジェネレータ212はファンクショ
ンテストを生成し得る。ファンクションテストは、ビー
ンが正確にその要求されたファンクションを実行するか
の決定に向けられたテストである。ファンクションテス
トにおいて、ソフトウエアアンダーテストは全ての状態
において正確に動作することを確かにするために多くの
テストケースと共にエクササイズされる。様々な入力に
対して期待される出力を示すデータテーブルが、ファン
クションテストソフトウエアを作成するために使用され
る。しかし、現在の好適な実施の形態では、コードジェ
ネレータ212はロードテストを実行するテストコード
をまず生成する。ロードテストにおいて、ソフトウエア
が実行する予定である全ての可能なファンクションおよ
びファンクションの組をエクササイズするためにソフト
ウエアを刺激(stimulate)する必要はない。
むしろ普通は、一つのテスト状態を提供することで充分
である。ロードテストの目的は、アプリケーションの同
時ユーザの数が増加するにつれてソフトウエアの動作が
どのように低減するかを測定することである。
Code generator 212 may generate functional tests. A function test is a test aimed at determining whether the bean will perform exactly the required function. In functional testing, software undertesting is exercised with many test cases to ensure that it works correctly in all situations. A data table showing the expected output for various inputs is used to create the functional test software. However, in the presently preferred embodiment, the code generator 212 first generates test code that executes the load test. In a load test, it is not necessary to stimulate the software to exercise all the possible functions and function sets that the software will perform.
Rather, it is usually sufficient to provide one test condition. The purpose of load testing is to measure how the behavior of the software decreases as the number of concurrent users of the application increases.

【0043】好適な実施形態においては、テストシステ
ム110は様々なタイプのロードテストを実現するため
のスクリプト512を含んでいる。一つのタイプのロー
ドテストはEJBの応答時間を決定する。これはテスト
システムが、EJBに関するロードを変化させて、増加
されたロードに対応する応答時間の低減を決定すること
を可能とする。別のタイプのロードテストは回帰型のロ
ードテストである。回帰型のロードテストにおいて、ス
クリプトはEJBがいくつかのベースライン刺激に対し
て反応したのと同じ方法でEJBが反応しているかを決
定するためにオペレーションを実行する。一般的に、ベ
ースラインの刺激に対する応答はEJBの正確な動作を
表している。回帰型テストを有することで、テストシス
テム110がビーン上でロードを増加させて、エラーレ
ートをロードのファンクションとして決定することを可
能とする。
In the preferred embodiment, the test system 110 includes scripts 512 for implementing various types of load tests. One type of load test determines the EJB's response time. This allows the test system to vary the load on the EJB to determine a reduction in response time corresponding to the increased load. Another type of load test is a regression type load test. In the recursive load test, the script performs operations to determine if the EJB is responding in the same way that the EJB responded to some baseline stimuli. In general, the response to the baseline stimulus represents the correct behavior of the EJB. Having a recursive test allows the test system 110 to increase the load on the bean and determine the error rate as a function of load.

【0044】これらのタイプのロードテストのためのテ
ストコード516を生成するために、スクリプト512
はビーンアンダーテストに特有のテストコードを作成し
なくてはならない。ユーザはGUI150によりどのビ
ーンをテストするかの情報を提供する。好適な実施形態
においては、この情報は特定のビーンアンダーテストの
ための「展開デスクリプタ」を含むアプリケーションアン
ダーテスト内のファイル名を提供するヒューマンテスタ
ーにより提供される。この情報は、ネットワークのどこ
にビーンアンダーテストが発見されるべきかを指定す
る。スクリプト512はビーンをテストするために何の
テストコードが生成されなくてはならないかを確かめる
ためにこの情報を使用する。
Script 512 is used to generate test code 516 for these types of load tests.
Must create test code specific to the bean under test. The user provides the GUI 150 with information about which bean to test. In the preferred embodiment, this information is provided by the human tester who provides the filename in the application undertest that contains the "deployment descriptor" for the particular bean undertest. This information specifies where in the network the bean under test should be found. The script 512 uses this information to see what test code must be generated to test the bean.

【0045】スクリプト512は、ビーンが記述される
プラットフォーム・インディペンデント言語の属性を使
用してコードを生成することができる。例えば、ここに
おいて使用されているSunのJAVA(登録商標)言
語の場合、各ビーンは「リフレクション」と呼ばれるアプ
リケーションプログラムインターフェースを有する。よ
り詳細には、各ビーンは、「ホーム」インターフェースお
よび「リモート」インターフェースを有している。「ホー
ム」インターフェースは、ビーンにおいてリモートイン
ターフェースを作成し又は発見するための方法について
の情報を明らかにする。リモートインターフェースはこ
のコードがクライアントのソフトウエアからどのように
アクセスできるかを明らかにする。好適な実施形態にお
いて特に興味深いことは、ホームインターフェースおよ
びリモートインターフェースはビーンをアクセスするた
めのテストプログラムを作成するのに必要とされる情報
を提供することである。
The script 512 can generate code using the attributes of the platform independent language in which the bean is described. For example, in the Sun JAVA language used herein, each bean has an application program interface called "reflection." More specifically, each bean has a "home" interface and a "remote" interface. The "home" interface reveals information about how to create or discover a remote interface in a bean. The remote interface reveals how this code can be accessed by the client software. Of particular interest in the preferred embodiment, the home and remote interfaces provide the information needed to create a test program for accessing the bean.

【0046】リフレクションを使用することで、任意の
プログラムはビーンの「特性」および「メソッド」として何
が知られているかを決定することが出来る。ビーンの特
性は、ビーンにおいて使用される変数のためのデータタ
イプおよび属性を記述する。ビーンにおいて使用される
全ての変数はそれに関連した特性を有しなくてはならな
い。このように、スクリプト512はビーンをテストす
るために何のメソッドがエクササイズされる必要がある
かおよびメソッドに刺激を与えるために生成される必要
がある変数を自動的に決定する。テストされる場合にメ
ソッドによるであろう変数はさらに決定可能である。好
適な実施形態においては、この情報はシンボルテーブル
515に格納されている。
The use of reflection allows any program to determine what is known as the "property" and "method" of a bean. Bean properties describe the data type and attributes for the variables used in the bean. All variables used in the bean must have properties associated with them. Thus, the script 512 automatically determines what method needs to be exercised to test the bean and the variables that need to be generated to stimulate the method. The variables that will depend on the method when tested can be further determined. In the preferred embodiment, this information is stored in the symbol table 515.

【0047】シンボルテーブル515は、従来の任意の
ファイルフォーマットにおけるファイルである。メソッ
ドおよび特性に関する情報がテーブルに捕捉されると、
スクリプト515はこの情報を使用して特定のコンポー
ネントアンダーテストのメソッドおよび特性をエクササ
イズするテストコードを作成する。特にスクリプト51
5は自動的に正確なデータタイプの変数を作成し、それ
にビーンに使用される任意の変数に対するタイプに一致
した値を割り当てる。
The symbol table 515 is a file in any conventional file format. Once the information about methods and properties is captured in the table,
Script 515 uses this information to create test code that exercises the methods and properties of the particular component undertest. Especially script 51
5 automatically creates a variable of the correct data type and assigns it a type-matched value for any variable used in the bean.

【0048】データジェネレータ518は、リフレクシ
ョンインターフェースからの情報を使用して、ビーンの
テストの間使用される変数に対する値を生成する。適切
な値が特定のビーンのテストにおいて使用される各変数
に対して生成され得る多くの方法がある。しかし、本発
明の商業的な実施形態においては、データジェネレータ
518がデータ値を生成するために使用するであろう三
つの異なるアルゴリズムの選択が与えれらる。ユーザ
は、「最大」、「最小」、又は「ランダム」を指定することが
出来る。最大選択が指定されると、データジェネレータ
518はリフレクションインターフェースにより獲得さ
れた特性記述を分析し、最大の許容値を決定する。ユー
ザが「最小」を指定すると、データジェネレータ518は
可能な最小値を生成する。ユーザがランダムを指定する
と、データジェネレータ518は、最大と最小の間のラ
ンダムなところの値を選択する。
The data generator 518 uses the information from the reflection interface to generate values for the variables used during the testing of the bean. There are many ways in which an appropriate value can be generated for each variable used in testing a particular bean. However, in the commercial embodiment of the present invention, a selection of three different algorithms that the data generator 518 will use to generate the data values is provided. The user can specify "maximum", "minimum", or "random". When the maximum selection is specified, the data generator 518 analyzes the characterization obtained by the reflection interface to determine the maximum allowed value. If the user specifies "minimum", the data generator 518 will generate the smallest possible value. If the user specifies random, the data generator 518 selects a random value between the maximum and minimum.

【0049】ロードテストが所望される多くの例では、
特定の値の正確な値は重要ではない。例えば、ビーンが
データベースからの値を適切に格納し取り出しているか
をテストする時は、いずれの値が格納され取り出される
かは常に問題となるわけではない。データベースから読
み出される値が格納された値と同じであるかのみが問題
である。又、特定のビーンの動作をタイミングする場合
には、何の値がメソッドに入力されるかはそれほど重要
ではない。これらのシナリオにおいては、データジェネ
レータ518は、テストコードにおいて使用される変数
に対する値を自動的に生成することが出来る。
In many instances where a load test is desired,
The exact value of a particular value is not important. For example, when testing whether a bean stores and retrieves values from a database properly, it doesn't always matter which value is stored and retrieved. It only matters if the value read from the database is the same as the stored value. Also, when timing the behavior of a particular bean, what value is input to the method is less important. In these scenarios, the data generator 518 can automatically generate values for variables used in the test code.

【0050】テストにおいて使用される変数の特定の値
が重要である場合、コードジェネレータ212はユーザ
に別のオプションを提供する。データジェネレータ51
8からの変数の導出値ではなく、スクリプト512はユ
ーザ提供のデータテーブル520からデータ値を獲得す
るように指示され得る。ユーザは、例えば、特定のファ
ンクションの実行時間が入力データの値に依存するであ
ろう場合にはさらにロードテストのためにデータテーブ
ルの提供することを欲し得る。
If the particular value of the variable used in the test is important, code generator 212 provides the user with another option. Data generator 51
Rather than the derived value of the variable from 8, the script 512 may be instructed to obtain the data value from the user-provided data table 520. The user may want to provide a data table for further load testing, for example, when the execution time of a particular function will depend on the value of the input data.

【0051】データテーブルは、ネットワーク122の
コンピュータの一つにおけるファイルとして単純に実現
される。特定のメソッドへの入力および出力として使用
するための特定の変数に対する値を指定する、テーブル
におけるエントリーはファイルにおけるデリミタにより
分離される。そのようなテーブルのための標準的なフォ
ーマットは、CSV形式である。好適な実施の形態におい
ては、テストシステム110は、そのようなファイルを
作成し編集するための従来の技術を使用したタイプのフ
ァイルエディターを含んでいる。さらに、テストシステ
ム110は必要とされるフォーマットを有するファイル
を既知の技術を使用してインポートする能力を含み得
る。
The data table is simply implemented as a file in one of the computers of the network 122. Entries in the table that specify values for particular variables to use as inputs and outputs to particular methods are separated by delimiters in the file. The standard format for such tables is the CSV format. In the preferred embodiment, test system 110 includes a file editor of the type using conventional techniques for creating and editing such files. In addition, test system 110 may include the ability to import files having the required formats using known techniques.

【0052】ビーンのメソッドは、ビーンが実行出来る
ファンクションを記述する。メソッドの記述の一部はメ
ソッドへの入力又は出力である変数の特性である。リフ
レクションインターフェースにより決定され得る各メソ
ッドの記述の第2の部分は、このメソッドを引き起こす
ために必要とされるコマンドである。スクリプト512
は、上述のように任意のメソッドを引き起こすために必
要とされるコードを決定し、そのメソッドへの入力とし
て提供するのに適したデータ値を生成することが出来る
ので、スクリプト512はビーンにおいて任意のメソッ
ドを呼び出すコードを生成することが出来る。レコード
技術は、ユーザのデータテーブルを占有(popula
te)するために使用され得る。
The bean method describes the function that the bean can perform. Part of the method description is the characteristics of variables that are inputs or outputs to the method. The second part of each method description that can be determined by the reflection interface is the command needed to invoke this method. Script 512
The script 512 is optional in the bean as it can determine the code needed to trigger any method as described above and generate a data value suitable for providing as input to that method. It is possible to generate code that calls the method of. The record technology occupies the user's data table (popula).
can be used to

【0053】ロードテストに向けられた好適な実施の形
態においては、ビーンのメソッドが呼び出される順序は
効率的なテストにとっては重要ではない。このように、
スクリプト512は、ビーンの各メソッドを引き起こす
ことにより有用なテストコードを自動的に生成すること
が出来る。反映されたスクリプトの順序付けのために現
在は三つのメソッド、主にレコーディング、コードフィ
ルタリング、UMLメタデータの使用がある。
In the preferred embodiment directed to load testing, the order in which the bean's methods are called is not critical to efficient testing. in this way,
The script 512 can automatically generate useful test code by invoking each method of the bean. There are currently three methods for ordering reflected scripts, mainly recording, code filtering, and UML metadata.

【0054】より成熟したテストは、言語に対して規定
されたパターンに依存して自動的に構築可能である。S
unのJAVA(登録商標)においては、データベース
に対するアクセスを制御するためのエンティティビーン
ズは、接頭「set」又は「get」を有するメソッドを有
するべきである。これらの接頭は、メソッドがデータベ
ースにデータを書き込むか、データベースからデータを
読むかの信号を送る。メソッドの名称の接辞は、いずれ
の値がデータベースに書き込まれ又は読み出されるかを
指示する。例えば、setSSNと名付けられたメソッ
ドはSSNとして識別されるパラメータに対する値をデ
ータベースに書き込むファンクションを実行すべきであ
る。getSSNはSSNと名付けられたパラメータか
らの値を読み出すべきである。
More mature tests can be built automatically depending on the patterns defined for the language. S
In un JAVA ™, the entity beans for controlling access to the database should have methods with the prefix “set” or “get”. These prefixes signal whether the method writes data to or reads data from the database. The method name affix indicates which value is written to or read from the database. For example, a method named setSSN should perform a function that writes a value to the database for the parameter identified as the SSN. getSSN should read the value from the parameter named SSN.

【0055】これらの規定されたパターンを利用するこ
とで、スクリプト512は双方のメソッドの動作をエク
ササイズし確認するためのコードを生成することが出来
る。これらのメソッドをテストするために生成されるテ
ストコードは、まず、データジェネレータ518により
作成された引数をそれに提供することによりまずメソッ
ドsetSSNをエクササイズするであろう。それか
ら、メソッドgetSSNがエクササイズされるであろ
う。getメソッドがsetメソッドへ提供された引数
と同じ値を戻す場合には、データベースアクセスが予定
どうりに実行されたことが確かめ得る。
By utilizing these defined patterns, the script 512 can generate code for exercising and confirming the operation of both methods. The test code generated to test these methods will first exercise the method setSSN by providing it with the arguments created by the data generator 518. Then the method getSSN will be exercised. If the get method returns the same value as the argument provided to the set method, then it can be verified that the database access was performed in a scheduled manner.

【0056】多くのタイプのエンタープライズ・ワイド
・アプリケーションのために、ロードに最も敏感になり
がちなビーンは、データベースにアクセスするものであ
る。このように、setおよびgetメソッドのみのテ
ストはとても有用なロードテスト情報を提供する。
For many types of enterprise wide applications, the beans that are most likely to be load sensitive are those that access the database. Thus, tests of set and get methods only provide very useful load test information.

【0057】しかし、なされるテストの量は必要な場合
には拡張可能である。いくつかのビーンはデータベース
における列を作成し又は見つけるメソッドをさらに含ん
でいる。従来、データベースにおいて列を作り又は見つ
けるメソッドは「create」又は「find」で始まる
ように名付けられていた。このようにビーンのインター
フェースを反映することにより、スクリプト512はさ
らにこれらのメソッドをどのようにテストするかを決定
出来る。これらのメソッドはsetおよびgetメソッ
ドと同じく実行可能である。アプリケーションインター
フェースによって明らかにされる特性は、データベース
における各々の列の記述されたフォーマットであろう。
このようにcreateメソッドが使用される場合、デ
ータはその列を満たすように自動的に生成され、従って
createメソッドを充分に実行する。
However, the amount of testing done can be expanded if necessary. Some beans also include methods to create or find rows in the database. Traditionally, methods to create or find columns in databases have been named to begin with "create" or "find". By reflecting the bean interface in this manner, the script 512 can further determine how to test these methods. These methods are as executable as the set and get methods. The property exposed by the application interface will be the described format of each column in the database.
When the create method is used in this way, the data is automatically generated to fill the column, thus performing the create method satisfactorily.

【0058】好適な実施形態において、findメソッ
ドはユーザにより提供されたデータテーブル520から
のデータを使用してエクササイズされる。しばしば、デ
ータベースは特にテスト用にそれらに挿入されるテスト
列を有している。そのようなテスト列は、データテーブ
ル520へ書き込み可能であろう。しかし、列を作成
し、それをデータで満たし、その列を捜すためにfin
dメソッドをエクササイズすることは可能であろう。
In the preferred embodiment, the find method is exercised using data from the data table 520 provided by the user. Databases often have test columns inserted into them, especially for testing. Such test columns could be written to the data table 520. However, to create a column, fill it with data, and then find fin
It would be possible to exercise the d method.

【0059】EJBのメソッドをエクササイズするコマ
ンドが作成されると、スクリプト512はテストの出力
をレコードするために必要であるコマンドをクライアン
トテストコード516に挿入することが出来る。テスト
が多くのエラーのチェックを行う場合、テストコード5
16はログ216にエラーをレコードする指示を含む必
要がある。同様にテストが応答時間を測定している場
合、テストコード516は応答時間が決定され得る情報
をログ216に書き込む指示を含まなくてはならない。
記述された実施の形態においては、全ての主なデータベ
ースのファンクションはユーザにより供給されるテスト
コードなくして実行され得る。いくつかの例において、
全てのファンクションを自動的に生成されるすべてのデ
ータでエクササイズすることが可能である。必要とされ
る全ての情報は、アプリケーションアンダーテストのオ
ブジェクトコードのみから生成可能であろう。好適な実
施形態の重要な特徴は「最小インベーシブ」であること、
つまりテストを実行するためにユーザは何ら要求され
ず、テストが顧客の環境に影響を与えないことである。
インベーシブテストの害は存在しない。クライアントコ
ードは、ユーザが書くであろうものと正確に等しいコー
ドを実行する。
Once the command to exercise the method of the EJB has been created, the script 512 can insert the necessary commands into the client test code 516 to record the output of the test. If the test does a lot of error checking, test code 5
16 must include an instruction to record an error in log 216. Similarly, if the test is measuring response time, the test code 516 must include instructions to write information to the log 216 that may determine the response time.
In the described embodiment, all major database functions can be performed without user-supplied test code. In some examples,
It is possible to exercise all functions with all automatically generated data. All the required information could be generated from the application undertest object code only. An important feature of the preferred embodiment is "minimum invasive",
That is, no user is required to run the test, and the test does not impact the customer's environment.
There is no harm from the Invasive Test. The client code executes code exactly as the user would write it.

【0060】リモートソフトウエアコンポーネントの
「応答時間」が測定されうるいくつかの可能な方法があ
る。上述したように応答時間は主なロードテストの一測
定である。別のものはスループットである。応答時間は
個別のトランザクションが完了するのに必要な時間を測
定する。スループットはどれだけ多くのトランザクショ
ンが単位時間あたりに処理されているかの測定であり、
システムが行っている仕事量を測定する。一つの方法
は、ビーン内の全てのメソッドを実行するための全時間
が測定可能であることである。別の方法は、ビーンの始
動時間が測定可能なことである。始動時間はビーンがま
ずアクセスされてから第1のメソッドが実行出来るまで
にかかる時間である。応答時間を測定する別のメソッド
は、書くメソッドを実行するのにかかる時間を測定する
ことである。別の変形として、応答時間は「get」メソ
ッドのみの実行にかかる時間、又は「set」メソッドの
みを実行するのにかかる時間に基づいて測定され得る。
There are several possible ways in which the “response time” of remote software components can be measured. As mentioned above, response time is one of the main load test measurements. Another is throughput. Response time measures the time required for an individual transaction to complete. Throughput is a measure of how many transactions are being processed per unit of time,
Measure the work done by the system. One way is that the total time to execute all the methods in the bean is measurable. Another way is that the start-up time of the bean can be measured. The start-up time is the time it takes for the first method to be executed after the bean is first accessed. Another method to measure response time is to measure the time it takes to execute a writing method. As another variation, the response time may be measured based on the time taken to execute only the "get" method or the time taken to execute only the "set" method.

【0061】応答時間のいずれの測定が使用されるかに
依存して、異なる測定がレコードされなくてはならな
い。例えば全応答時間のみが必要とされる場合、全メソ
ッドをエクササイズするテストコードの部分が開始およ
び終了を実行する時間を単にレコードすることで充分で
ある。始動応答時間が必要とされる場合、クライアント
テストコードはまずビーンアンダーテストにアクセスす
る時間、テストシーケンスにおける第1のメソッドが呼
び出しに準備する時間をレコードしなくてはならない。
他方、応答時間が各メソッドに対して計算されるような
場合には、クライアントテストコードは、各メソッドが
呼び出される前後の時間をレコードしなくてはならず、
呼び出されているメソッドのいくつかの指示がさらにロ
グされなくてはならない。これらの場合には情報はメソ
ッドのサブセットのみに対しレコードさえる必要がある
が、類似の情報は「get」又は「set」ファンクション
のみの応答が測定されなくてはならない場合にレコード
されなくてはならない。
Depending on which measurement of response time is used, different measurements must be recorded. For example, if only the total response time is needed, it is sufficient to simply record the time at which the portion of the test code exercising the entire method performs the start and end. If a startup response time is required, the client test code must first record the time to access the bean under test, the time the first method in the test sequence prepares to call.
On the other hand, if the response time is calculated for each method, the client test code must record the time before and after each method is called,
Some indication of the method being called must be further logged. In these cases the information needs to be recorded for only a subset of the methods, but similar information must be recorded if the response of only the "get" or "set" function has to be measured. .

【0062】さらに、シュミレートされる複数のユーザ
が存在する場合には、各データポイントに対して複数の
値が存在する。例えば、テストシステム110がリモー
トユーザをシュミレートする場合には、ビーンが各シュ
ミレートされるリモートユーザに応答するのにかかる時
間は異なることが可能であり、100の異なる応答時間
の測定にまで達する。100のユーザに対する応答時間
は最大応答時間として、即ち全ての100のシュミレー
トされたユーザがビーンアンダーテストを実行を終了す
るのにかかる時間として提示され得る。代替的に、完了
するための平均時間は応答時間としてレポートされ得
る。別の変形として、値の範囲がレポートされ得る。
Furthermore, if there are multiple users to be simulated, there will be multiple values for each data point. For example, if the test system 110 simulates remote users, the time it takes the bean to respond to each simulated remote user can be different, reaching up to 100 different response time measurements. The response time for 100 users may be presented as the maximum response time, ie the time it takes for all 100 simulated users to complete the bean under test. Alternatively, the average time to complete can be reported as response time. As another variant, a range of values can be reported.

【0063】好適な実施形態においては、クライアント
テストコード516は応答時間の任意の可能な測定に対
し必要であろう全ての情報および全ての可能なディスプ
レイフォーマットをレコードする指示を含んでいる。全
てのメソッドの実行の開始および終了の時間がレコード
される。さらにメソッドが識別されることを可能とする
指示がレコードされる。遅延ではなくファクタに基づく
分析をサポートするために、各メソッドの実行の実際の
結果および予想された結果がエラーを検出可能なように
レコードされる。さらに、例外の発生がログに記録され
る。それからデータアナライザーは、ログをレビュー
し、任意のフォーマットに従って及び所望される応答時
間の任意の定義を使用して応答時間をディスプレイす
る。つまり、データアナライザーは例外又はエラーの数
をカウントすることが出来る。
In the preferred embodiment, client test code 516 includes instructions to record all the information and all possible display formats that would be needed for any possible measurement of response time. The start and end times of execution of all methods are recorded. In addition, instructions are recorded that allow the method to be identified. To support factor-based analysis rather than delay, the actual and expected results of each method execution are recorded so that errors can be detected. In addition, exception occurrences are logged. The data analyzer then reviews the log and displays the response time according to any format and using any definition of response time desired. That is, the data analyzer can count the number of exceptions or errors.

【0064】データが格納されると、ユーザはデータが
提示される所望のフォーマットを指定することが出来
る。好適な実施の形態においては、テストシステム11
0はテストの結果をグラフィカルに提示し、テスターが
オペレーション、特にアプリケーションアンダーテスト
114の性能のボトルネックの理解を助ける能力を有す
る。
Once the data is stored, the user can specify the desired format in which the data will be presented. In the preferred embodiment, the test system 11
0 has the ability to present the test results graphically and help the tester understand the performance bottlenecks of the operation, and in particular the application undertest 114.

【0065】一つの重要な出力は、応答時間とロードの
グラフである。ログファイルは特定のテストケースに対
するテストの実行の開始、終了時間を含んでいる。テス
トケースは、いくつかの異なるロード状態での測定を含
んでいる(即ち、テストエンジン214A...214
Cは異なる数の同時ユーザをシュミレートする)。この
ようにデータアナライザーはログにおけるデータを読
み、異なるロード状態で得られた結果を識別することが
出来る。このデータはグラフにされ得る。
One important output is the response time vs. load graph. The log file contains the start and end times of the test run for a particular test case. The test case contains measurements at several different load conditions (ie, test engine 214A ... 214).
C simulates a different number of concurrent users). In this way the data analyzer can read the data in the log and identify the results obtained under different load conditions. This data can be graphed.

【0066】別の有用な分析は、同時ユーザの数のファ
ンクションとして生成される秒あたりのエラー数であ
る。この分析を実行するために、テストコード516は
テストステートメントが不正確な結果を生成する時はい
つでも、エラーメッセージをログに書き込む指示を含み
うる。データベース・コンテキストにおいては、不正確
な結果は「get」ファンクションが、「set」ファンク
ションへの引数として渡されるものと同じものを返さな
い場合に識別可能である。即ち、アクセスされた時、ビ
ーンが応答せず又は例外状態と共に応答をする場合に識
別され得る。上述のように、データアナライザー218
は、ログファイルをパスしシュミレートされた異なる状
態におけるエラーの数を読む。所望する場合には、エラ
ーは、エラーカウント、即ちエラーカウントをテストを
実行するのにかかる時間で分割したエラーレートとして
表すことができる。
Another useful analysis is the number of errors per second generated as a function of the number of concurrent users. To perform this analysis, test code 516 may include instructions to write an error message to the log whenever a test statement produces an incorrect result. In the database context, incorrect results are identifiable if the "get" function does not return the same one passed as an argument to the "set" function. That is, when accessed, it can be identified if the bean does not respond or responds with an exception condition. As mentioned above, the data analyzer 218
Reads the number of errors in different states, passing through the log file and simulated. If desired, the error can be expressed as an error count, that is, the error count divided by the time it takes to perform the test.

【0067】提供され得る出力のタイプのいくつかの例
は、秒あたりのトランザクション対ユーザ数、応答時間
対ユーザ数、例外対ユーザ数、エラー対ユーザ数、メソ
ッドによる応答時間、応答時間対実行時間、秒あたりの
トランザクション対実行時間を示すグラフである。応答
時間を測定する様々な方法が上述されている。好適な実
施形態においては、トランザクションは一つのメソッド
の実行として定義されているが、他の定義も可能であ
る。
Some examples of the types of output that can be provided are transactions per user per second, response time per user, exceptions per user, errors per user, method response time, response time vs execution time. , Is a graph showing transaction versus execution time per second. Various methods of measuring response time have been described above. In the preferred embodiment, a transaction is defined as the execution of one method, but other definitions are possible.

【0068】実行時間は、テストケースを実行する全経
過時間として定義され、EJBの実行をセットアップす
る時間を含むであろう。経過時間のファンクションとし
て応答時間をビューすることは例えば、「メモリー・リ
ーク」などの問題を明らかにする場合に有用である。メ
モリーリークは、アプリケーションアンダーテストを実
行しているサーバ上のメモリーの一部が非生産的なもの
に対して使用される状態のことをいう。より多くのメモ
リーが非生産的に使用される場合、アプリケーションア
ンダーテストを実行するために有用なメモリーは少なく
なり、実行が遅れる。代替的にはこのフォーマットの結
果をビューすることは、アプリケーションアンダーテス
トが効率的にキャッシングを利用していることを明らか
にし得る。キャッシングが効率的に使用されると、実行
時間は経過時間が増加するにつれ減少し得る。
Execution time is defined as the total elapsed time to execute a test case and will include the time to set up the execution of the EJB. Viewing response time as a function of elapsed time is useful, for example, in revealing problems such as "memory leaks." A memory leak is a condition in which some of the memory on the server running the application undertest is used unproductively. When more memory is used unproductively, less memory is available to perform application undertests and execution is delayed. Alternatively, viewing the results in this format may reveal that application undertesting makes efficient use of caching. When caching is used efficiently, execution time can decrease as elapsed time increases.

【0069】テストシステム110の構造を記述し、そ
のアプリケーションの例をあげることで、テストシステ
ム110の幾つかの重要な特徴を見ることができる。一
つの特徴は、アプリケーションアンダーテストの性能が
容易に獲得され、多くのデータが自動方式で獲得される
ことである。ソフトウエア開発者は、テストシステムを
使用して、アプリケーションにおける性能のボトルネッ
クになりがちな特定のビーンを見つけ得る。開発者は、
これらのビーンを書き直し、又はそれらの展開記述子
(deployment descriptor)を変
化させる。例えば、展開記述子の一側面は、アプリケー
ションアンダーテスト114内でインスタンス生成(i
nstantiate)され得るビーンのコピー数を示
している。開発者は、ビーンがボトルネックである場合
にビーンのインスタンシエーションの数を増加させ得
る。
By describing the structure of the test system 110 and giving examples of its applications, some important features of the test system 110 can be seen. One of the features is that the performance of application under test is easily obtained and a lot of data is obtained in an automatic manner. Software developers can use test systems to find specific beans that tend to be performance bottlenecks in applications. The developer
Rewrite these beans or change their deployment descriptors. For example, one aspect of the deployment descriptor is the instantiation (i
The number of bean copies that can be nstantiated) is shown. The developer may increase the number of instantiations of the bean if the bean is the bottleneck.

【0070】ここで記述されるテストシステムは、スケ
ーラビリティのためにEJBをリモートテストするため
の容易で正確なツールを提供する。アプリケーションサ
ーバ上で展開されている間EJBを呼び出すユーザによ
り指定された数のバーチャルユーザを作成する。そのツ
ールはEJBアンダーテストを検索し、自動的にクライ
アントテストプログラムを生成し、ルールベースのデー
タ又は提供されたデータを使用し、クライアントテスト
プログラムをマルチスレッドし、EJBアンダーテスト
を駆動することによりこのことを行う。結果は、性能対
ユーザ数をレポートする一連のグラフであり、フォーマ
ットを使用することを容易にする有用な情報を提供す
る。
The test system described herein provides an easy and accurate tool for remotely testing EJBs for scalability. Create a number of virtual users specified by the user who calls the EJB while deployed on the application server. The tool searches for EJB undertests, automatically generates client test programs, uses rule-based data or provided data, multithreads client test programs, and drives EJB undertests to Do things. The result is a series of graphs that report performance versus number of users, providing useful information that makes the format easy to use.

【0071】本発明の別の特徴は、テストがアプリケー
ションアンダーテストにおいて何ら変化を必要とせず、
つまりソフトウエアアンダーテストを含むサーバに特別
なテストエージェントをさらにインストールすることを
必要とせずにテストが実行されることである。生成され
たテストコード516は、リモートプロシージャ・コー
ルを使用してアプリケーションアンダーテストにおいて
ビーンをエクササイズする。
Another feature of the invention is that the test does not require any changes in the application under test,
That is, the tests are run without the need to additionally install a special test agent on the server, including the software undertest. The generated test code 516 exercises the bean in the application under test using remote procedure calls.

【0072】テストシステム110の記述された実施形
態の別の特徴は、それがスケーラブルであることであ
る。同時に実行されうるテストの数を増加するため、つ
まり実行可能なテストの大きさを増加するために、より
多くのテストエンジンが付加され得る。同様に、より多
くのコードジェネレータは多くの数の同時ユーザのシュ
ミレーションをサポートするために付加されうる。各コ
ンポーネントのコピーの指定数は、本発明にとって重要
ではない。所定の実施形態おける各コンポーネントの実
際の数は、導入ごとに異なる傾向にある。アプリケーシ
ョンがより多くのユーザをサポートするにつれ、より多
くのテストエンジンが必要とされる傾向にある。
Another feature of the described embodiment of test system 110 is that it is scalable. More test engines can be added to increase the number of tests that can be run at the same time, that is, to increase the size of tests that can be run. Similarly, more code generators can be added to support the simulation of a large number of simultaneous users. The designated number of copies of each component is not critical to the invention. The actual number of components in a given embodiment tends to vary from installation to installation. As applications support more users, more test engines tend to be needed.

【0073】記述される実施形態の別の特徴は、テスト
がアプリケーションアンダーテストにおいて最も単純な
構成、説明された例におけるビーンでなされることであ
る。この方法には二つの利点がある。第1に、テスト
が、最少な人間の介入で非常に単純に生成されることで
ある。第2に、ソフトウエア開発者が性能を改善するた
めに変化又は調整が必要とされるソフトウエアのポイン
トに集中することが可能なことである。
Another feature of the described embodiment is that the test is done in the simplest configuration in the application under test, the bean in the described example. This method has two advantages. First, the test is very simply generated with minimal human intervention. Second, it allows software developers to focus on the points of the software that need to be changed or adjusted to improve performance.

【0074】様々な他の分析が実行されうることが理解
されるべきである。ロードが増加する場合、しばしばシ
ステムの性能が劇的に変化する幾つのポイントがある。
いくつかの例では、トランザクションを完了するための
時間が劇的に増加する。トランザクションプロセス時間
の劇的な変化は、システムが効率的にロードを処理出来
なかったことを示している。しかし処理時間の減少は、
ロードの限界が到達されたことをさらに示している。時
として、システムアンダーテストは正確な応答を生成す
るのにかかるであろうより迅速にエラーメッセージに反
応するであろう。従って追跡されている唯一のパラメー
タが応答時間の場合には、ロードのファンクションとし
ての処理時間の減少は、最大ロードが越えられたことの
信号を送り得る。もちろん、エラー又はエラーレートの
増加は、最大ロードが越えられたことの信号を送り得
る。さらに、複数のテストケースを実行し、各テストケ
ースを異なるビーンに集中することにより、テストシス
テム110は性能のボトルネックであるビーンを自動的
に決定し、アプリケーションアンダーテスト114にロ
ードレートを割り当て得る。
It should be appreciated that various other analyzes can be performed. When the load increases, there are often some points at which the performance of the system changes dramatically.
In some examples, the time to complete a transaction increases dramatically. The dramatic change in transaction process time indicates that the system could not handle the load efficiently. However, the decrease in processing time is
It further indicates that the load limit has been reached. In some cases, the system under test will react to the error message more quickly than it would take to produce an accurate response. Thus, if the only parameter being tracked is response time, a decrease in processing time as a function of load can signal that the maximum load has been exceeded. Of course, an error or an increase in error rate may signal that the maximum load has been exceeded. Furthermore, by executing multiple test cases and concentrating each test case on a different bean, the test system 110 may automatically determine the performance bottleneck bean and assign a load rate to the application under test 114. .

【0075】一つの実施形態を記述してきたが、多くの
代替的な実施形態又は変形がなされ得る。例えば、テス
トシステム110は自動的にテストコードを生成し、デ
ータベースアクセスのパターンを追跡するビーンをエク
ササイズするテストコードを自動的に生成することが記
述されていた。これらのビーンは時として「エンティテ
ィビーン」と呼ばれている。一般的に、データの計算を
実行し、エンティティビーンの実行時間を制御する他の
ビーンがアプリケーションに存在する。これらのビーン
は時として「セッションビーン」と呼ばれている。セッシ
ョンビーンは、エンティティビーンに対するテストコー
ドの生成を単純にする規定されたプログラムパターンを
追跡する傾向にはない。結果として、自動的に生成され
たセッションビーンに対するテストコードは、これらの
ビーンを充分にはテストし得ないであろう。記述された
実施形態においては、ヒューマンテスターは自動的に生
成されたテストが不正確な場合にセッションビーンをテ
ストするためのテストコードを提供することを期待され
ている。
While one embodiment has been described, many alternative embodiments or variations can be made. For example, it has been described that the test system 110 automatically generates test code and automatically generates test code that exercises the bean tracking database access patterns. These beans are sometimes referred to as "entity beans". Generally, there are other beans in the application that perform calculations on the data and control the execution time of the entity beans. These beans are sometimes referred to as "session beans". Session beans do not tend to track defined program patterns that simplify the generation of test code for entity beans. As a result, test code for automatically generated session beans will not be able to fully test these beans. In the described embodiment, the human tester is expected to provide test code to test the session bean if the automatically generated test is incorrect.

【0076】記述された実施の形態に対する一つの可能
な変形は、セッションビーンに対するテストの完全さが
増加され得ることである。セッションビーンのテストの
正確性を増加させる一つの方法は、アプリケーションア
ンダーテスト114の実際の動作の間これらのビーンの
実行についてのデータを獲得することである。このデー
タは、自動システムが、データテーブルを構築するため
に使用され得る適切なデータ値などのことを決定するこ
とを可能とする。つまり獲得されたデータは自動システ
ムが、セッションビーンが本物のテストを作成するため
に他のセッションビーン又はエンティティビーンにアク
セスする順序を決定することを可能とするであろう。
One possible variation on the described embodiment is that the completeness of the test for session beans can be increased. One way to increase the accuracy of testing session beans is to capture data about the execution of these beans during the actual operation of the application under test 114. This data allows the automated system to determine things such as the appropriate data values that can be used to build the data table. That is, the acquired data will allow the automated system to determine the order in which the session beans will access other session beans or entity beans to create a genuine test.

【0077】さらに、記述されるように、テストコード
はアプリケーションアンダーテストの単純な構成つまり
「コンポーネント」である特定のビーンをテストするため
に生成される。テストは異なる構成、例えばビーンにお
ける特定のメソッドなどにフォーカスし得る。テストコ
ードは、ビーン内の特定のメソッドをテストするために
生成され得る。また、システムがテストコードの実行の
開始および終了の時間をレコードすることが記述されて
いた。他のイベントの時間が代わりに又は付加してレコ
ードされ得る。例えば、個別メソッドの開始および終了
時間はレコードされ、個別メソッドの性能が決定され得
る。
Further, as described, test code is generated to test a particular bean, which is a simple construct or "component" of application undertest. The test may focus on different configurations, such as a particular method on the bean. Test code can be generated to test a particular method in a bean. It was also described that the system records the start and end times of test code execution. The time of other events may be recorded instead or in addition. For example, the start and end times of individual methods can be recorded and the performance of individual methods can be determined.

【0078】代替的に、テストされている構成の複雑性
が増加され得る。ビーン間の対話を決定するために複数
のビーンが同時にテストされ得る。例えば一つのテスト
ケースは一つのビーンの指定されたインスタンスをエク
ササイズし、別のテストケースは第2のビーンの指定さ
れた数のインスタンスをエクササイズするように複数の
テストケースが同時に実行され得る。
Alternatively, the complexity of the configuration being tested can be increased. Multiple beans can be tested simultaneously to determine the interactions between the beans. For example, multiple test cases may be run simultaneously such that one test case exercises a specified instance of one bean and another test case exercises a specified number of instances of a second bean.

【0079】可能な変更の別の例として、テストコード
を構成するために使用されるテンプレートの数が変更さ
れ得る。一つの可能性として、各テンプレートはテスト
を開始し、実行し、停止するのに必要とされる全てのス
テップを含むことである。従って、テストコードは単一
のテンプレートを満たすことにより作成されるであろ
う。代替的には、各テンプレートは一つのファンクショ
ン、例えば開始、テスト、又は停止などを実行するのに
必要なステップのみを含み得る。この実現においては、
テストコードは複数のテンプレートを共にストリングす
ることにより作成されるであろう。
As another example of possible changes, the number of templates used to construct the test code can be changed. One possibility is that each template contains all the steps needed to start, run and stop the test. Therefore, the test code would be created by filling a single template. Alternatively, each template may only include the steps necessary to perform one function, such as start, test, or stop. In this realization,
The test code will be created by stringing multiple templates together.

【0080】さらに、テストを実行において多くの同時
ユーザが「同期される」することが記述されていた。同時
ユーザは異なるサーバおよび同じサーバ上のテストコー
ドのコピーを同期することによりシュミレートされる。
用語「同期される」は、複数のコピーが正確に同じ時間
に正確に同じファンクションをそれぞれ実行することを
示唆するような方法に限定されるように解釈されるべき
ではない。従って、ここにおいて実行が同期されたと記
述される場合には、コードの各コピーがテストが実行さ
れる時間のウインドウの間にコードの各コピーがアプリ
ケーションアンダーテストの要求をしていることのみが
必要とされている。コードのいくつかのコピーは他のも
のよりはすぐに実行を開始し又はすぐに終了し得る。し
かし実行時間にオーバーラップがある限り、テストプロ
グラムは同期され、つまり同時に実行されていると言う
ことが出来る。
It was further described that many concurrent users were "synchronized" in running tests. Simultaneous users are simulated by synchronizing copies of test code on different servers and the same server.
The term "synchronized" should not be construed as limited to methods suggesting that the multiple copies each perform the exact same function at the exact same time. Therefore, if the executions are described here as being synchronized, then it is only necessary that each copy of the code requires an application under test during the window of time that the test is executed. It is said that. Some copies of the code may start executing sooner or end sooner than the other. But as long as there is overlap in execution time, it can be said that the test programs are synchronized, that is, they are executed simultaneously.

【0081】さらなる変形として、テストシステム11
0はアプリケーションアンダーテストの性能をロードの
ファンクションとして指示する出力を提供することが記
述されていた。グラフィカル又は表の形態でのこれらの
出力は、アプリケーションにおける問題に遭遇しがちな
同時ユーザの数を識別するためにアプリケーション開発
者により使用可能である。潜在的な問題が、ロードのフ
ァンクションとして応答時間又はエラーレートの突然の
変化などによる様々な方法で明らかにされる。テストシ
ステム110は、これらの問題のポイントを指示する出
力におけるパターンを自動的に識別するように容易にプ
ログラム可能である。
As a further modification, the test system 11
It was stated that 0 provides an output that indicates the performance of the application undertest as a function of load. These outputs, in graphical or tabular form, can be used by application developers to identify the number of concurrent users who are likely to encounter problems in the application. Potential problems are revealed in various ways, such as by sudden changes in response time or error rate as a function of load. The test system 110 is easily programmable to automatically identify patterns in the output that point to these problem points.

【0082】別の有用な修正は、テストシステム110
が展開記述子における様々なパラメータに対する設定を
識別するのを手助けし得る。上述したように、ビーンに
対する展開識別子は、メモリー使用などのパラメータお
よびアプリケーションの初期化で作成されたビーンのイ
ンスタンスの数を表す「プール数」を識別する。展開識別
子におけるこれらおよび他の設定は、アプリケーション
が処理可能な性能時間および最大ロードに影響を持ちう
る。上述されたテストシステムの一つの使用として、テ
ストケースが展開記述子における異なる設定に対し繰り
返されることを可能とすることである。ヒューマンテス
ターは展開記述子の異なる設定に対する性能の変化を分
析することが出来る。しかし、テストシステム110
は、プーリングまたはメモリーの使用に影響を与えるパ
ラメータを変化させることによってビーンの展開記述子
を自動的に編集するようにプログラム可能である。テス
トシステム110は、展開記述子がアプリケーションの
性能に及ぼす影響を示すデータを自動的に収集し、提示
することが出来る。
Another useful modification is the test system 110.
Can help identify settings for various parameters in the deployment descriptor. As mentioned above, the deployment identifier for a bean identifies a parameter such as memory usage and a "pool number" that represents the number of instances of the bean created during application initialization. These and other settings in the deployment identifier can impact the performance time and maximum load an application can handle. One use of the test system described above is to allow test cases to be repeated for different settings in the deployment descriptor. Human testers can analyze performance changes for different settings of deployment descriptors. However, the test system 110
Is programmable to automatically edit the bean's deployment descriptors by varying parameters that affect pooling or memory usage. The test system 110 can automatically collect and present data indicating the impact of deployment descriptors on application performance.

【0083】自動化レベルをより高くすることは、テス
トシステム110により達成可能である。例えばテスト
システム110は、アプリケーションのビーンをテスト
し、各ビーンのテスト結果を分析することが出来る。テ
ストシステム110は性能ボトルネックを反映するビー
ンを(複数可)識別可能である(即ち最低数の同時ユー
ザに対して許容出来ない応答時間を表示する)。それか
らテストシステム110は、それらのビーン上でテスト
を実行し、アプリケーションにおけるビーンの性能を均
衡する展開記述子におけるセッティングを見つける。
(即ち、ボトルネックビーンが他のビーンより悪く動作
しないよう、展開記述子のセッティングを適切に調整す
る)コンピュータ技術は高速に進化しており、アプリケ
ーションアンダーテストおよびテストシステムを作りあ
げているハードウエアおよびソフトウエアのコンポーネ
ントの改善され又は高められたバージョンが利用しやす
くなっている。一つのクラスにおける一つのデバイスの
記述子は、例示的なものであり限定することを意図して
いるのではなく、同じクラスの他のデバイスも当業者に
代替可能である。
Higher levels of automation can be achieved by the test system 110. For example, the test system 110 can test the beans in the application and analyze the test results for each bean. The test system 110 can identify the bean (s) that reflects the performance bottleneck (ie, display an unacceptable response time for the minimum number of concurrent users). The test system 110 then runs tests on those beans to find the setting in the deployment descriptor that balances the performance of the beans in the application.
Computer technology (that is, adjusting deployment descriptor settings appropriately so that a bottleneck bean does not perform worse than other beans) is evolving at a rapid rate, and the hardware and hardware that make up application undertesting and test systems Improved or enhanced versions of software components are available. The descriptors for one device in a class are exemplary and not intended to be limiting, and other devices of the same class may be substituted by one of ordinary skill in the art.

【0084】さらに、テストされているオブジェクトが
EJBであり、Java(登録商標)言語で記述されて
いる。同じ技術は他の言語において実現されるコンポー
ネントを有するアプリケーションに等しく適用出来る。
例えば、COMスタンダードに従って記述されるアプリ
ケーションは、ビジュアルベーシックであることがで
き、CORBAスタンダードのために記述されたアプリ
ケーションはC++で記述され得る。
Further, the object being tested is an EJB, which is written in the Java (registered trademark) language. The same technique is equally applicable to applications with components implemented in other languages.
For example, applications written according to the COM standard can be Visual Basic, and applications written for the CORBA standard can be written in C ++.

【0085】使用される特定の言語に関係なく、これら
のスタンダードは別々に開発されたコンポーネントを共
に動作することを可能とすることを意図している。従っ
て、各々は他のアプリケーション、例えばテストシステ
ム110に対するメカニズムを提供しなくてはならず、
それらのコンポーネントのメソッドおよび特性にどのよ
うにアクセスするかを決定する。しかし、コンポーネン
トにアクセスするために使用される特定のコマンドに相
違があり得る。
Regardless of the particular language used, these standards are intended to allow separately developed components to work together. Therefore, each must provide a mechanism for other applications, such as test system 110,
Determine how to access the methods and properties of those components. However, there may be differences in the particular commands used to access the component.

【0086】一つの実施の形態においては、コードジェ
ネレータ212は別の言語で記述されたアプリケーショ
ンに対するテストコードを生成するために容易に修正で
きるような方法で実現される。特にコードジェネレータ
212は中間結果を、アプリケーションアンダーテスト
をプログラムするのに使用される特定の言語から独立し
たシンボルテーブルとして格納する。シンボルテーブル
はテストされているコンポーネントに対するメソッドお
よび特性をリストする。これらのメソッドにいつアクセ
スし、特定のテストに対して何のデータが使用される
か、いづれの種類のデータがレコードされるかは、シン
ボルテーブルおよびユーザからの入力から情報から決定
され得る。このように、コードジェネレータ212の多
くのファンクションはアプリケーションアンダーテスト
を実現するために使用される特定の言語から独立してい
る。
In one embodiment, the code generator 212 is implemented in such a way that it can be easily modified to generate test code for applications written in another language. In particular, the code generator 212 stores the intermediate results as a symbol table independent of the particular language used to program the application undertest. The symbol table lists methods and properties for the component being tested. Information can be determined from the symbol table and input from the user when these methods are accessed, what data is used for a particular test, and what kind of data is recorded. Thus, many functions of code generator 212 are independent of the particular language used to implement application undertesting.

【0087】このように、コードジェネレータ212の
言語指定の側面は容易に分離され、コードジェネレータ
212の比較的小さな部分を表す。特に、言語指定の情
報はアプリケーションアンダーテストにアクセスし、シ
ンボルテーブルに対する情報を獲得するために必要とさ
れる。言語指定の情報は、生成されたクライアントテス
トコードをフォーマットするためにさらに必要とされ
る。しかし、コードジェネレータ212のこれらの部分
は、テストシステム110が他の言語において記述され
るアプリケーションをテストすることを可能とするよう
に置換え可能である。さらに、テストシステム110は
言語指定の部分の複数のバージョンを含み、ユーザは入
力としてアプリケーションアンダーテストの言語を指定
することが出来る。
Thus, the language-specific aspects of code generator 212 are easily separated, representing a relatively small portion of code generator 212. In particular, the language-specific information is needed to access the application undertest and obtain the information for the symbol table. Language-specific information is also needed to format the generated client test code. However, these portions of code generator 212 can be replaced to allow test system 110 to test applications written in other languages. In addition, test system 110 includes multiple versions of the language-specific portion, allowing the user to specify the language of the application undertest as input.

【0088】本発明の好適な実施の形態に関して記述さ
れてきたが、これらの概念を含んでいる他の実施の形態
が使用可能であることが当業者に明らかとなるであろ
う。さらに、本発明の部分として含まれているソフトウ
エアはコンピュータ使用可能な媒体を含むコンピュータ
プログラムプロダクトにおいて実施可能である。例え
ば、そのようなコンピュータ使用可能媒体はコンピュー
タ読み取り可能プログラムコードセグメントを格納する
ハードドライブデバイス、CD−ROM、DVD―RO
M、コンピュータディスケットなどの読み取り可能メモ
リーデバイスを含むことが出来る。コンピュータ読み取
り可能媒体は、デジタル又はアナログ信号として運ばれ
るプログラムコードセグメントを有する通信リンク、又
は光、ワイヤード、またはワイヤレスをさらに含み得
る。従って、本発明は記述された実施の形態に限定され
るのではなく、添付された請求項の精神および範囲のみ
によって限定されるべきであることが提起される。
Although described with respect to the preferred embodiments of the present invention, it will be apparent to those skilled in the art that other embodiments containing these concepts can be used. Further, the software included as part of the present invention can be implemented in a computer program product that includes a computer usable medium. For example, such computer usable media may be a hard drive device, a CD-ROM, a DVD-RO, storing a computer readable program code segment.
M, a computer diskette, or other readable memory device. The computer-readable medium may further include a communication link having program code segments carried as digital or analog signals, or optical, wired, or wireless. It is therefore proposed that the present invention should not be limited to the described embodiments, but only by the spirit and scope of the appended claims.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明のテストシステムによるリモートアプリ
ケーションアンダーテストを記述している。
FIG. 1 describes a remote application under test by the test system of the present invention.

【図2】本発明のテストシステムをより詳細に示す図で
ある。
FIG. 2 shows the test system of the invention in more detail.

【図3】図2のコーディネータをより詳細に示す図であ
る。
FIG. 3 is a diagram showing the coordinator of FIG. 2 in more detail.

【図4】図2のコードジェネレータをより詳細に示す図
である。
FIG. 4 shows the code generator of FIG. 2 in more detail.

【符号の説明】[Explanation of symbols]

100 アプリケーション・サービス・プロバイダ 110 テスト・システム 114 アプリケーション・アンダー・テスト 210 コーディネータ 212 コードジェネレータ 100 Application Service Provider 110 test system 114 Application Under Test 210 Coordinator 212 Code Generator

─────────────────────────────────────────────────────
─────────────────────────────────────────────────── ───

【手続補正書】[Procedure amendment]

【提出日】平成14年5月21日(2002.5.2
1)
[Submission date] May 21, 2002 (2002.5.2)
1)

【手続補正1】[Procedure Amendment 1]

【補正対象書類名】図面[Document name to be corrected] Drawing

【補正対象項目名】全図[Correction target item name] All drawings

【補正方法】変更[Correction method] Change

【補正内容】[Correction content]

【図1】 [Figure 1]

【図2】 [Fig. 2]

【図3】 [Figure 3]

【図4】 [Figure 4]

Claims (23)

【特許請求の範囲】[Claims] 【請求項1】 コンピュータネットワーク上でコンピュ
ータ・アプリケーション・アンダーテストをリモートテ
ストする方法であって、 前記アプリケーション・アンダーテストのコンポーネン
トをエクササイズするテストコードを提供するステップ
と、 前記リモートアプリケーション・アンダーテストに関す
るネットワークを跨ぐ前記テストコードの第1インスタ
ンスを実行するステップと、 前記リモートアプリケーション・アンダーテストの前記
コンポーネントに関する性能データをレコードするステ
ップと、 前記レコードされた性能データを分析し、前記リモート
アプリケーション・アンダーテストの前記コンポーネン
トの性能特性を指示するステップと、を含む方法。
1. A method of remotely testing a computer application undertest on a computer network, the method comprising: providing test code to exercise a component of the application undertest; and a network for the remote application undertest. Running a first instance of the test code that spans the remote application undertest, recording performance data for the component of the remote application undertest, analyzing the recorded performance data, Indicating performance characteristics of the component.
【請求項2】 前記リモートアプリケーション・アンダ
ーテストに関するネットワークを跨ぐ前記テストコード
の少なくとも一つの更なるインスタンスを実行するステ
ップと、をさらに含む、請求項1に記載の方法。
2. The method of claim 1, further comprising executing at least one further instance of the test code across a network for the remote application undertest.
【請求項3】 前記テストコードの一つのインスタンス
の前記実行と前記テストコードの別のインスタンスとを
同期するステップと、をさらに含む、請求項2に記載の
方法。
3. The method of claim 2, further comprising synchronizing the execution of one instance of the test code with another instance of the test code.
【請求項4】 テストコードを提供するステップは、前
記テストコードを自動的に生成するステップを含むこと
を特徴とする、請求項1に記載の方法。
4. The method of claim 1, wherein providing a test code comprises automatically generating the test code.
【請求項5】 前記アプリケーション・アンダーテスト
がオブジェクト指向の言語で記述されており、テストコ
ードを提供するステップは、前記アプリケーションにお
ける一つのオブジェクトをエクササイズするテストコー
ドを提供するステップを含むことを特徴とする、請求項
1に記載の方法。
5. The application undertest is written in an object-oriented language, and the step of providing a test code includes the step of providing a test code exercising one object in the application. The method of claim 1, wherein
【請求項6】 同期するステップは、ほぼ同時に前記テ
ストコードの各インスタンスを開始するステップを含む
ことを特徴とする、請求項3に記載の方法。
6. The method of claim 3, wherein the synchronizing step includes the step of starting each instance of the test code at about the same time.
【請求項7】 分析するステップは、独立変数として前
記テストコードのインスタンスの数を有するグラフィカ
ルディスプレイを準備するステップを含み、従属変数は
性能データであることを特徴とする、請求項1に記載の
方法。
7. The method of claim 1, wherein the analyzing step includes providing a graphical display having the number of instances of the test code as an independent variable, the dependent variable being performance data. Method.
【請求項8】 分析するステップは、独立変数として前
記テストコードのインスタンスの数を有するグラフィカ
ルディスプレイを準備するステップを含み、従属変数は
前記性能データから獲得されることを特徴とする、請求
項1に記載の方法。
8. The step of analyzing comprises the step of providing a graphical display having the number of instances of the test code as an independent variable, the dependent variable being obtained from the performance data. The method described in.
【請求項9】 前記アプリケーション・アンダーテスト
が前記ネットワーク上の第1サーバ上に常駐し、前記ア
プリケーションはリモートインターフェースを有し、前
記テストコードはネットワーク上の少なくとも第2のコ
ンピュータに常駐し、前記アプリケーション・アンダー
テストの前記リモートインターフェースを使用してアプ
リケーション・アンダーテストをエクササイズすること
を特徴とする、請求項1に記載の方法。
9. The application undertest resides on a first server on the network, the application has a remote interface, and the test code resides on at least a second computer on the network. Method according to claim 1, characterized in that the application undertest is exercised using the remote interface of the undertest.
【請求項10】 分析するステップは、グラフィカルユ
ーザインターフェースを使用して分析されたデータを人
間のユーザにディスプレイするステップを含むことを特
徴とする、請求項1に記載の方法。
10. The method of claim 1, wherein the analyzing step includes the step of displaying the analyzed data to a human user using a graphical user interface.
【請求項11】 コンピュータアプリケーション・アン
ダーテストをリモートテストする方法であって、 a)ユーザインターフェースをによりテスト状態をテス
トシステムに指定するステップと、 b)前記テストシステムに対する前記ユーザインターフ
ェースにより、前記リモートアプリケーション・アンダ
ーテストの少なくとも一つのコンポーネントの性能に関
するテストデータの収集を始動するステップと、 c)前記テストシステムへの前記ユーザインターフェー
スにより、前記テストデータの出力フォーマットを指定
するステップと、 d)前記リモートアプリケーション・アンダーテストの
少なくとも一つのコンポーネントの前記応答を指定され
たフォーマットでディスプレイするステップと、を含む
ことを特徴とする、方法。
11. A method for remotely testing a computer application under test, comprising the steps of: a) assigning a test status to a test system via a user interface; -Initiating the collection of test data regarding the performance of at least one component of the undertest, c) specifying the output format of the test data by the user interface to the test system, and d) the remote application. Displaying the response of at least one component of an undertest in a specified format.
【請求項12】 前記指定されたフォーマットが、応答
時間をロードコンディションのファンクションとして指
示するグラフィカルなフォーマットであることを特徴と
する、請求項11に記載の方法。
12. The method of claim 11, wherein the specified format is a graphical format that indicates response time as a function of load conditions.
【請求項13】 前記指定されたグラフィカル・フォー
マットが、Hi−Loプロットであることを特徴とす
る、請求項11に記載の方法。
13. The method of claim 11, wherein the specified graphical format is a Hi-Lo plot.
【請求項14】 テストデータを収集するステップは、
テストプログラムの複数のコピーの実行を開始するステ
ップを含み、同時に実行されるコピーの数がロードコン
ディションに関連していることを特徴とする、請求項1
1に記載の方法。
14. The step of collecting test data comprises:
A method comprising the step of initiating execution of multiple copies of a test program, the number of copies being executed simultaneously being related to the load condition.
The method according to 1.
【請求項15】 出力フォーマットを指定するステップ
は、応答が測定されるメソッドを指定するステップを含
むことを特徴とする、請求項11に記載の方法。
15. The method of claim 11, wherein the step of specifying an output format includes the step of specifying a method for which the response is measured.
【請求項16】 テストデータを収集するステップは、
前記テストプログラムの同時実行コピーの各々に対する
前記テストプログラムにおける選択されたポイント間の
実行時間を記録し、前記テストプログラムの全てのコピ
ーに対する前記記録された実行時間を分析するステップ
を含むことを特徴とする、請求項11に記載の方法。
16. The step of collecting test data comprises:
Recording the execution time between selected points in the test program for each of the concurrent copies of the test program, and analyzing the recorded execution time for all copies of the test program. The method of claim 11, wherein
【請求項17】 分析するステップは、前記ロードコン
ディションの各々に対する、平均及び最大の実行時間を
決定するステップを含むことを特徴とする、請求項16
に記載の方法。
17. The analyzing step comprises the step of determining an average and maximum execution time for each of the load conditions.
The method described in.
【請求項18】 a)コンピュータアプリケーション・
アンダーテストはコンピュータ・データベースへのアク
セスを制御するサーバ上に常駐するソフトウエアを含
み、 b)前記サーバはネットワークに接続され、前記アプリ
ケーション・アンダーテストはネットワーク上の複数の
クライアントにより同時にアクセスされ、 c)前記テストシステムは、ネットワークに接続された
少なくとも第2のサーバに常駐され、前記アプリケーシ
ョン・アンダーテストからリモートに展開されている、
ことを特徴とする請求項11に記載の方法。
18. A) computer application
The undertest includes software residing on a server that controls access to the computer database; b) the server is connected to a network, the application undertest is accessed simultaneously by multiple clients on the network, c ) The test system resides on at least a second server connected to a network and is deployed remotely from the application under test,
The method according to claim 11, wherein:
【請求項19】 前記アプリケーション・アンダーテス
トは、複数のコンポーネントを含むことを特徴とする、
請求項11に記載の方法。
19. The application undertest includes a plurality of components,
The method according to claim 11.
【請求項20】 前記コンポーネントはエンタープライ
ズJava(登録商標)Beansを含むことを特徴と
する、請求項19に記載の方法。
20. The method of claim 19, wherein the component comprises Enterprise Java Beans.
【請求項21】 各コンポーネントは、複数のファンク
ションを含み、前記テストコードは前記コンポーネント
のファンクションをエクササイズすることを特徴とす
る、請求項19に記載の方法。
21. The method of claim 19, wherein each component includes a plurality of functions and the test code exercises the functions of the component.
【請求項22】 時間がレコードされるイベントは、コ
マンドが前記コンポーネントのアクセスファンクション
に発行される時間と、前記コマンドの実行が完了される
時間を含むことを特徴とする、請求項16に記載の方
法。
22. The event of claim 16, wherein the time recorded event comprises a time when a command is issued to an access function of the component and a time when execution of the command is completed. Method.
【請求項23】 ロードに応じてリモート展開されたア
プリケーション・アンダーテストの性能を決定するシス
テムは、 a)コーディネーション・ソフトウエアと、 b)入力として協調ソフトウエアからコマンドを受信
し、出力としてクライアントコードを有する、少なくと
も一つのコードジェネレータと、 c)入力としてコーディネーション・ソフトウエアから
コマンドを受信し、各々がクライアントのテストコード
のインスタンスを実行する複数のスレッドをその上に有
するコンピュータサーバを含む、少なくとも一つのテス
トエンジンと、 d)前記複数のスレッドにおける前記クライアントのテ
ストコードの前記インスタンスにより作成されるタイミ
ングデータを保持するコンピュータメモリーを有する少
なくとも一つのデータログと、を含む、システム。
23. A system for determining the performance of a remotely deployed application undertest in response to a load comprises: a) coordination software; and b) receiving commands from cooperating software as input and client code as output. At least one code generator having: c) a computer server having as input a command from the coordination software, each having a plurality of threads executing an instance of the client's test code; One test engine, and d) at least one data log having computer memory holding timing data created by the instance of the client test code in the plurality of threads. , Including, system.
JP2002065065A 2002-03-11 2002-03-11 Method for testing software object of web base Pending JP2003271418A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002065065A JP2003271418A (en) 2002-03-11 2002-03-11 Method for testing software object of web base

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002065065A JP2003271418A (en) 2002-03-11 2002-03-11 Method for testing software object of web base

Publications (1)

Publication Number Publication Date
JP2003271418A true JP2003271418A (en) 2003-09-26

Family

ID=29197551

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002065065A Pending JP2003271418A (en) 2002-03-11 2002-03-11 Method for testing software object of web base

Country Status (1)

Country Link
JP (1) JP2003271418A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007034796A (en) * 2005-07-28 2007-02-08 Chugoku Electric Power Co Inc:The Development support system and development support program
JP2014056388A (en) * 2012-09-12 2014-03-27 Hitachi Solutions Ltd Software task processing test simplification device
US11301364B2 (en) 2016-10-25 2022-04-12 International Business Machines Corporation Facilitating debugging serverless applications via graph rewriting

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007034796A (en) * 2005-07-28 2007-02-08 Chugoku Electric Power Co Inc:The Development support system and development support program
JP2014056388A (en) * 2012-09-12 2014-03-27 Hitachi Solutions Ltd Software task processing test simplification device
US11301364B2 (en) 2016-10-25 2022-04-12 International Business Machines Corporation Facilitating debugging serverless applications via graph rewriting

Similar Documents

Publication Publication Date Title
EP1214656B1 (en) Method for web based software object testing
US6993747B1 (en) Method and system for web based software object testing
US7000224B1 (en) Test code generator, engine and analyzer for testing middleware applications
US6775824B1 (en) Method and system for software object testing
US8732722B2 (en) Method and system for testing interactions between web clients and networked servers
Candea et al. Automated software testing as a service
Oaks Java Performance: The Definitive Guide: Getting the Most Out of Your Code
US7774757B1 (en) Dynamic verification of application portability
US8813039B2 (en) Method and system for software defect reporting
Subraya et al. Object driven performance testing of Web applications
US20140013308A1 (en) Application Development Environment with Services Marketplace
US20130282545A1 (en) Marketplace for Monitoring Services
US20140013306A1 (en) Computer Load Generator Marketplace
AU2017327823B2 (en) Test case generator built into data-integration workflow editor
US20200133829A1 (en) Methods and systems for performance testing
US8225140B2 (en) Method and system for graphical user interface testing
WO2002035357A2 (en) Enterprise test system having run time test object generation
US8510716B1 (en) System and method for simultaneously validating a client/server application from the client side and from the server side
US9489290B1 (en) Scheduling tests based on a valuation system
Ayala-Rivera et al. One size does not fit all: In-test workload adaptation for performance testing of enterprise applications
Alimadadi et al. Understanding javascript event-based interactions with clematis
JP2003271418A (en) Method for testing software object of web base
US20110022911A1 (en) System performance test method, program and apparatus
CN117234946B (en) Automatic test method and related equipment for project library system
Sprenkle Strategies for automatically exposing faults in web applications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071214

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080313

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080318

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080616

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081127