SHOEISHA iD

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

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

Visual Studio 2005 Team Systemを使ってみよう

手動テストからロードテストまで、VSTTでテストフェーズを効率化する

Visual Studio 2005 Team Systemを使ってみよう - 第4回


  • X ポスト
  • このエントリーをはてなブックマークに追加

Webテスト

 Webテスト機能はWebアプリケーションの操作内容を記録し、同じ手順の操作を行うことでWebアプリケーションの試験を行うためのものです。テストの実施前にWebアプリケーションの操作を記録する必要があるため、ある程度動作可能なWebアプリケーションが構築されていることがこの機能を利用するための前提条件になります。またテストの記録は、Internet Explorer上で動作するアドオンによって行われるため、必然的にテストの記録に利用できるブラウザはInternet Explorerに限定されます。以下の図4はInternet ExplorerによってWebアプリケーションの操作を記録しているもので、図5は記録結果をVisual Studio上で表示しているものです。

図4 Internet Explorerによる操作の記録
図4 Internet Explorerによる操作の記録
図5 操作記録から作成されたWebテスト
図5 操作記録から作成されたWebテスト

 図4、図5では、URLがリストとして表示されていますが、VSTTのWebテストは、Webアプリケーションの操作を直接記録するわけではなく、Webアプリケーションの操作によって発生したHTTP要求を記録しています。一般的なアプリケーション機能テストを行う製品では、ユーザーの操作そのものをエミュレートして、同様の処理をツールで自動実行させていることがほとんどですが、この点で大きく異なるため注意が必要です。VSTTのWebテストがこのような仕様であるため、Webアプリケーションの操作を記録しただけでは、テストの実行時にクライアント側処理のみを行うJavaScriptや、ActiveXコントロールについてはテストできないという点は、場合によってネックになることもあります。この場合は、依存要求を手動で設定したり、WebテストをC#などのコードに変換して処理を追加したりして、クライアントのみで動作する状況をエミュレートすることで対応できます。

 例えば、図5のように作成されたWebテストのURL一行一行をVSTTでは「要求」と呼びます。この要求がサーバーに発行される際にこれに関連付けて追加の要求を設定することができます。これを「依存要求」と呼びます。依存要求を手動で設定することで、Webアプリケーションの操作の記録では漏れてしまったHTTP要求を追加し、より複雑なテストを実行することができるようになります。図6は依存要求を設定している例です。

図6 依存要求の設定例
図6 依存要求の設定例

 さらに高度で複雑なWebテストを行う場合には、記録したWebテストをC#などのコードに変換し、Webテスト自体をプログラミングすることができます。VSTTのWebテストには、C#などの.NET Framework言語から操作可能なさまざまなAPIが提供されているため、これらのAPIを利用して、クライアント側のみで動作するJavaScriptの状態などをエミュレートして、HTTP要求の内容を変更するなどの処理を行うことが可能です。しかし、単体テストのテストコードなどでも同様ですが、テストコードをテストするコードは記述できないため、Webテストをコード化して編集するという方法はあまり利用しない方がいいのではないかと考えています。この方法はどうしても必要な場合のみに利用する方がいいでしょう。次の図7はWebテストをC#のコードに変換した例です。

図7 WebテストのC#コード例
図7 WebテストのC#コード例

 VSTTのWebテストには他にも抽出規則と検証ルールの設定や、データバインディングといった機能も用意されています。

 抽出規則と検証ルールはHTTP要求の応答として返される内容に指定したIDやタグに一致する内容が含まれているか、特定の文字列に一致する内容があるかなどを設定するために利用するものです。この機能を利用することである程度の検証を行うことができます。レイアウトが正しいか、色の表示が正しいかなどの見た目にかかわる部分については検証を行うことはできません。

 データバインディングは、ユーザー情報の登録などの入力フィールドに対して複数パターンの入力を試験したい場合に利用できる機能です。これを利用することで入力データをExcelやAccessなどに用意し、このデータをフォームフィールドパラメータなどと関連付けてテストを行うことができるようになります。これにより要求で送信される入力データを可変にすることができ、さまざまなケースのテストを行うことができるようになります。

次のページ
ロードテスト

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
Visual Studio 2005 Team Systemを使ってみよう連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

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

WINGSプロジェクト りばてぃ/FUJIKO/ナオキ(リバティ, フジコ, ナオキ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/1631 2008/08/26 14:06

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング