TOPプロジェクト管理> コードプロファイラ
開発ライフサイクルとVisual Studio 2005という選択肢
開発ライフサイクルとVisual Studio 2005という選択肢

第3回:Visual Studio 2005による開発とテスト環境
著者:日本ユニシス  鈴木 貴史   2005/11/15
前のページ  1  2   3  4  次のページ
コードプロファイラ

   コードプロファイリング機能を用いると、コードの実行コスト(処理時間やメモリ消費量)がわかります。パフォーマンスチューニングの際に、クリティカルパスを特定する場合やメモリのリークを特定する場合などに役立ちます。
単体テスト

   単体テストは、クラスの関数とメソッドが仕様通りに正しく動作することを確認するテストを指します。結合テストはそれらのクラスをひとまとめにして仕様通りに正しく動作することを確認するテストを指します。

   名称は単体テストですが、結合テストとして使用できます。実際には結合レベルのテストでの利用の方が多いでしょう。最近増えてきたテスト主導な開発では不可欠な要素です。

   テスト主導な開発では単体テストを自動化しビルドするとき、常にテストを実行することでソースコードの品質を保証しつつ開発を進めていけます。単体テストを自動化するためには、単体テスト自身もプログラムとして作成しなければならず結構手間がかかるのですが、この単体テスト機能はかなり強力なスケルトンを自動生成してくれます(図3)。

スケルトンの自動生成
図3:スケルトンの自動生成
(画像をクリックすると別ウィンドウに拡大図を表示します)


コードカバレッジ

   コードカバレッジはテストによってソースコードをどのぐらい網羅したかを表す指標です。C0(命令網羅)、C1(分岐網羅)、C2(条件網羅)といった基準があり、Team Systemのコードカバレッジ機能はC0基準になります。

   テストを実行するとアセンブリ・ネームスペース・クラス・メソッドごとの網羅率がコードカバレッジの結果ウィンドウに表示されます。また、テストが通ったかどうかはコードエディタ上に色分けされて表示されます(図4)。

コードカバレッジの結果
図4:コードカバレッジの結果
(画像をクリックすると別ウィンドウに拡大図を表示します)


テストケース管理

   VSTE for STは様々なテストを一元管理し、必要なテストを必要なときに実行できるよう複数のビューを持っています。テストの"結果"はテストリザルト(図5)にしか表示されませんが、テストコードへのジャンプはどのビューからでも可能です。自分が操作しやすいビューを使えばよいでしょう。

テストケース管理
図5:テストケース管理
(画像をクリックすると別ウィンドウに拡大図を表示します)

テストビュー(Test View)
テストビューはテストの編集をするためのナビゲーション機能を提供します。条件を指定して、テストをフィルタリングして表示させることもできます。またテストの定義ファイルへの移動や、テストの実行が可能です。

テストマネージャー(Test Manager)
テストマネージャーは個々のテストをカテゴリーに入れて管理できます。こちらも検索機能を備えています。

テストリザルト(Test Results)
テストリザルトはテストの実行に含まれるすべての状況を表示します。結果はPending(開始前の状態も含む)、Running、Passed、Failedと表示されます。負荷テストの実行が完了した時は、Completedと表示されます。

表1:テストケース管理の画面の説明

   VSTE for STでは単体テスト以外にも以下のテストが可能です。

負荷テスト(ロードテスト)
複数のユーザの操作をシミュレートすることでアプリケーションに負荷をかけるテストができます。負荷テストのシナリオは、単体テストとWebテストの中から複数選ぶことが可能です。

またユーザの操作待ち時間やネットワーク帯域などの設定もできます。テスト結果は実施中の同時実行数・レスポンスタイム・スループットといったアプリケーションの性能値と、CPU負荷・メモリ使用量といったアプリケーションの状態値のレポートの形で得られます。

Webテスト
WebテストはWebブラウザでWebアプリケーションを実行した際のHTTP要求をレコーディングしておき、テスト実行時にWebブラウザの振りをしてHTTP要求を再現します。テスト成功の判断は「最後までHTTPエラーが発生しなかったかどうか」です。テキストボックスの入力やドロップダウンリストの選択といった操作がある場合は、データベース上のデータをもとに送信データを決定することができます。

手動テスト
テストの中には自動化することでかえってコストが高くなってしまうものもあります。その場合にはこの手動テストでシナリオを記述したドキュメントを作成して管理することができます。テスト担当者が手動で実行し、結果を入力します。一元管理を達成する意味で必要です。

汎用テスト
汎用テストは、指定したプログラムをテストとして実行する機能です。実行したプログラムの戻り値が0の場合には成功と判断し、それ以外の場合には失敗と判断されます。テストツールを独自に用意する必要がある場合に、このテストを使用します。

表2:VSTE for STで行えるテスト

   これまで解説してきたように、開発に関する部分は以前に比べてさらに機能強化されています。テストに関する部分は今まで提供されていなかった領域であり、.NET開発における開発ライフサイクルへのインパクトが比較的大きいと思います。

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


日本ユニシス株式会社 鈴木 貴史
著者プロフィール
日本ユニシス株式会社  鈴木 貴史
.NETテクノロジコンサルティング所属
日本ユニシスグループの.NET技術主管のメンバーとして、Windows/.NET Framework周りの利用技術の開発から弊社受託開発案件のアーキテクト、時には営業支援、そして今回は執筆を行っています・・・


INDEX
第3回:Visual Studio 2005による開発とテスト環境
  はじめに
コードプロファイラ
  VSTE for SDとVSTE for STとLUCINA for .NET
  テスト成果物の信頼性、充足度