わんくま名古屋 #40 (20161217) xamarinで自動化テストしよう
TRANSCRIPT
![Page 1: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/1.jpg)
わんくま同盟 名古屋勉強会 #40
Xamarin で自動化テストしよう
2016/12/17BluewaterSoft @biac
2016/12/17 1
![Page 2: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/2.jpg)
わんくま同盟 名古屋勉強会 #40
スピーカー紹介
• BluewaterSoft 山本 康彦 a.k.a @biacまだ人工衛星が飛んでない時代に生まれ、HONDAでクルマの設計やってました
• Microsoft MVP for Windows Development (2014/10-2017/9)
• Windows ランタイム アプリ開発 / 記事や書籍の執筆 やってます
22016/12/17
![Page 3: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/3.jpg)
わんくま同盟 名古屋勉強会 #40
スピーカー紹介~ このセッションに関連する@ITの記事
• 特集:Visual StudioとXamarinで始めるiOS/Android/UWPアプリ開発
– 第1回:Xamarinでアプリを作ろうhttp://www.atmarkit.co.jp/ait/articles/1609/23/news019.html
– 第2回:Xamarin.FormsとネイティブUIhttp://www.atmarkit.co.jp/ait/articles/1611/02/news025.html
– 第3回:Xamarinにおけるコードの共通化とプラットフォーム固有のコードの記述http://www.atmarkit.co.jp/ait/articles/1612/02/news021.html
32016/12/17
![Page 4: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/4.jpg)
わんくま同盟 名古屋勉強会 #38
LINQマジック!
新刊のCM
42016/12/17
![Page 5: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/5.jpg)
わんくま同盟 名古屋勉強会 #40
C#プログラマーのための 基礎からわかるLINQマジック!
• 2016年5月12日 発売♪
• 「LINQ? なにそれ美味しいの!?」…という人に!
• 技術評論社ISBN: 978-4-7741-8094-6352ページ、¥3,110 (消費税込み)
2016/12/17 5
![Page 6: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/6.jpg)
わんくま同盟 名古屋勉強会 #40
C#プログラマーのための 基礎からわかるLINQマジック!
• Amazonhttp://amzn.to/1Seb1Mb※ Kindle版は¥2,880
• 技評デジタルパブリッシング¥2,880 (PDF/ePubセット)https://gihyo.jp/dp/ebook/2016/978-4-7741-8176-9
• その他のオンラインショップは、技評社のサイトを参照してくださいhttps://gihyo.jp/book/2016/978-4-7741-8094-6
2016/12/17 6
![Page 7: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/7.jpg)
わんくま同盟 名古屋勉強会 #40
C#プログラマーのための 基礎からわかるLINQマジック!
LINQは…
• 複雑な繰り返し処理 (ループ) が簡潔に書ける♪
• パフォーマンスはほとんど低下しない!!
この本は、その秘密を解き明かします
2016/12/17 7
![Page 8: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/8.jpg)
わんくま同盟 名古屋勉強会 #40
〔速攻入門〕 C#プログラミング
http://bluewatersoft.cocolog-nifty.com/blog/SokkoCSharp.html
〔速攻入門〕 C#プログラミングすぐに現場で使える知識
~ Java か C++ の経験があれば、いっそう有利な最短ルート
中 博俊 (著), 猪股 健太郎 (著), 岩永 信之 (著), 山本 康彦 (著)
技術評論社 (2012/3/9)
Android / iPhone 開発をやってきた人に最適な C# 解説書です
2016/12/17 8
![Page 9: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/9.jpg)
わんくま同盟 名古屋勉強会 #38
Xamarin入門
正確には Visual Studio のXamarin tools (Xamarin for Visual Studio)
2016/12/17 9
![Page 10: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/10.jpg)
わんくま同盟 名古屋勉強会 #40
ざ ま り ん
Xamarin ってナニモノ?• Xamarin Inc. のクロス プラットフォーム 開発ツールAndroid / iOS / Windows
• C#で開発
• Xamarin Inc. をMicrosoftが買収 (2016/3/18)⇨ Xamarin Platformが、Visual Studioに無償で入った♪
※ Community版(無償)以上。Expressには無し
2016/12/17 10
![Page 11: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/11.jpg)
わんくま同盟 名古屋勉強会 #40
Xamarin の製品構成
※ 日本代理店はXLsoft https://www.xlsoft.com/jp/products/xamarin/
2016/12/17 11
IDE (Mac用 / Windows用) 自動テスト用クラウド
アプリ モニタリング トレーニング
これがVisual Studioに入った!
HockeyApp
Visual Studio Mobile Center (PV)
![Page 12: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/12.jpg)
わんくま同盟 名古屋勉強会 #40
2つのXamarin Platform
※ https://www.xamarin.com/studio ; https://www.xamarin.com/visual-studio
2016/12/17 12
Xamarin Studio (Mac用) Xamarin for Visual Studio
これから紹介するのはこちら♪
Visual Studio for Mac (PV)
![Page 13: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/13.jpg)
わんくま同盟 名古屋勉強会 #40
Xamarin入門 ⇒ 続きは…
• わんくま名古屋 #39 (2016/5/21)「Xamarin で始める iOS / Android アプリ開発」http://www.slideshare.net/yasuhikoy/38-20160521-xamarin
• @IT:Visual StudioとXamarinで始めるiOS/Android/UWPアプリ開発第1回 http://www.atmarkit.co.jp/ait/articles/1609/23/news019.html
第2回 http://www.atmarkit.co.jp/ait/articles/1611/02/news025.html
第3回 http://www.atmarkit.co.jp/ait/articles/1612/02/news021.html
2016/12/17 13
![Page 14: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/14.jpg)
わんくま同盟 名古屋勉強会 #38
テストの目的と自動化戦略
なんのためにテストする?どこを自動化する?
2016/12/17 14
![Page 15: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/15.jpg)
わんくま同盟 名古屋勉強会 #40
テストの目的
•検証決めたとおりに出来てる?
– 仕様 (設計) 通りにプログラムが出来上がっているか?
– 大概、こっちしかやってない
•評価それでいいの?
– 仕様 (設計) を評価する。仕様 (設計) は正しいか?仕様 (設計) に改善点はないか?
– βテストの本来の目的
2016/12/17 15
![Page 16: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/16.jpg)
わんくま同盟 名古屋勉強会 #40
テストの自動化しやすさ
•検証
– 原理的には自動化可能
– ユニットテスト:容易UIテスト:サポート次第
•評価
– 現在は不可能※ AI研究次第?
2016/12/17 16
![Page 17: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/17.jpg)
わんくま同盟 名古屋勉強会 #40
検証テストのどこを自動化すべきか?
• 原理的には、どんな検証テストでも自動化できる
• 仕事としての開発では、コストが問題
• つまり、コストメリットがあるなら自動化する
自動化するコスト < 繰り返し手動テストするコスト
2016/12/17 17
![Page 18: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/18.jpg)
わんくま同盟 名古屋勉強会 #38
Xamarinの自動化テスト
UIテストも可能
2016/12/17 18
![Page 19: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/19.jpg)
わんくま同盟 名古屋勉強会 #40
Xamarin for VSで使える自動化テスト
• ユニットテスト
– MSTest[UWP、PCL]
– NUnit[PCL、Android、iOS]※ AndroidとiOSは、各プラットフォーム上でNUnitを実行
• UIテスト
– Xamarin UI Test[Android、iOS]
– Coded UI Test[UWP]※ Enterprise版のみ
2016/12/17 19
![Page 20: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/20.jpg)
わんくま同盟 名古屋勉強会 #38
MSTest
MS純正ユニットテストフレームワーク
2016/12/17 20
![Page 21: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/21.jpg)
わんくま同盟 名古屋勉強会 #40
ユニットテスト - MSTest
• プロジェクト作成時上:.NET用下:WinRT用
• 2つの違いは、テスト用ライブラリ⇒http://www.tdd-net.jp/2013/12/mstestwindows-w.html
※ WinRT用の方が便利♪でも、起動が遅い orz
2016/12/17 21
![Page 22: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/22.jpg)
わんくま同盟 名古屋勉強会 #40
ユニットテスト - MSTest
• MSTest for .NET
– PCL用のユニットテスト
https://docs.microsoft.com/ja-jp/visualstudio/test/unit-test-your-code
• MSTest for WinRT
– UWP用のユニットテストWindows 8.x / Windows Phone 8.x も
– PCL用のユニットテストもOK※ テスト起動に時間が掛かる
2016/12/17 22
![Page 23: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/23.jpg)
わんくま同盟 名古屋勉強会 #40
ユニットテスト - 【参考】MSTest V2
• UWP用と.NET用を統合
現在 preview 版
https://www.nuget.org/profiles/MSTestFramework
https://blogs.msdn.microsoft.com/visualstudioalm/2016/06/17/taking-the-mstest-framework-forward-with-mstest-v2/
2016/12/17 23
![Page 24: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/24.jpg)
わんくま同盟 名古屋勉強会 #38
NUnit
OSS ユニットテストフレームワーク
2016/12/17 24
![Page 25: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/25.jpg)
わんくま同盟 名古屋勉強会 #40
ユニットテスト - NUnit
• NUnitについては次を参照
⇒CodeZine「NUnitの全貌~ 基本から、最新バージョンの新機能まで」(2012/04/13)https://codezine.jp/article/detail/6518
2016/12/17 25
![Page 26: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/26.jpg)
わんくま同盟 名古屋勉強会 #40
ユニットテスト - NUnit
• PCL用
1. 普通にクラスライブラリのプロジェクトを作る
2. NuGetからNUnitを追加する
3. テスト対象を参照に追加し、手作業でテストクラスを作る
• Android用/iOS用
– 各プラットフォーム用のNUnitLiteを使用
Android用の例を次に
2016/12/17 26
![Page 27: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/27.jpg)
わんくま同盟 名古屋勉強会 #40
ユニットテスト - NUnit [Android]
• 新規プロジェクトで [テスト] - [Unit Test App (Android)]
2016/12/17 27
![Page 28: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/28.jpg)
わんくま同盟 名古屋勉強会 #40
ユニットテスト - NUnit [Android]
1. テストを書く
2. テストプロジェクトを実行する(実機またはエミュレータ)
3. デバイス上でテストを実行する(画像)
2016/12/17 28
![Page 29: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/29.jpg)
わんくま同盟 名古屋勉強会 #38
Coded UI Test
MS純正 UIテストフレームワークWPFやUWP用だよ!
2016/12/17 29
![Page 30: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/30.jpg)
わんくま同盟 名古屋勉強会 #40
UIテスト - Coded UI Test
• Enterprise版のみ詳細はMSDN参照: 「UI オートメーションを使用してコードをテストする」https://msdn.microsoft.com/ja-jp/library/dd286726.aspx
2016/12/17 30
![Page 31: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/31.jpg)
わんくま同盟 名古屋勉強会 #38
Xamarin UI Test
Xamarin 付属 UIテストフレームワークAndroid / iOS アプリ用だよ!!
2016/12/17 31
![Page 32: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/32.jpg)
わんくま同盟 名古屋勉強会 #40
Xamarin UIテスト - 試してみた環境
• Windows 10 1607 (14965.1001)Visual Studio 2015 Update 3
• Xamarin 4.2.1.60 (47830f6)Xamarin.Forms 2.2.0.45※ バージョンが違うと、細部は異なる可能性があります
• Android アプリのUIテストをやってみよう❢
2016/12/17 32
![Page 33: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/33.jpg)
わんくま同盟 名古屋勉強会 #40
Xamarin UIテスト - 対象アプリ
• Xamarin.Forms (PCL) で、こんなアプリを作った
• UIコントロールにテストからアクセスするには、AutomationIdを付けておく
2016/12/17 33
ボタンをタップすると、ラベルの文字列が変わる
![Page 34: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/34.jpg)
わんくま同盟 名古屋勉強会 #40
Xamarin UIテスト - プロジェクト追加
• 新規プロジェクトのダイアログで[UI Test App (Xamarin.UITest | Cross-Platform)] を選択
2016/12/17 34
![Page 35: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/35.jpg)
わんくま同盟 名古屋勉強会 #40
Androidのプロジェクト設定を変更
[Android Options] で [Use Shared Runtime] のチェックを外す
2016/12/17 35
![Page 36: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/36.jpg)
わんくま同盟 名古屋勉強会 #40
テスト初期化時:Androidアプリを起動
AppInitializerクラスのStartAppメソッドに1行追加
2016/12/17 36
![Page 37: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/37.jpg)
わんくま同盟 名古屋勉強会 #40
テスト初期化時:スクリーンショットを可能にする
AppInitializerクラスのStartAppメソッドに1行追加
2016/12/17 37
![Page 38: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/38.jpg)
わんくま同盟 名古屋勉強会 #40
始めのテスト:REPLコンソールを表示してみる
TestsクラスのAppLaunchesメソッドに1行追加
2016/12/17 38
今回、iOSのテストはしないのでコメントアウトした
![Page 39: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/39.jpg)
わんくま同盟 名古屋勉強会 #40
テストの準備:最新のapkを作成する
アプリを一度デバッグ実行しておく
2016/12/17 39
![Page 40: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/40.jpg)
わんくま同盟 名古屋勉強会 #40
始めのテスト:テストエクスプローラーから実行
デバイス(or エミュレーター) は起動したままで!!
2016/12/17 40
![Page 41: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/41.jpg)
わんくま同盟 名古屋勉強会 #40
始めのテスト:テストエクスプローラーから実行
REPLコンソール
treeコマンドで、実行中のUIコントロールの一覧を確認
2016/12/17 41
![Page 42: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/42.jpg)
わんくま同盟 名古屋勉強会 #40
2つめのテスト:ボタンをクリックしてみる
Testsクラスにテストメソッドを追加
2016/12/17 42
![Page 43: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/43.jpg)
わんくま同盟 名古屋勉強会 #38
まとめ
今回はここまで!
2016/12/17 43
![Page 44: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/44.jpg)
わんくま同盟 名古屋勉強会 #40
Xamarin で 自動化テスト、やってみた♪
• 基本NUnit、らしい。UWPアプリにはMSのテストも利用可
• Android / iOS のユニットテストは、たるい。ロジックはできるだけ PCL 推奨。
• Xamarin UI Testは、クラウドで実行可能♪
442016/12/17
![Page 45: わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう](https://reader034.vdocuments.site/reader034/viewer/2022051504/58ee6abb1a28abff5e8b4633/html5/thumbnails/45.jpg)
わんくま同盟 名古屋勉強会 #40
Xamarin
自動化テスト入門
2016/12/17BluewaterSoft @biac
2016/12/17 45