Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

9

Share

Download to read offline

Visual Studio Online BUILD を本気で使いこなして品質&効率を劇的に上げる! [ Comm Tech Festival ] C-4

Download to read offline

Comm Tech Festival C-4 セッションのスライドです。
https://comuplus.doorkeeper.jp/events/30403#c4

ソースバージョン管理・タスク管理からもう一歩先に進みたい開発チームを対象に、Visual Studio での設計・開発からテスト・リリースまでの流れと Visual Studio Online BUILDを使いこなすためのポイント、出来ること・出来ないこと、工夫の仕方を解説します。

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Visual Studio Online BUILD を本気で使いこなして品質&効率を劇的に上げる! [ Comm Tech Festival ] C-4

  1. 1. Visual Studio Online BUILD を 本気で使いこなして 品質&効率を劇的に上げる! [ Comm Tech Festival ] C-4 1 TFSUG・Microsoft MVP for Visual Studio ALM 古賀 慎一 2015年9月26日(土) Copyright© 2015 Shin-ichi Koga All Rights Reserved.
  2. 2. このセッションのゴール ※本セッション対象者は、ソースバージョン管理・タスク管理からもう一歩先に進みたい開発チーム VSO BUILDで出来ること・出来ないこと のイメージを持つ 品質・効率を上げるために何をすべきか? を理解する 自社案件に VSO BUILD を 採用 出来るか?検討出来るようになる 高品質・低コスト・保守性の高い開発を行えるようになろう! 2 Visual Studio Online BUILD
  3. 3. 自己紹介 3 古賀 慎一 Microsoft MVP for Visual Studio ALM ソフトバンク・テクノロジー株式会社 Project Management Office (PMO) エキスパートエンジニア  クラウドサービス Online Service Gate® で TFS 導入事例 http://tech.surviveplus.net/archives/1114  前職では 某大手 情報サイトのデータ入稿システム のフレームワークを開発  「仕組み」作りで 如何に高品質・低コストで早い開発を実現できるか?  エンタープライズ向けの実践的な C# サンプルを公開
  4. 4. アジェンダ  品質・効率を左右するものは?  Visual Studio Online BUILD で出来ること  MVVM と単体テスト  自動ビルド・自動テスト  BUILD と RELEASE  まとめ 4 このスライドは SlideShare で共有します ( http://www.slideshare.net/shinichikoga355/ ) ※ Visual Studio 2015 で行える 単体テスト、コード化されたUIテスト、ロードテスト、テストケースなどの解説も行います
  5. 5. 品質・効率を左右するものは? チーム開発でも最も注意すべきことは「デグレ」と「コードフリーズ」 5
  6. 6. 最も品質と効率に影響するのは「デグレ」  新しい機能を追加すると、以前動いていた機能が動かなくなった  「気付かずにそのままリリース」だけは避けなければ  ソースバージョン管理システムを導入すれば、変更を確認出来るケド 気付くのが遅くなるほど、修正・再確認にコストがかかる ⇒ コードを変えたらすぐに「壊れていないか?」確認したい 6
  7. 7. もう1つは「コードフリーズ」がうまく出来ない事  テストと並行して、開発・修正が行われる現実  ソースバージョン管理システムを導入すれば、分岐で分離出来るケド  テスト失敗「最新のバージョンでは直っているから」は本当? 古いバージョンでテストを続けているとコストが無駄に消費される ⇒ コードを変えたらすぐに最新版でテストしたい・テストして欲しい 7
  8. 8. Visual Studio Online BUILD をうまく使えば  コードを変えたらすぐに「壊れていないか?」確認できる 「デグレ」を抑え、起きてしまっても最小のコストに  コードを変えたらすぐに最新版でテストできる・テストしてもらえる 「コードフリーズ」出来ずにおこる無駄なテストコストを削減 高品質・低コスト・保守性の高い開発を行えるチームになる! 8 自動ビルド 自動テスト 自動リリース
  9. 9. VSO BUILD で出来ること 品質・効率を上げるためにローカルとオンラインで行う様々なテストと配置 9
  10. 10. おさらい:VSOで何が出来ますか?  Visual Studio Online のメニューを見るとわかります  HOME ⇒ ダッシュボード・見える化  CODE ⇒ ソースバージョン管理  WORK ⇒ タスク管理・工程管理・進捗管理・バグトラッキングシステム  BUILD ⇒ 自動ビルド・自動テスト・自動リリース・継続的デリバリー  TEST ⇒ テストケース管理(バグトラッキングシステム)・他機能はまだプレビュー 10 さらに RELEASE が追加される予定(リリース管理)
  11. 11. VS・VSO で扱うテスト&リリース  Visual Studio は 単体テスト、コード化されたUIテスト、ロードテスト  Visual Studio Online BUILD はビルド・テスト・リリースの手動 or 自動実行 • BUILD のテストは 単体テスト を表す • BUILDのリリースは 簡易的なデプロイ を表す  Visual Studio Online TEST はテストケース管理とロードテスト  Visual Studio Online RELEASE は 複数環境へのデプロイと承認フロー(予定 11
  12. 12. 「ビルド定義」を作成・登録・実行するのが BUILD  どのソースコードをビルドするか?  ビルド後に(どの)単体テストを実行するか?  ビルド後に成果物をコピーするか?  成果物を(どこに)デプロイするか?  これらの「ビルド定義」を、手動・日次・曜日指定 で実行するか? 12
  13. 13. ビルド・テスト・リリースの結果が VSO でわかる  手動で実行するとリアルタイムでログ・結果を確認できる  BUILD で結果をいつでも確認出来る ⇒ HOME にピン留めして「見える化」 13
  14. 14. UIテストはVSOで実行できない  UIテストには「Windows ログイン」が必要  自分の開発環境、あるいはオンプレTFSのラボでしかテストできない  かつ、高度で、アプリ全体のシナリオテストには不向き うまく部品化して“UI部品の単体テスト”として「コード化されたUIテスト」 を使うのがよい ※「コード化されたUIテスト」を自動テストするとしても、ローカル環境で実行する ※ テストーケースの手動テスト操作の「ステップの一部を自動化」するには使えます 14
  15. 15. どうすればうまく「単体テスト」を作れるか?  クラスライブラリ、あるいはアプリの一部分の「単体テスト」を作る  MVVM で設計・実装することがポイント = どこまで担保できるか?  M : Model  DBやクラウドサービスから入手したデータを入れる箱  V: View  画面に表示して、人間がデータの内容を確認出来るようにする  VM : View Model  画面(V) に表示するために、モデル(M) を複製して、その画面用のモデル(VM) とする 15
  16. 16. MVVM と単体テスト Visual Studio Online BUILD を使いこなすために必要な設計・実装 16
  17. 17. MVVM : Model – View – View Model の動き  DBやクラウドから取得した Model を、画面用の View Model に格納  画面にデータバインドで表示  双方向バインドなら V でユーザーが値を変える VM も変わる  プログラムで今度は逆に VM から M に格納、それぞれDBやクラウドに保存する 17 “A” Model “C” View Model View “C” Database “A” Cloud Service “B” “B” Model データバインド Data Binding Web API, WCF Entity Framework, LINQ to SQL
  18. 18. MVVM ならロジックを分離して単体テストできる  MVVMの 色んな部分を差し替えることが可能 DBにもインターネットに繋がずにテスト出来る 18 “A” Model “C” View Model 単体テスト Database “A” Cloud Service “B” “B” Model View Model を試験 Web API, WCF Entity Framework, LINQ to SQL 単体テスト“C” View Model View Model を試験 テスト用 Model を作るプログラム “A” Model “B” Model
  19. 19. コード化されたUIテスト でUI部品のみのテストも  MVVM で実装されていれば UI部品を、アプリをテストしやすい単位で分割する事も可能 19 “A” Model “C” View Model Database “A” Cloud Service “B” “B” Model Web API, WCF Entity Framework, LINQ to SQL UI部品のみ View “C” View Model Data Binding テスト用 View Model を作るプログラム UI部品のみ View データバインド Data Binding
  20. 20. MVVM プロジェクト構成 <例>  データベースプロジェクト(DB定義)  共通クラスライブラリ(エンティティモデル、ビジネスロジック)  共通クラスライブラリの単体テスト  アプリのUI部品(ユーザーコントロール、TypeScript、NuGet)  アプリ(WPF、ASP.NET MVC、SPA)  アプリの単体テスト  アプリのコード化されたUIテスト  Webアプリの ロードテスト  セットアップ 20
  21. 21. 開発の流れ<例> ① 設計(UML図、Word、Excelなど) ② DB定義作成・データベースへ発行/公開 ③ エンティティモデル作成(データベースからedmx更新) ④ アプリと共通クラスライブラリを作成(空のプロジェクト) ⑤ 機能メソッドの作成、単体テスト作成、実装を完成 ⑥ ユーザーコントロールの作成、コード化されたUIテスト作成、実装を完成 ⑦ パッケージ作成、配置、シナリオテスト(テストケース作成・実施・記録)~ 修正 ⑧ テスト済みのパッケージを製品としてリリース 21
  22. 22. 単体テストはメソッドをテストする  クラスライブラリ メソッド  引数を指定した時、戻り値が返る事、プロパティが変わる事、例外がスローされる事  Web コントローラ Actionメソッド  GET/POSTパラメータを指定したとき、ViewModelを持ったViewが返る事、リダイレクトされる事  Web API ならC#の型で戻り値を確認(JSONへの変換は自動で行われる) これを Visual Studio & Visual Studio Online BUILD で実行する 22
  23. 23. VSOの単体テストで DBを使ったテストもできる  (LocalDB)ProjectV12 を作成し、MDFをアタッチすればDBが使える  ライブラリ用意したよ、使ってね(※DACパッケージにも対応)  サンプルあるよ 23 TFS・VSO・ローカルで動作するデータベースを使った 単体テストの作り方・量産方法 https://code.msdn.microsoft.com/TFSVSO-dc7b8c9d
  24. 24. VS2015 IntelliTest ならパターン網羅は自動で作れる ① 複雑なテストケースを真剣に作る ② メソッドを実装 ③ 完成したら IntelliTest 実行(コードカバレッジ100%テストパターンが作成される) ④ 単体テストが全て揃えば、いつでも「壊れていない」事を確認できる 24
  25. 25. ビルド時間を消費しないように 完成を確認する  ローカルでビルドとテスト成功を 確認する  Visual Studio BUILD で使用できる 「ビルド時間」は無料枠に制限、 重量課金 or 固定料金が選べる 25
  26. 26. 自動ビルド・自動テスト チームの誰もコードを壊していない事を確認できる安心感こそが「品質」 26
  27. 27. ビルド定義の作成 (1/2) ① VS で開発したソースコードを VSO CODE にチェックイン ② VSO BUILD で[+]を押して新規作成 ③ 「Visual Studio」のビルドテンプレートを選択 ④ 全てビルド or ソリューションをパスで指定 ⑤ (ソリューションの)全て単体テスト or 名前で指定 ⑥ [Save]を押して保存 ⑦ [Queue build...]を押して実行 ※ビルド時間を消費 ※保存すると Build definitions > All build definitions に表示 任意の名前を付けられます 27
  28. 28. ビルド定義の作成 (2/2) ⑧ ビルドとテストの成功を確認 ⑨ Triggers を開いて「いつ実行するか?」を指定  チェックインされたらビルド  スケジュールでビルド(時刻・曜日を複数指定) ⑩ もう一度保存 自動ビルド・自動テスト設定完了 ⑪ 左のビルド定義の名前の「ピン」のアイコン を押して HOME にピンする ⑫ 毎日、ソースが壊れていない事を確認できる(見える化) 28
  29. 29. BUILD と RELEASE 近い将来「リリース管理」で開発・テスト・リリースの流れを開発する 29
  30. 30. ビルド定義にデプロイを追加  BUILD でビルド後に成果物をコピーできる  さらに、成果物をデプロイする指定を追加  Azure への配置、Power Shell 実行、 Windowsマシンへコピー などが選べる  簡易的な自動リリース ⇒ テストのための自動リリースであれば十分? 30 ビルド定義に Deploy を追加
  31. 31. 将来 VSO RELEASE では本格的なデプロイを実現(予  リリース管理では「リリース定義」を作成  いわゆる承認ワークフロー  環境ごとに 担当者の承認とデプロイの実行 を行う  「リリース定義」を実行すると、ワークフロー開始  メール通知あり、Webで承認・否認ができる  否認するとそこでワークフロー完了  承認するとデプロイが実行されて、次へ進む  全て完了すると、リリース完了 31 開発環境 承認&デプロイ QA環境 承認&デプロイ ステージング環境 承認&デプロイ 運用環境 承認&デプロイ ※この内容はリリース前の公開資料と、2013リリース管理の機能から、VSOに追加される予定の機能を想定して解説しています
  32. 32. まとめ Visual Studio Online BUILD を使いこなして品質・効率をあげよう! 32
  33. 33. まとめ  デグレを防ぐ「自動ビルド・自動テスト」  テスト対象を確実にするために「自動デプロイ」を使おう  VSOで自動テストできるのは「単体テスト」  MVVMで作れば、単体テスト・コード化されたUIテストはうまく作れる  ローカルで「コード化されたUIテスト」「ロードテスト」も活用しよう  将来、RELEASE が出たら使おうね! 33
  34. 34. 拙著紹介(CM) チーム開発の教科書 C#によるモダンな開発を実践しよう! Visual Studio 2010/2012/2013/2015対応  著者:古賀慎一 ( Microsoft MVP for Visual Studio ALM )  単行本:B5変型判 288ページ  価格:定価2916円(本体2700円+税)  ISBN:978-4-8222-9855-5  出版社:日経BP社 (目次:http://goo.gl/Q2Z7TZ )  発売日:2015年10月8日  Amazon.co.jp : http://goo.gl/HfcUSY 34 今日の内容も 詳細に解説!
  35. 35. 35Copyright© 2015 Shin-ichi Koga All Rights Reserved.
  • nagaokz

    Jun. 12, 2016
  • toshifumishinohe

    Jan. 26, 2016
  • wataru2231

    Jan. 7, 2016
  • tyorosan

    Oct. 7, 2015
  • nobuakiyamaji1

    Oct. 6, 2015
  • nagasama

    Sep. 30, 2015
  • koguma98

    Sep. 29, 2015
  • yoshinorikasamatsu

    Sep. 27, 2015
  • pontagogo

    Sep. 27, 2015

Comm Tech Festival C-4 セッションのスライドです。 https://comuplus.doorkeeper.jp/events/30403#c4 ソースバージョン管理・タスク管理からもう一歩先に進みたい開発チームを対象に、Visual Studio での設計・開発からテスト・リリースまでの流れと Visual Studio Online BUILDを使いこなすためのポイント、出来ること・出来ないこと、工夫の仕方を解説します。

Views

Total views

5,066

On Slideshare

0

From embeds

0

Number of embeds

1,235

Actions

Downloads

22

Shares

0

Comments

0

Likes

9

×