狠狠撸

狠狠撸Share a Scribd company logo
1
开発生产性と品质向上を実现する开発基盘の构筑~
~ マイクロソフトの DevOpsソリューションご紹介 ~
日本マイクロソフト株式会社
デベロッパー エバンジェリズム統括本部
開発ツール推進部
2
本日のご紹介内容
1. 開発のライフサイクルと開発標準の管理
2. 開発サーバによる規定プロセスの活用
3. ソースコード管理の効果
4. 要件/バックログ管理の効果
5. テスト/バグ管理の効果
6. ビルド/リリース管理の効果
7. パッケージ管理の効果
8. 活用事例
9. まとめ
33
1. 開発のライフサイクルと開発標準の管理
Team Foundation Server / Visual Studio Team Services
ソースコード
管理
要件/バックログ
管理
テスト/バグ
管理
ビルド/リリース
管理
パッケージ
管理
4
開発リソース管理 ビルド&デプロイ テスト リリース管理
アプリの運用監視
Visual
Studio
クラウド
Eclipse / XCode
5
DevOps の7つの習慣とプラクティス
プ ラ ク テ ィ ス
? Shift Left
? 継続的インテグレーション
? 継続的配置(CD)
? 継続的テスト
プ ラ ク テ ィ ス
? 活用情報の収集
? 使用状況の監視
? 継続的な学習
? ステークホルダーからの
フィードバック
? リリース後のA/Bテスト
プ ラ ク テ ィ ス
? コードメトリクス
? テスト自動化
? コーディングルール
? ピアレビュー
? 継続的インテグレーション
? 継続的ユニットテスト
? アーキテクチャ構造
プ ラ ク テ ィ ス
? クラウドインフラ
? 開発者用サンドボックス
? Cloud DEV/TEST Labs
? コンテナ
? マイクロサービス
? 自動スケーリング
? 自動フェイルオーバー
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
プ ラ ク テ ィ ス
? Self-managing Teams
? Planning Chats
? Feature Crews
? Sprint Rituals
? Scaled Agile
? チームでの情報共有
プ ラ ク テ ィ ス
? リリース後の検証
? ステークホルダーから
のフィードバック
? 活用情報の収集
? 使用状況の監視
? Feature Flags
プ ラ ク テ ィ ス
? アプリパフォーマンス管理
? 構成管理
? Infrastructure as Code
? 自動リカバリ
? 継続的配置(CD)
6
エンタープライズアプリ
開発の生産性向上
効率的なテスト計画と
実行
開発と運用をシンプル
に繋げる
クロスプラットフォーム
(Android, iOS, Windows)に
対応した開発
マイクロソフトの提供する DevOps 開発環境の効果
最新の Visual Studio と Team Foundation Server/Visual Studio Team Services によって、あ
らゆる規模の開発に対応可能な統合 DevOps ソリューションを提供。クロスプラットフォームに
対応したアプリやクラウドのシステムの、効率的な開発とデリバリをサポート。
7
継続的インテグレーション
~Continuous Integration~
継続的デリバリ
~Continuous Delivery~
DevOps
Agile開発
テストファースト
ピアレビュー
コーディング
コンパイル
デバッグ
静的コード解析
メトリクス分析
UIテスト自動化
ソースコード
ドキュメント
レポートの出力
Team Foundation Server / Visual Studio Team Services
負荷テスト
パフォーマンステスト
ユニットテスト
コードクローン分析
フィードバック
IntelliTrace
IntelliTrace
Anywhere
ワークフロー管理
プロジェクト
構造分析
ポータルサイトビルド管理
障害情報の共有
テストケース管理
Enterprise
リリース管理
IntelliTest
コードレビュー
コードカバレッジ
要件(バックログ)
管理
コードレンズ
パフォーマンス分析
メモリ分析
Fake Framework
Application Insights
要求開発
要件分析
ストーリー
ボーディング
アプリケーションライフサイクル管理(Application Lifecycle Management)
パッケージ管理
Live Unit Testing
ソースコード管理 要件/バックログ管理 テスト/バグ管理 ビルド/リリース管理 パッケージ管理
8
オープンソースツール/サーバ/サービス
ソースコード管理 要件/バックログ管理 テスト/バグ管理 ビルド/リリース管理 パッケージ管理
Team Foundation Server / Visual Studio Team Services
Eclipse
IntelliJ
XCode
Redmine GitHub
Subversion
npm
Junit
xUnit
SonarQube
Chef
Puppet
JMeter
Ant
Grunt
Gradle
Gulp
Slack
HipChat
Campfire
Flowdock
Zapier
Jenkins
99
2. 開発サーバによる規定プロセスの活用
Team Foundation Server / Visual Studio Team Services
ソースコード
管理
要件/バックログ
管理
テスト/バグ
管理
ビルド/リリース
管理
パッケージ
管理
10
? チームコラボレーション型開発
? 開発/テスト環境の柔軟な構築とメンテナンス
? ユーザストーリーによるシステムの機能/タスク管理
? 大規模開発を管理する、チームの統制をサポート
? 要件、機能の厳密な定義
? フェーズ毎の徹底した品質管理
? ソースコード/ドキュメントの集中管理
従来型のウォーターフォール開発(CMMI テンプレート)
最新のスクラム開発(Scrumテンプレート)
アジャイル開発(Agile テンプレート)
? チームコラボレーション型開発
? 開発/テスト環境の柔軟な構築とメンテナンス
? プロダクトバックログ/イテレーションバックログによる管理
? システムのパフォーマンス、稼働率、使用状況監視と分析
11
? 要件を起点とした開発
項目のトレース
? 要件の区分と関連付け
による構造化
要件ドリブン開発
MS-Projectと連携したタスク管理
テスト?バグ管理
ゲートチェックインによる品質管理
? TFSのタスクとMS
Projectの連携
? リーダによるテスト計
画の作成
? 担当者からの実績入力
?
?
□
?
? テストケースとテスト
結果のリポジトリ管理
? バグ情報の登録と検索
を効率化
? レポート作成工数の削
減
? ソースコードのチェッ
クイン時に、品質の自
動チェック
? コード規約違反、ユ
ニットテスト、ビルド
エラー等
12
? プロダクトバックログ、
イテレーションバック
ログの管理
バックログ管理
継続的インテグレーション
チームコラボレーション
継続的デリバリ
? スケジュールビルドに
紐づいた各種テストの
実施
? プロジェクト単位での
チームルームによる情
報共有
? 開発、テスト、稼働環
境へのビルド結果の自
動デプロイ
? デプロイに伴う承認
ワークフロー管理
1313
3. ソースコード管理の効果
Team Foundation Server / Visual Studio Team Services
ソースコード
管理
要件/バックログ
管理
テスト/バグ
管理
ビルド/リリース
管理
パッケージ
管理
14
? 集中型リポジトリによる、排他処理可
能なファイル管理
? ローカルワークスペースによる、オフ
ライン処理にも対応
? 「ブランチ」「マージ」「ラベル」の
基本機能に全て対応
? 「ソース管理エクスプローラ」による
ファイルの視覚的管理が可能
? TFS Power Toolsによって、
「Windows Explorerからも」個別に操
作可能
? TFSのビルド機能と連携
? 分散型リポジトリによる、平行開発が可
能なファイル管理
? 基本はオフライン処理となり、オンライ
ン時に「PUSH」「PULL」でデータの整
合をとることが可能
? TFS用に便利な「同期」「PULL リクエス
ト」にも対応
? リポジトリはオープンなGitコマンドに互
換あり
? TFSのビルド機能と連携
15
? システム開発の関連リソース(ドキュメント、テストデータ、等)とソースコードを、同じ
バージョンとして単一リポジトリで管理可能
1
? 「テスト」「バグ」などの開発作業項目とのリンクにより、情報のトレーサビリティを確保。2
? Visual Studioとのシームレスな連携により、高い操作性を提供。3
16
? チェックアウト/チェックイン
? ブランチ/マージ
? 履歴管理
? ラベル
? 最新のCodeLens対応
17
18
名前空間やクラスのレイヤー構造(MVVM構造など)の依存関係を設定し、コーディング中
のリアルタイムチェックによって、間違った実装や呼び出しの記述を検出。
依存関係ダイアグラ
ム(レイヤーダイヤ
グラム)でクラス間
の依存関係を定義
Enterprise
19
? Visual Studio からのデバッグでブレイ
ク(停止)させた時、どこまで進んで欲
しいのか「次の行」を指定し、ダイレク
トにその場所まで実行させることが可能。
デバッグ時の「ブレークポイント
設定/解除」などの手間を削減し、
スムーズな解析をサポート。
20
? Visual Studio のソースコード表示において、プ
ログラム構文(括弧の対応など)を分析して点線
による「ガイド」を表示。
プログラムの構造を理解し易くし、
コーディングミスの検出も短時間
に可能に。
対応するプログラム構造
の、対になった箇所を分
かりやすく表示
21
? Team Foundation Server のリポジトリに登録されたソースコード
を、複数のプロジェクトに分散された全体からキーワード検索可能。
Team Foundation Server
22
? Team Foundation Server の Git リポジトリにおいて、選択したコミットだけをブランチに反映。
Team Foundation Server
2323
4. 要件/バックログ管理の効果
Team Foundation Server / Visual Studio Team Services
ソースコード
管理
要件/バックログ
管理
テスト/バグ
管理
ビルド/リリース
管理
パッケージ
管理
24
? 要件(バックログ)に対する早期のチェック体制を構築し、優先
度付けによるトリアージと定期的な調整を行うことが可能。
1
? “とにかくやってみる”などの無駄なタスクを識別し、必要な部分
の絞込みが可能になり、不確実性の低減を実現。
2
「必要だと思い込んでいる機能」「“あればいいな”レベルのもの」をそのまま要件
(バックログ)として受け入れてしまうと、要求の爆発が起こる可能性がある。
25
? 要件から紐づく「テスト」「バグ」「ソースコード」のトレーサビリティを確保
? ビジネス要件/機能要件の実装状況を、テスト結果マトリクスで確認
26
? カンバンボードによるタスク情報の共有と管理
? バーンダウンチャートによる進捗管理
? スタイル設定によって、カンバンボードの色分け
などの調整が可能
27
? カンバンボード参照において、他マシンか
らの変更をリアルタイムに反映。 Team Foundation Server
Visual Studio Team Services
Team Foundation Server
28
? Webクライアントとしての画面編集機能を、全体的により使いやすく改善。
Team Foundation Server
29動機編より抜粋
「要求は、あるものではなく、開発するものである」
経営者
開発担当者 業務担当者
? 「経営者」「業務担当者」「開発担当者」などが、それぞれの視点での情報を出し合って、全員で合意を
形成して要求を作り上げていく必要があります。
「必要だと思い込んでいるもの」「“あればいいな”レベルのもの」などを全てをそのまま要件とし
て受け入れてしまうと、要求の爆発が起きる可能性が大きい。
? 要求が正確に得られていなければ、それ
に続くプロジェクトをいかに上手く実行
しても意味が無い。
「要求開発と要求管理」
Karl E.Wiegers著 日経BPソフトプレス
30
IT要求の構造化
~要求の階層構造化で機能詳細に分割~
戦略要求 業務要求 IT要求1 IT要求1?1
IT要求1?2
IT要求1?3
IT要求2 IT要求2?1
IT要求2?2
? 要求の親子関係をリンクとして登録し、種類?レベル毎に階層化が可能。
? ビジネスレベルの要求から、機能レベルの要求までを連携して管理。
要求一覧
要求詳細
Team Foundation Server
3131
?要件に基づいた開発?テストを実現と、関係者間での情報の共有を実現。
要件に基づいたテストケース
Team Foundation Server
Word、Excel等の添付ファイル
ストーリーボーディング
3232
5. テスト/バグ管理の効果
Team Foundation Server / Visual Studio Team Services
ソースコード
管理
要件/バックログ
管理
テスト/バグ
管理
ビルド/リリース
管理
パッケージ
管理
33
? テストケース全体をサーバのリポジトリで管理し、テストカバレッジを視覚化することでテ
スト品質を向上。
1
? テスト進捗率の管理や、テストレポート作成の工数を自動化の機能によって削減可能。2
? 「UI自動テスト」「マニュアルテスト」「機能テスト/非機能テスト」などの各種テストを
単一リポジトリで管理し、テスト全体の状況をリーダ?マネージャから俯瞰的に参照可能。
3
3434
ソフトウェアテスト技法
? システムに対して、十分なテスト項目を設計?実施することが重要。
→「十分」の基準はシステムによって異なるため、それぞれに合うテストを、効率よく実施するための準備が必要。
「ソフトウェアテスト技法」: ボーリス?バイザー
~日経BPセンター~
どんな方法を導入しても、バグの数が0件であるという意味での完全なテストは理論的に不可能であるし、
もちろん、実際問題としても不可能である。
~Manna Z and Waldinger~
テストの目的は、摘出されずに残っているバグによりシステムが
不良を発生する確率が、許容範囲内であることを保証すること。
~Boris Beizer~
35
Enterprise
36
? バグ票への対応が終了した際、「検証
(Verify)」機能によって関連付けた
TFS/VSTSのテストケースをダイレク
トに呼び出して検証
Team Foundation Server
バグ情報を参照し、「検証」による再テスト実行
テスト手順に従って、バグが改修されたか検証
37
?
?
□
?
C#
Enterprise
3838
UnitTestケースの自動生成
~IntelliTest~
? テスト対象メソッドの引数を解析し、同値分割等によってUnitTestのテストケースを自動作成。
→テスト準備工数の削減と、メソッドのロジックミス検出などをサポート。
プログラムの構文を解析し、
テストパターンを抽出
UnitTestとして保存し、継続的な
品質チェックを実装
Enterprise
39
? ユニットテストとテスト対象メソッド
をリアルタイムに分析し、テストの合
否を確認しながらテストの作成/修正
が可能。
Enterprise
40
Visual Studioの統合開発環境と言語(C#,VB)を活用し、UI自動テストの作成
とメンテナンスを効率的に実施。
Enterprise
41
C#もしくはVBのテストスクリプ
トを自動生成
? 対象アプリケーション(.NET, Web, VC, VBなど)への操作をスクリプトとして記録し、編集?実行が可能。
→テストリソース(空き時間、使用していないマシン)を有効活用し、繰り返しテストを何度も実行することで品質向上とテスト工数削減
を実現。
マウス?キーボードによるアプリケーション操作を記録
テストの
記録を開始
テスト結果
外部テストデータ(DB、CSV、XML)
と連携させ、データドリブンテストが
可能
テストの再生
テスト動作の評価(Assert)
を追加
Enterprise
42
? 対象アプリケーションの画面から、テスト結果判定箇所を指定。
→テストスクリプトにテスト合否判定ロジック(Assertion)を追加。
→テスト実行時の画面(スクリーンショット、ビデオ)を記録。
テスト結果の自動判定
テスト終了後の目視によるチェック
テスト対象のコンポーネント
を指定
Textなどのチェック項目
(プロパティ)を選択
チェックロジックを追加
自動テスト時に合否判定
テスト結果(スクリーンショット)
テスト結果(ビデオ)
テストを実行
スクリーンショット取得のロジックを追記
TestManagerからのテスト実行
Enterprise
43
①スクリプトを実行する。
? スクリプトから対象アプリケーションのオブジェクトへのマッピング機能。
→オブジェクト検索の範囲や指定方法を、スクリプト作成後にも指定可能。
Enterprise
uIOKButton = this.UITacklesシステムログインWindow.UIOKWindow.UIOKButton;
②オブジェクトの定義情報を取得する。
③UIMapから検索条件を取得する。
④対象の画面から、対象のオブジェクトを特定する。
ターゲットの
オブジェクトを検出
UIMapから
オブジェクトを特定
ツリー構造のオブジェク
トマップを、親オブジェ
クトから順番に検索
スクリプトからのオブジェクト指定を、対象アプリの画面上にあるオブジェクト紐づけるしくみ。
VS上でUIMapを開くことで参照可能
44
? テストの自動化により、テスト実施回数と網羅率を向上。
→システム品質の効率的な向上を支援。
Enterprise
何度も実行するテストケース 手順が長いテストケース
プログラムの修正や機能追加等にともない、何度も実行が必要なテストケース
よく似た手順のテストケースが複数ある場合 画面構成に変更が少ないテストケース
システムテスト等、手作業で何時間もかかる手順の長いテストケースを自動化
※)スクリプト化が難しい画面の場合、逆に非効率となる場合もあります。
作成した自動テストから、複数のテストケースを派生して作成可能な場合 画面の配置や大きさに変更が少なく、テストスクリプトの変更が少ない場合
メニュー、ボタンの操作や、キーボードか
らの入力操作を記録したスクリプトが、対
象プログラム修正後もそのまま、もしくは
少ない修正で使用できる。
コピーと修正でテストを増産
長い手順での人為的なミスを
防止し、テスト担当者の作業
工数を有効に活用
45
作成したUI自動テストをHyper-V上の環境に自動的に展開して実行。
=>複数環境(OS,ミドルウェア、など)でのテストを効率的に実施。
Team Foundation Server Windows Server(Hyper-V)
46
作成したUI自動テストをクラウドの仮想マシン(DevTest Lab)環境に自動的に展開して実行。
=>仮想マシン活用条件(自動シャットダウン、VM数、等)の全体管理を一元化。
Team Foundation Server
Visual Studio Team Services
Azure DevTest Lab
47
? 実機を用意することなく、複数のモバイルマシンで
の動作をクラウドの仮想サービスでテスト。
? Visual StudioからAndroidのアプリに対する操作を
キャプチャ。(*)iOSでのテスト実行は可能
? 作成したUI自動テストを、クラウド上の「Test
Cloud」サービスでターゲット環境を選択して実行。
Enterprise
48
テスト実施によって発見されたバグを集中管理し、データ検索やレポート作成を効率化。
4949
6. ビルド/リリース管理の効果
Team Foundation Server / Visual Studio Team Services
ソースコード
管理
要件/バックログ
管理
テスト/バグ
管理
ビルド/リリース
管理
パッケージ
管理
50
? システムのリリース(デプロイ)を自動化することで、担当者の作業工数を削減。1
? リリースのワークフロー管理により、テスト/運用環境への配置前確認作業を徹
底することで人為的ミスを削減。
2
? 「ユニットテスト」「UI自動テスト」との組み合わせにより、テストの効率化と
品質の向上を実現可能。
3
51
Team Foundation
Server
Release Management
Server
ビルド
実行
ビルド/リリースプロセスの自動化とワークフロー管理により、2重作業の廃止による工数削減と
間違い防止による品質向上を実現。
52
? Team Foundation Server(Visual Studio Team
Services)のビルドタスクにテストを追加。
Team Foundation Server / Visual Studio Team Services
ビルド管理 リリース管理
ビルドタイプ(Visual Studio、
Jenkins、など)を選択
ビルド対象のソースコード格納先
などを選択
ビルドステップ(Nugetレストア、
Build Solution、など)を指定
53
? ビルド時に設定するテストに対し、
前回のビルドからの変更部分だけを
効率的にテストさせることが可能
Team Foundation Server
54
? リリース管理定義を新規作成し、リリースタイプ
を既存のものから選択。
Team Foundation Server / Visual Studio Team Services
ビルド管理 リリース管理
? リリースタイプを「Azureへの各種リリー
ス」「Empty」から選択。
? 「TFSビルド」「Jenkins」などから、リリー
ス元ファイルの取得先を選択。
? リリース用のエージェントを選択。
55
Team Foundation Server / Visual Studio Team Services
ビルド管理 リリース管理
? 「開発環境」「テスト環境」「本番環境」な
どの設定を追加。
? 「承認者」の設定による、リリースのワーク
フロー制御設定。
? 「ファイルコピー」「スクリプト実行」など
のリリースタスクを設定。
? 「ビルド」との連携による、リリーストリ
ガーの設定。
56
? リリースのスケジュール(時間指定)
を複数に設定可能になり、異なるタイ
ミングでのリリースが必要な場合も
個々の設定不要。
Team Foundation Server
5757
7. パッケージ管理の効果
Team Foundation Server / Visual Studio Team Services
ソースコード
管理
要件/バックログ
管理
テスト/バグ
管理
ビルド/リリース
管理
パッケージ
管理
58
? バイナリファイルによるソースコード管理リポジトリの圧迫を解消。1
? 共有フォルダなどによる管理を廃止し、想定外のファイルの変更や削除など
の問題を解消。
2
? パッケージ(ライブラリ)のバージョン管理を明確にすることで、アプリ
ケーション開発の世代管理効率化とメンテナンス性の向上を実現。
3
59
パッケージ(ライブラリ)
開発用ビルド
コードリポジトリ
「Nuget」:TFSに実装されるパッケージ管理サーバを使用
「npm」:外部のnpmパッケージ管理と連携
開発/テスト環境、運用環境
へのデプロイ
Ver 1.0.0
TFSによってライブラリの開発とパッケージ化を管理する事により、リリースされたライブラリをそれぞれ
のアプリケーション開発で適切に呼び出して使用可能。
パッケージ
登録用ビルド
ビルド管理
ソースコード管理 パッケージ管理
ビルド実行
Ver 1.0.1
Ver 1.0.2
Ver 1.0.x
Team Foundation Server
アプリケーション
開発用ビルド
アプリケーション
リリース用ビルド
アプリケーション
60
Ver 1.0.0
パッケージ管理
Ver 1.0.1
Ver 1.0.2
Ver 1.0.x
Visual Studioから
Nugetパッケージ管理を起動
適切なバージョンの
ライブラリを「参照設
定」へ取り込み
Team Foundation Server
アプリのビルド定義でNugetからパッケージを
インストールしてからビルドを実行
Visual Studio による手動ビルド操作の場合
Team Foundation Server からのビルド実行の場合
TFSのフィードで管理され
パッケージのバージョン
6161
8. 活用事例
62
■VB6のシステムを.NETベースの最新プラットフォームへ効率的に移行
? Visual StudioやTeam Foundation Serverの豊富な機能を有効的に活用し、開発生産性を大幅に向上。
? 現行システムのボトルネックを解消し、処理のスピードを向上。
■導入の背景と狙い
制度改定等に迅速か
つ確実に対応出来る
システムの構築
Visual Basicで作成した旧システム(保険金?給付金支払査定ワークフローシステム)は10年間の改修が重なって、コード量が当初
の3.5倍に膨らんでおり、ソースコードの複雑性も非常に高かった。
業務仕様は踏襲し、アーキテクチャの刷新と、アプリケーション構造の再設計を実施。Visual StudioおよびTeam Foundation
Serverの活用により、開発作業を可能な限り効率化。
■導入効果
■新システム構成
旧システム 新システム
16台(112コア)
Windows Server
2003
物理サーバー数 パフォーマンス ソースコード規模
案件生産能力
600件/時間
全行数: 約146万行
実行行数:約 86万行
8台(46コア)
Windows Server
2008 R2 Hyper-V
物理サーバー数 パフォーマンス ソースコード規模
案件生産能力
1,650件/時間
全行数: 約 85万行
実行行数:約 47万行
※)自動生成コードを除く
開発環境
Team Foundation ServerVisual Studio
監視+フィードバック
運用
チーム連携
BAC
KLO
G
要求
計画
開発+テスト リリース
開発
63
■Release Management for Visual Studioの導入により、リリースプロセスの人的負担を軽減
? 「スクラム開発」の効果を引き出すため、Release Management for Visual Studio を導入
? クラウド環境(Azure)へのリリースプロセスをワークフロー化することで、人的負担を軽減し安定的な継続的デリバリーを実現
■導入の背景と狙い
属人性回避のため、
リリースを自動化へ
Microsoft Office 365に高度な認証およびアクセス制御機能を追加する「Online Service Gate(OSG)」の開発を、「スクラム開発」
によって効率化。しかし、リリース作業に開発者が関与しなければならないため、時間をとられてしまう問題を抱えていました。
「スクラム開発」に加え、リリースサイクルを短縮するためのしくみが必要。
■導入効果 少ない人的負担で、安定的なリリースを実現
以前は1回のリリースで3人×70分(210人分)の工数が3環境分かかっていまし
たが「2チーム×5サーバ×16回/年」の160回リリースが発生する状況。.
■システム構成
軽減前 軽減後
現在ではステージング環境で1人×10分が必要なだけになり、1リリースあたり
200人分削減出来ています。年間約70人日の工数を削減出来る計算となります。
軽減前 軽減後
開発チーム
運用チーム
Team Foundation Server
開発チーム
運用チーム Release Management
Server
Azure 検証環境
Azure 本番環境
検証作業
承認作業
検証作業
Azure 検証環境
Azure 本番環境
リリース作業
リリース作業
承認作業
70分
70分
70分
×3環境
承認作業
承認作業
×2
チーム
×5
サーバ
×16回/年
= 33600分
= 560時間
210分
×2
チーム
×5
サーバ
×16回/年
= 1600分
= 26.6時間
×3環境
10分
10分
0分
0分
検証作業
検証作業
承認作業
承認作業
自動リリース
自動リリース
64
■Visual Studioの「UI自動テスト」機能により、テスト工数の削減と品質向上の体制を確立
? 頻繁に発生するクラウド環境の変化に対応するため、テストケースをコード化し、自動実行するアプローチを採用。
? テスト内容の“ぶれ”や“漏れ”をなくすことでテスト品質を大幅に向上させ、修正すべき場所の特定にかかる時間も短縮。
■導入の背景と狙い
テストの自動化で
工数削減と品質向上
Microsoft Exchange Online上での情報アクセスオンラインサービス「ExLook Online」のテストを体系化し、ブラウザのバージョ
ンアップなどの頻繁に発生するタイミングで、確実かつ効率の良いテストを実施する体制を構築する。
→クラウド時代に対応したアプリケーションライフサイクル管理によって、会社としての新しい時代への対応を促進。
試算では、1年間で12人月程度の工数を削減手作業でのテスト準備とテスト実施が必要。
■テスト構成
改善後
改善前(手作業での準備とテスト)
数千の
テストケース
6種類のブラウザテスト
?IE×4
?FireFox
?Chrome
1~1.5人月
ブラウザの
バージョンアップ
環境のバージョン
アップ
新バージョン
リリース
テスト
テスト
テスト
テスト
???
0.2~0.5人月
UI自動テスト
UI自動テスト
UI自動テスト
テスト環境
準備
?テスト自動化
?テストケース管理
?テスト結果管理
?バグ管理
?バグ調査への連携
?テスト品質の安定
UI自動テスト
の実行
テスト環境
準備
???
ブラウザの
バージョンアップ
環境のバージョン
アップ
新バージョン
リリース
手作業による
テスト工数の増加
属人的なテストで
品質にバラツキ
テスト漏れに
よる品質低下
テスト工数増大による
開発?デバッグ作業へ
の影響
6565
9. まとめ
6666
まとめ
? あらゆるタイプのアプリ開発が必要となる昨今の状況には、開発
業務プロセスの改善が必要です
? 上流フェーズの改善
? 開発フェーズの改善
? 運用フェーズと開発フェーズの連携
Team Foundation Serverによって「情報の一元化」と「既存プロセ
スの効率的導入」が可能となり、システム開発の問題点を解消し、
高品質なアプリを効率的に作成するしくみを提供します。
各フェーズの改善(「不要な作業の廃止」「プロジェクトの監視」
「既存プロセスの導入」等)により、システム開発の品質および効
率を向上させることが可能です。
6767
参考情報
68
Team
Foundation
Server
69
開発用途の製品提供 Visual Studio
Enterprise
with MSDN
Visual Studio
Professional
with MSDN
Visual Studio
Test Professional
with MSDN
Team Foundation Server 2017 および 1 CAL の提供 ● ● ●
Visual Studio Lab Management ● ●
Office Professional Plus,
※ Project Professional, Visioは範囲外
※ 1 コピーに関して一般用途での利用が可能
●
Windows? Azure? ● ●
Windows (client and server) ● ● ●
SQL Server? ● ● ●
Toolkits, Software Development Kits, Driver Development Kits ● ● ●
Microsoft Dynamics? ●
サーバー製品 (Exchange 等) ●
Windows Embedded OS ●
Microsoft? E-Learning コース 2 1 1
テクニカル サポート インシデント 4 2 2
MSDN Flash ニュースレター ● ● ●
MSDN マガジン
(英語のみ)
● ● ●
オンライン コンシェルジェ ● ● ●
※ Windows Azure に関しては、英語のみのサービスとなります。接続時間等の詳細は下記Webページをご参照ください。
http://www.windowsazure.com/ja-jp/pricing/member-offers/msdn-benefits/
※ MSDN フォーラムでの優先対応は、US の MSDN フォーラムに限ります。日本語の MSDN フォーラムではこの特典は享受できません。
※ 米国以外での MSDN マガジンの購読は、別途発送費等が必要となります。
70
? 2016 Microsoft Corporation. All rights reserved. Microsoft, Windows, 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.

More Related Content

开発生产性と品质向上を実现する开発基盘の构筑