最新の開発に求められる環境
リソース管理 ビルド&
デプロイ
テスト リリース
管理
アプリの運用監視
Visual
Studio
クラウドEclipse
XCode
開発
DevOpsの7つの習慣とプラクティス
•Scaled Agile
•チームでの情報共有
・・・
•Shift Left
•継続的テスト
・・・
•使用状況の監視
•フィードバック
・・・
•テスト自動化
•ピアレビュー
・・・
•クラウド
•コンテナ
・・・
•リリース後の検証
•活用情報の収集
・・・
•APM
•継続的配置(CD)
・・・
FLOW OF
CUSTOMER
VALUE
TEAM
AUTONOMY
& ALIGNMENT
BACKLOG
IMPROVED
BY LEARNING
EVIDENCE
GATHERED IN
PRODUCTION
MANAGED
TECHNICAL
DEBT
PRODUCTION
FIRST
MINDSET
INFRASTRUCTURE
IS A FLEXIBLE
RESOURCE
最新の開発手法対応
継続的デリバリ
テストファースト
コーディング
テスト
自動化
Team Foundation Server / Visual Studio Team Services
フィードバック
IntelliTrace
構造
分析 リリース管理
IntelliTest
カバレッジ
プロファイラー
Fake Application
Insights
要求
開発
Live Unit Testing
ソースコード
管理
バックログ
管理
テスト/
バグ管理
ビルド/
リリース管理
パッケージ管理
コード解析
どのフェーズで問題を発見・修正するか
開発後半での問題発見と
修正には、初期フェーズ
の数十倍も工数がかかる
問題の発見と修正コスト
0
5
10
15
20
25
30
35
修正コスト
Visual Studio でコーディ
ングした瞬間に問題の検出
と修正が出来れば最速?
ソースコードの依存関係検証
例えば、MVVMパターンで
ViewからModelに直接アク
セスして欲しくない場合
許可されないアクセスを書
いた際にリアルタイム警告
Visual Studioでレイヤ図を
作成し、依存関係を定義
View
View
Model
Model
アクセスを禁止したいが、
ビルドは通る
Demo
静的コード分析ルールの新規作成概要
Visual Studio に 「.NET Compiler Platform SDK」をセットアッ
プし、Extensibilityからルール作成プロジェクトを作成。
問題検出用ロジック
~DiagnosticAnalyzer クラスの実装~
問題修正用ロジック
~CodeFixProviderクラスの実装~
リソース
~Resource.resxにメッセージ設定~プロジェクト作成と
開発/デバッグ
静的コード分析ルールの新規作成手順
DiagnosticAnalyz
er で検出ロジッ
クを指定
CodeFixProviderに
おいて、修正ロ
ジック作成
Resource.resxへの
メッセージ記述
Syntax Visualizer
「DiagnosticAnalyzer」や「CodeFixAnalizer」で使用するメソッド
や型の定義を調べることが出来る便利ツール
変数宣言部分のコード検証
・MethodDeclaration
・LocalDeclarationStatement
・VariableDeclaration
クラス宣言部分のコード検証
・NamespaceDeclaration
・ClassDeclaration
・IdentifierToken
Demo
作成した静的コード分析ルールの配布方法
新規作成した静的ソースコード分析ルールは、「VSIX」
もしくは「Nugetパッケージ」として展開可能。
Nuget
パッケージ
VSIX
ファイル
ビルド
v
Ver 1.0.0
Nugetサーバ
Ver 1.0.1
Ver 1.0.2
Ver 1.0.x
適切なバージョンの
ライブラリを「参照
設定」へ取り込み
Visual Studio による
手動ビルド操作
パッケージ管理Team Foundation Server
TFSのフィードで管理される
パッケージのバージョン
Team Foundation Server
からのビルド実行
作成した静的コー
ド分析ルールも、
TFSでバージョン
管理可能
開発用
ビルド
開発、テスト、
運用環境への
デプロイ
ビルドからパッケージ管理に登録し、ライブラリをそれぞれの
アプリケーション開発で適切に呼び出して使用可能。
登録用
ビルド
パッケージビルド管理
ソース管理 パッケージ
管理
開発用
ビルド
リリース用
ビルド
アプリ
アプリビルド管理
Demo
☑
☑
□
☑
Intelli Test
C#
Fake
Framework
コード
カバレッジ
ソースコード
(*1)Live Unit TestingはC#、VB.NETに対応。
(*2)IntelliTest(ユニットテスト自動生成)はC#に対応。
ユニットテスト
(Test Explorer)
ビルド
Live Unit
Testing
ユニットテストの合否を
確認しながらメソッドの
作成/修正が可能。
Demo
• Team Foundation Serverのビルド
タスクにテストを追加。
Team Foundation Server
ビルド リリース
ビルドタイプを選択 ソースコード格納先
などを選択
ビルドステップ指定
ビルド時のテストにか
かる時間を削減してコ
ストとテストの効率化
前回のビルドからの更新に影響を受けるテストだけを実行
Demo
セッションアンケートにご協力ください
 専用アプリからご回答いただけます。
decode 2017
 スケジュールビルダーで受講セッションを
登録後、アンケート画面からご回答くださ
い。
 アンケートの回答時間はたったの 15 秒です!
Ask the Speaker のご案内
本セッションの詳細は『Ask the Speaker Room』各コーナーカウンタにて
ご説明させていただきます。是非、お立ち寄りください。
© 2017 Microsoft Corporation. All rights reserved.
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

[TL02] "Shift Left" で問題の早期発見を実現する、最新 Visual Studio の品質チェック・テスト機能の使い方