SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine(コードジン) DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

開発者のためのスケーラビリティテストとゴールテスト

手動テストとToad for Oracleを使用したスケーラビリティテスト

スケーラビリティテストおよびゴールテストの自動化

 自動テストの機能を持つユーティリティを提供している企業もあります。たとえばHP(正式にはMercury)の「LoadRunner」は高機能のテスト環境です。しかし、1人の開発者が、1つのステートメント、プロシージャ、あるいは機能コンポーネントに対してスケーラビリティテストやゴールテストを行いたい場合には、少々大げさかもしれません。個人で使うテスト環境という意味では、Quest Softwareの「Toad」の方が使いやすいでしょう。

自動で行うスケーラビリティテストの例

 以降では、Toad for Oracleを使用した実際のスケーラビリティテストの例を紹介します。最初のステップは、必要なコードの開発です。今回は、従業員テーブルにレコードを挿入するプロシージャを開発します。図1は、このプロシージャをToadエディタで表示した様子です。

図1 Toad内のサンプルプロシージャ。従業員テーブルにレコードを挿入するコードです。
図1 Toad内のサンプルプロシージャ。従業員テーブルにレコードを挿入するコードです。

 このプロシージャを作成する前に、Toad Code Testerで一連のテストを定義し、機能テストを自動化するためのテストハーネスを生成できるようにしておきました。図2は、図1のプロシージャをコンパイルしたものに対してCode Testerを実行した結果を示しています。

図2 Code Tester の結果。図1のプロシージャをコンパイルしたものに対してCode Testerを実行した結果です。
図2 Code Tester の結果。図1のプロシージャをコンパイルしたものに対してCode Testerを実行した結果です。

 機能テストが完了したら、次のステップでスケーラビリティテストやゴールテストを行います。自動化したテストを実行するために、Benchmark Factoryインターフェイスでは自動化リンクが使われています。次のステップはPL/SQLプロシージャの選択です。図3は、Benchmark Factory(BMF)からプロシージャをテストするためのシナリオウィザードの画面で、テスト対象のプロシージャが選択されています。プロシージャのテストにランダムな変数を使用したい場合は、テスト対象のプロシージャを選択した後、図4の画面でランダム化スクリプトの呼び出しを挿入できます。

図3 プロシージャの選択。Benchmark Factory(BMF)からプロシージャテストを行うためのシナリオウィザードを示しています。
図3 プロシージャの選択。Benchmark Factory(BMF)からプロシージャテストを行うためのシナリオウィザードを示しています。
図4 変数の選択。ランダムな変数を使用するための呼び出しをウィザードで挿入できます。
図4 変数の選択。ランダムな変数を使用するための呼び出しをウィザードで挿入できます。

 次のステップでは、コードの同時実行に使用するユーザー数の範囲を選択します。BMFでは、単に、下限、上限、および増分を指定します。図5では、テスト範囲を1~50、増分を10としています。

図5 ユーザー負荷の設定。テスト範囲を1~50、増分を10としています。
図5 ユーザー負荷の設定。テスト範囲を1~50、増分を10としています。

 実際のテストは、ユーザー負荷プロファイルが設定された後で実行されます。結果は表とグラフの両方の形式で提供され、Excelのスプレッドシートにダンプできます。図6に、プロシージャテストの結果を表形式で出力した最初のページを示します。

図6 表形式の出力。表形式の出力の最初のページです。
図6 表形式の出力。表形式の出力の最初のページです。

 経営陣はグラフが大好きなものですが、その点に関してもぬかりはありません。図7に、このツールから出力できるさまざまなグラフの一例を示します。スプレッドシート形式の出力にも、手作業で作成したレポートに必要に応じてそのままカットアンドペーストできるグラフが含まれています。

図7 グラフ形式の出力の例。ツールから出力できるグラフの一例を示します。
図7 グラフ形式の出力の例。ツールから出力できるグラフの一例を示します。

 開発、機能テスト、およびスケーラビリティテストやゴールテストを個人ユーザーレベルで統合して行うことのできる環境には、明らかなメリットがあります。標準ツールを使うことで、個々の開発者がコードの開発と共にテストの全フェーズにおけるテストレポートを作成でき、それを統合テストの実施時にQA/QCグループに引き渡すことができます。

開発者のためのコードテストの自動化

 本稿では、スケーラビリティテストとゴールテストの違いを取り上げ、手動テスト向けの擬似コードテストハーネスと、自動化テストインターフェイスを使用したOracleプロシージャのテストの例を紹介しました。適切なコードテストの方法と、開発者によるテストを簡便化するツールについて知りたいと考えている開発者にとって、少しでも参考になれば幸いです。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Michael Ault(Michael Ault)

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/2494 2008/08/26 14:05

おすすめ

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー