TOPプロジェクト管理> 負荷テスト
Visual Studio 2005を活用した、テスト駆動開発とソフトウェア品質向上アプローチ
Visual Studio 2005を活用した、テスト駆動開発とソフトウェア品質向上アプローチ

第3回:Visual Studio 2005 Team Systemで補うテスト駆動開発
著者:日本ユニシス  稲葉 歩   2005/12/13
前のページ  1  2  3   4  次のページ
負荷テスト

   複数のユーザがWebサーバ、DBサーバなどのリソースを共有することを想定したソフトウェアの場合には、同時実行性やパフォーマンスという品質が重要になってきます。

   通常の実装フェーズでは、1人の開発者が1台の開発PCを占有して実装し、その動作を確認するため、同時実行性やパフォーマンスという品質に問題があったとしても、発見することが困難です。これらの問題を発見するためには、ソフトウェアを複数ユーザで実行する必要があります。

   VS2005 Team Systemには、前回紹介したユニットテストや前述のWebテストを複数ユーザで実行しその挙動を計測する負荷テストが搭載されています。

   今回は例として、前述のWebテストを複数ユーザで実行してみます。負荷テストを新規に作成するとウィザード画面が開きます。表示されたウィザード画面で「Load Pattern」選択します。次に「Constant Load」を選択して「User Count」にユーザ数を入力します。

   ユーザ数を入力したら「Test Mix」を選択し、「Add」ボタンをクリックしてください。そしてすでに作成してあるWebテストを選択したら、「>」ボタンをクリックし「OK」ボタンを押してください。

   テストを実行すると図4のように結果が表示されます。

Webテストを50ユーザで実行した結果
図4:Webテストを50ユーザで実行した結果
(画像をクリックすると別ウィンドウに拡大図を表示します)

   このように取得したデータから、「複数ユーザ実行時にエラーが発生していないか」「期待通りのパフォーマンスが得られているか」を検証します。


コードプロファイラ

   負荷テストを実行した結果、パフォーマンスに問題があればそれを改善しなければなりません。ソースコード中のどの部分の処理がボトルネックになっているかを計測するためには、コードプロファイラを利用します。

   今回は例として、Webテストのサンプルとして用意した画面で検索処理に時間がかかっていたとし、コードプロファイラを使用してボトルネックを検出してみます。

   はじめにメインメニューから「Tools → Performance Tools → Performance Wizard」を選択します。ウィザード画面が起動したら、画面を含んだWebサイトのプロジェクトを選択し、「Next」ボタンをクリックします。次に「Instrumentation」を選択し、「Next」ボタンをクリックしてください。最後に「Finish」ボタンをクリックします。

   すると「Performance Explorer」ウィンドウ内に新規にパフォーマンスセッションが作成されます。プロファイリングの対象がWebサイトのみになっていますので、前回作成した住所検索のクラスライブラリも対象に含めます。

   まず「Targets」フォルダを右クリックし、「Add Target Project」を選択します。次に住所検索のクラスライブラリをチェックし、「OKボタン」をクリックしてください。

   これで準備ができました。それではパフォーマンスセッションを右クリックし「Launch」を選択します。住所検索のWeb画面が開きますので、郵便番号を入力し、検索ボタンをクリックしてください。検索結果が表示されたらWebブラウザを閉じます。

   プロファイル結果の集計が終わると、図5のように結果レポートが表示され、「Performance Explorer」ウィンドウ内の「Reports」フォルダ内に結果レポートが作成されます。この実行結果からボトルネック部分を判定し、コードの改善をはかります。

コードプロファイラによるパフォーマンスセッションとプロファイル結果
図5:コードプロファイラによるパフォーマンスセッションとプロファイル結果
(画像をクリックすると別ウィンドウに拡大図を表示します)

前のページ  1  2  3   4  次のページ


日本ユニシス株式会社 稲葉 歩
著者プロフィール
日本ユニシス株式会社  稲葉 歩
.NETテクノロジコンサルティング所属
.NET Frameworkを中心としたシステム開発プロジェクトにてアーキテクト、トラブル対応、営業支援、などを主に担当しています。


INDEX
第3回:Visual Studio 2005 Team Systemで補うテスト駆動開発
  はじめに
  Webテスト
負荷テスト
  テスト駆動開発+α