【@IT .NET 中心会議】 継続的フィードバックで俯瞰する Visual Studio 2010 の世界でのテスト
- 1. Visual Studio 2010 によるテスト手法
日本マイクロソフト株式会社
デベロッパー&プラットフォーム統括本部
エバンジェリスト
長沢 智治
© 2011 Microsoft Corporation. All rights reserved.
- 2. 詳細よりも、考え方を中心に
機能紹介ではなく、シナリオを中心に
しきたりより、場の共有を中心に
クリアな “解” は持ってきていません
“解” は、現場にしかありません
ここでは、”解” につながる “何か” を
共有できたら・・・
© 2011 Microsoft Corporation. All rights reserved.
- 3. Engineer at Intec
Consultant at Rational Software
Consultant at IBM Rational
ながさわ ともはる Consultant/Architect at Borland Software
Tomoharu Nagasawa
ASTER Tool WG E-AGILITY 協議会 XPJUG
Twitter Facebook LinkedIn
http://twitter.com/tomohn http://facebook.com/tomoharu.nagasawa http://linkedin.com/in/tomohn
SlideShare YouTube MSDN Channel 9
http://slideshare.net/tomohn http://youtube.com/user/tomoharunagasawa http://channel9.msdn.com/Niners/tomohn
ITmedia Blog MSDN Blog
http://blogs.itmedia.co.jp/nagap http://blogs.msdn.com/tomohn
© 2011 Microsoft Corporation. All rights reserved.
- 4. 大きめのお話し
継続的フィードバックで俯瞰する
Visual Studio 2010 の世界でのテスト
- 5. Team Editions
Software Architects
Software Developers
Database Professionals
Professional Software Testers
TFS
Team Editions
Architecture Edition
Development Edition
Database Edition
Professional Test Edition
TFS
Ultimate
Premium
Professional
Test Professional
TFS
TFS: Team Foundation Server
© 2011 Microsoft Corporation. All rights reserved.
- 6. Milestone
Task #1
品質とコストへの効果
Task #2
Task #3
Task #4
“じゅうらい” のソフトウェア開発
品質とコストへの効果
value
“これから” のソフトウェア デリバリー
© 2011 Microsoft Corporation. All rights reserved.
- 7. 努力は報われない
個人の成果 vs. チームの成果
個人の問題 vs. チームの問題
1 + 1 = 2 とは限らない
そもそも、そういう次元ではない
単体テストをスキップ!?
回帰テストをスキップ!?
レビューしたつもり!?
“それは、開発の問題ではない”
“自分の機能は、動いている”
エナジー ドリンク注入!
© 2011 Microsoft Corporation. All rights reserved. ・・・
- 8. 報われる努力、チームで取り組む
チーム ゴール指向
協調とサポート
1 + 1 = 2+ へ
時代に対応したやり方へ
個人からチームへ
開発スタイルの尊重
バリューアップを実現
適切な武装
クリエイティブへ注力
テスト担当者/プロマネにも専用の武器を
時代に合わせた開発環境で挑む!
© 2011 Microsoft Corporation. All rights reserved.
- 9. テストのお話し
継続的フィードバックで俯瞰する
Visual Studio 2010 の世界でのテスト
- 10. テスト担当者 テスト開発者
手動テスト スクリプティング技術 高い 高い 卓越した
スクリプティング技術 コーディング技術 コーディング技術
コーディング技術
テスト環境用の 自動化可能な
スクリプトを作成 テスト手順の開発
テストデータを作成
ブラックボックス テスト
ホワイトボックス テスト
API テスト
Test Manager Visual Studio テスト機能
テスト担当者にも専門ツールを提供 早期に “品質を作り込む” 仕組みと機能を提供
© 2011 Microsoft Corporation. All rights reserved.
- 11. テスト開発 開発
Requirements
Test Manager Visual Studio テスト機能
テスト担当者にも専門ツールを提供 早期に “品質を作り込む” 仕組みと機能を提供
Test Plan
Build Architecture Model
Test Suite
Test Code
Test Case
Production Code
Bug
Test Result
Analysis Result
Test Script
Test Environment
© 2011 Microsoft Corporation. All rights reserved.
- 12. テスト開発 開発
Requirements
Test Manager Visual Studio テスト機能
テスト担当者にも専門ツールを提供 早期に “品質を作り込む” 仕組みと機能を提供
Lab Source Architecture
Test Case Test Result Bug Build Test Code Task Requirement
Environment Code Model
Team Foundation Server
© 2011 Microsoft Corporation. All rights reserved.
- 13. Test Manager Visual Studio テスト機能
テスト担当者にも専門ツールを提供 早期に “品質を作り込む” 仕組みと機能を提供
Team Foundation Server
テスト担当者 開発者
簡潔な仕事と受け渡し
必要な情報の自動共有
テスト担当者 開発者
© 2011 Microsoft Corporation. All rights reserved.
- 14. 今 明日 将来
© 2011 Microsoft Corporation. All rights reserved.
- 15. 継続的
テスト駆動開発
インテグレーション
単体テスト
リファクタリング バージョン管理
フレームワーク
コード メトリックス 自動ビルド コード カバレッジ
© 2011 Microsoft Corporation. All rights reserved.
- 16. テスト
テスト
テスト
開発 開発
開発
設計 設計 設計
手戻りによるコストとリスク
問題発生時のインパクト
© 2011 Microsoft Corporation. All rights reserved.
- 17. アーキテクチャ検証
設計 UML
品質 依存関係グラフ UML (読み取り)
アーキテクチャ エクスプローラ
コードから推察
目指すべきレベル
コード コード分析の定義 コード分析の実行
品質 単体テストのロードテスト コード メトリックス
デバッグの履歴化 プロファイル 単体テストの実行
(IntelliTrace™) 自動 UI / DB テスト リファクタリング
テスト テスト管理
品質 手動テストの支援
テスト環境の仮想化 コード カバレッジ
Web テスト テスト影響分析 コードから推察
Skill/Manual Tool/Automation
© 2011 Microsoft Corporation. All rights reserved.
- 19. モデリングと検証 Web テスト
New Web テスト
UML モデリング
New ロード テスト
レイヤー ダイヤグラム
アーキテクチャ可視化 包括的テスト
New New テスト計画と実施の管理
アーキテクチャ エクスプローラー
New New 先進的な手動テスト
依存関係グラフ
New 手動テストの自動再生
デバッグの効率化
New New テスト環境の仮想化と管理
IntelliTrace™
単体テスト コード分析
New 強化
自動 UI テスト 静的コード分析
データベースの単体テスト 強化 プロファイリング
コード カバレッジ コード メトリックス
New テスト影響分析 テスト サポート
テスト データの自動生成
開発と DB の統合変更管理
単体テスト あらゆるタイプの開発
(ロジックの) 単体テスト 開発全般機能
© 2011 Microsoft Corporation. All rights reserved.
- 20. 理
理
包括的テスト
テスト計画と実施の管理
Microsoft
先進的な手動テスト Test Manager
成
手動テストの自動再生
管理
テスト環境の仮想化と管理 Lab Management
© 2011 Microsoft Corporation. All rights reserved.
- 21. Excel
プロダクト バックログ
イテレーション バックログ
Web I/F
バージョン管理
バーンダウン チャート
メール連携
傾向分析
テストケース管理
Project バグ管理
プロジェクト計画の同期
プロジェクト進捗の同期
© 2011 Microsoft Corporation. All rights reserved.
- 22. 管理
スト
再生 Web テスト
と管理 Web テスト
クロス プラットフォーム
ロード テスト
析 Eclipse コマンドライン
包括的テスト
ス Windows, Linux, AIX
テスト計画と実施の管理 Mac OS X, Solaris, HP-UX
動生成 先進的な手動テスト
更管理
手動テストの自動再生
発
能
テスト環境の仮想化と管理
© 2011 Microsoft Corporation. All rights reserved.
- 23. あらゆる ソフトウェア開発の
開発インフラストラクチャを提供
全開発・テスト リソースを 1 リポジトリで運営
いつもの使い慣れたツール/方法で利用
管理者 開発者 開発者 テスト担当者
Eclipse
© 2011 Microsoft Corporation. All rights reserved.
- 24. 管理者 開発者 開発者 テスト担当者
Eclipse
開発プロセス ガイダンス
作業項目 v1.0 構成管理 v1.1
ドキュメント管理
要件
ポータル
タスク
v1.0 v1.1
バグ
テスト ケース ビルド管理 ラボ管理
ダッシュボード レポート
開発・テストのリソースを有機的に関連付け
ライフサイクル全般に渡る追跡可能性を一貫した方法で提供
小規模から超大規模開発や部門全体の運営に対応する柔軟性
※ MSDN Subscription 付き Visual Studio 2010 の特典として利用可能
Visual Studio 2010 Ultimate, Premium, Professional, Test Professional
※ パッケージ購入の場合、5人まで CAL なしで利用可能
© 2011 Microsoft Corporation. All rights reserved.
- 27. Test Lifecycle Development Lifecycle
Requirements
テスト計画と全体追跡
作業リスト
バックログ
テスト計画
テスト実施リスト 開発
テスト実施
自動ビルド
ビルド ⇒ テスト ⇒ 配置
テスト結果追跡 バグ起票
© 2011 Microsoft Corporation. All rights reserved.
- 29. イベント ビュー
呼び出しビュー
開発者のデバッグを飛躍的に効率化!
テスト担当者の手動・自動テスト時のデバッグ情報を記録 ⇒ 開発者は即デバッグ!
© 2011 Microsoft Corporation. All rights reserved.
- 30. 静的コード分析 動的コード分析
.NET 用と Native C++ 用を搭載 デバッグ実行し、
.NET デザインガイド準拠 ボトルネックなどを分析・検知
独自規則のチェック JavaScript のプロファイリングも実施可能
Visual Studio のビルド時に
強制実行し、ビルド エラー/警告
自動ビルド プロセスでコード分析
ビルドプロセスや開発プロセスに組み込み可能な実績のあるコード分析
動的コード分析を JavaScript まで拡張
© 2011 Microsoft Corporation. All rights reserved.
- 31. コード メトリックス
ソースコードの状況を客観的に “数値化”
保守容易性インデックス
クラスの継承の深さ
クラスの結合度 (依存関係の数)
コード行
サイクロマティック複雑度
コードの状態を、客観的数値指標で、可視化
“保守容易インデックス” で、バグの混在の危険性を把握し、未然に予防
© 2011 Microsoft Corporation. All rights reserved.
- 32. UI ロジック データ
UI 操作を記録 メソッドからのテスト自動生成 ストアド プロシージャのテストが可能
アサーションによる検証 テスト駆動開発をサポート 単体テスト フレームワークで実行可能
単体テスト フレームワークで実行可能 単体テスト フレームワークで実行可能 複雑な条件でのデータの
データ駆動テスト*が可能 データ駆動テスト*が可能 自動生成が可能
自動ビルド時に実行・検証が可能 自動ビルド時に実行・検証が可能 自動ビルド時に実行・検証が可能
* データ駆動テスト: 別途用意したテスト用データを読み込み、1 つのテスト ロジックの記述で、複数のテストを自動実行する仕組みを提供。
プレゼンテーション層、ビジネスロジック層、データ アクセス層に対するテスト
自動ビルドに組み込み、回帰テストが可能!
© 2011 Microsoft Corporation. All rights reserved.
- 33. Request
自動ビルドに組み込み
自動ビルド時に、実施可能!
Response
変更を自動的に検証
ロード テストで、実行可能
汎用的な Web アプリケーションのテス
トが可能*
ASP.NET, Java, etc
* Windows 環境の Web サーバー/DB サーバー時には
より詳細な分析データやシステム情報を収集可能
※ 統合開発環境に組み込まれているため、開発・テストで効果的に利用可能!
© 2011 Microsoft Corporation. All rights reserved.
- 34. 単体テストへのロード テストにより、ピンポイントな負荷テストを実現!
開発の段階から、高度なパフォーマンスの確認が行える
Web テストのロード テストにより、実稼働状況を想定した負荷テストをいつでも実行可能に
※ 統合開発環境に組み込まれているため、開発・テストで効果的に利用可能!
© 2011 Microsoft Corporation. All rights reserved.
- 35. <手動テスト> <手動テストの半自動化> <手動テストの自動化>
1回目: テスト失敗 2回目~: テスト成功 n回目~: テスト成功
テスト担当者 テスト担当者 開発者/チーム
明確なテスト手順を実行 明確なテスト手順を再生 自動 UI テストに変換し、全自動化
操作は自動記録 テスト失敗箇所のみを手動実施 自動ビルドに組み込み、継続的インテグレー
ビデオ記録、ロギング 操作は自動記録 ションで回帰テストを自動化
バグ起票、テスト結果作成 ビデオ記録、ロギング
を自動化 バグ起票、テスト結果作成
© 2011 Microsoft Corporation. All rights reserved. を自動化
- 36. 自動ビルドによるチームの結束
容易なビルド定義 的確にバグを報告し、今実施すべき、
テストに専念
ウィザードで定義可能 ビルド時テスト自動化
ビルド ワークフローによる可視化
と詳細定義 ビルド プロセスにテストを組み込
継続的インテグレーション (CI) み ビルド結果と追跡可能性
の実現 ロジックの単体テスト
品質基準を満たさないチェックイ UI の自動テスト ビルドに含む下記を記録:
ンをブロック Web テスト 変更セット (*コード変更箇所)
(ゲート チェックイン*) 静的コード分析の実施 実施タスク
テスト影響を検出・分析し、記 改修したバグ
録 テスト結果
コード カバレッジ
影響するテストの一覧
自信の持てるテスト対象のみを
テスト担当者に提供
* 2011 Microsoft Corporation. All rights reserved.
© ゲート チェックイン: 継続的インテグレーションによりビルド、コード分析、テストを自動実行し、品質指標に満たさなかった場合は、チェックインを無効にし、開発者に差し戻す機構を提供
- 38. 開発者 テスト担当者
Java 開発者
プロジェクト マネージャー VB 6 開発者
組込み開発者
デザイナー/UX 利害関係者
顧客/ビジネス アナリスト
運営アイディアの実装:
タスクボード
行燈
ポートフォリオ管理
勤怠管理
追跡可能性の可視化
TFS as a Platform
OSS ツール
3rd Party ツール
チーム開発のファウンデーション (基盤) を提供 内製ツール
チームを最適なツールとインターフェイスで “つなぐ”
© 2011 Microsoft Corporation. All rights reserved.
- 39. ✉ tomohn@microsoft.com
© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows 7, Visual Studio and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should
not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS,
IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.