WPFとUWP開発における
テスト自動化
Dawn Huczek
自己紹介
・石川達也
・(株)Codeer 代表取締役
・Microsoft MVP
・ささいなことですが(ブログ)
・OSS
Friendly
Selenium拡張
LambdicSql
Visual Studio and Development Technologies
http://ishikawa-tatsuya.hatenablog.com/
https://www.nuget.org/profiles/ishikawa-tatsuya
趣味はギターとライブラリ作成
なぜ、テスト自動化か?
なぜ、テスト自動化か?
・開発速度を上げる
・リスクを下げる
・トータルコストを下げる
みんなで幸せになろうよ。
なぜ、テスト自動化か?
実装中に
何度も重たいアプリを起動して
手動で確認してたんですけど、
単体テストを利用するようになって、
そういうケースでは
実装速度が劇的に上がりましたね。
開発者Tさん
単体テストを使いこなそう
なぜ、テスト自動化か?
実装と平行して、
アプリケーションレベルのテストも
作成していきました。
実装を進める中で、当然以前の実装に影響を
与えるような修正も入りますが
その再確認のコストとストレスは
かなり少なかったですね。
開発速度はかなり上がりました。
開発中なんで仕様変更もあり、
そのメンテは大変なものもありましたが
逆に影響範囲が分かってよかったですね。
マネージャー Hさん
こんな感じ
1 2 3 4 5 6
なぜ、テスト自動化か?
うちは、品質保証うるさくて
リリースのたびに、3人月分のテストを
実施する必要があったんですが、
そのテストの大部分を自動化することができたので
非常に楽になり
リリース速度が上がりました。
新米リーダーSさん
(大企業勤務) シンプルにテスト工数減りました
なぜ、テスト自動化か?
もう
(自動化)
Friendly なしでは、
もうプロジェクトが回りません。
ベテランマネージャーKさん
(大企業勤務)
あざっすー
なぜ、テスト自動化か?
テスト工程だけじゃなく
開発全体に効いてくる!
なぜ、テスト自動化か?
・開発速度を上げる
・リスクを下げる
・開発のトータルコストを下げる
「自動化」を実現するには、プログラムの技術。
プロジェクトごとにそれは違います。
今日の話が参考になれば幸いです。
WPF、UWPでの
テスト自動化手法
・単体テスト
・VMを使ったシナリオテスト
・アプリを外部から操作
WPF、UWPでのテスト自動化手法
VisualStudioを使うとやりやすいよ
・単体テスト
・VMを使ったシナリオテスト
・アプリを外部から操作
WPF、UWPでのテスト自動化手法
いや、単体テスト重要ですよ。
でも他で誰かが説明してるでしょ?
今日もはコレ
アプリを外部から操作
人類の夢!
人間がやってる手動テストに一番近い。
品質保証の一部を担える!
パワフル!
アプリを外部から操作
得体がしれない
→単体テスト、VMレベルのテストまでとは全く異質
上手くいってるとこあんまり聞かない・・・
→昔からそれっぽいのあるけどね
だめじゃん・・・
アプリを外部から操作
人間の操作に近づけよう?
まあ、最終は強力なAIないと無理ちゃうかな?
近い将来できるかもしれないけど。
そのころには、プログラムも書いてくれるでしょう。
アプリを外部から操作
単体(結合)テストに近づけるのだ!
プログラムから操作可能。
テスタビリティーに関して
圧倒的な柔軟性。
それを可能にするのが・・・
OSSで無料公開されています。
大企業様から中小企業様まで続々採用中。
・Microsoft MVP Showcaseで2位。
・IPA「先進的な設計・検証技術の適用事例報告書 2015年度版」掲載
WPFアプリに関してデモ
https://github.com/Ishikawa-
Tatsuya/WPFFriendlySampleDotNetConf2016
アプリとテストコードは
こちらからダウンロードできます。
基本からWPFのUI要素の特定方法まで!
まるで単体テストのような自由度でしょう?
・プロパティー、フィールド、メソッドの呼び出し
・モックの挿入
※別プロセスなのに操作が同期している。
プロジェクトに最適なテストが書ける!
Driver.dllScenario.dll
技術!
テスト内容
外部仕様から理解できるテスト。
せっかくなんで、見通しよく。
レイヤを分けよう!
ドライバ実装時は、技術力をフルに使う。
テストというより、アプリ操作のプログラム。
WPF用の便利ライブラリもあるので
それもご利用ください。
定型処理は便利関数にまとめています。
・WPFButtonBase
・ WPFComboBox
・ WPFListBox
・ WPFListView
・ WPFMenuBase
・ WPFMenuItem
・ WPFProgressBar
・ WPFRichTextBox
・ WPFSelector
・ WPFSlider
・ WPFTabControl
・ WPFTextBox
・ WPFTextBlock
・ WPFToggleButton
・ WPFTreeView
・ WPFTreeViewItem
・ WPFCalendar
・ WPFDatePicker
・ WPFDataGrid
6
Friendly
Friendly.Windows
Friendly.Windows.Grasp
Friendly.Windows.NativeStandardControls
(Win32)
Friendly.FormsStandardControls
(WinForms)
Friendly.WPFStandardControls
(WPF)
Friendly.PinInterface
Infrastructure
Control drivers
Friendly.XamControls
(WPF)
Friendly libraries
でも、重要なのは
なんでもできる自由度!
工夫できる自由度!
テスタビリティは自分たちで高めるもの。
なんと!
UWP用も開発中!
デモ
Codeerは
テスト自動化支援やってます。
宣伝
・Friendlyトレーニング
・対象プロジェクトごとに適したプランのご提案
・自動化環境構築のお手伝い
・サポートサービス
弊社の自動化支援メニュー(Windowsアプリ)
・アプリケーションドライバ受注作成
・テストシナリオ受注作成
【コンサルティングメニュー】
【開発メニュー】
Windowsアプリのテスト自動化に関しては
どこにも負けません!
http://www.codeer.co.jp/AutoTest/Consulting
・対象プロジェクトごとに適したプランのご提案
・自動化環境構築のお手伝い
・サポートサービス
弊社の自動化支援メニュー(Web)
・PageObject受注作成
・テストシナリオ受注作成
【コンサルティングメニュー】
【開発メニュー】
新規サービス。
Windowsアプリで培ったノウハウも生かしつつ、
Seleniumを使ってVisualStudioとC#でテスト自動化を実現します。
Asp.Netを使っているプロジェクトにお勧め!
http://www.codeer.co.jp/AutoTest/Consulting
弊社自動化コンサルタント
・Codeer代表取締役
・Microsoft MVP
・10年にわたりテスト自動化に取り組んでいる
・Friendlyの作者
・C、C++、C#が得意だが
JavaScript、TypeScriptもこなす
・Microsoft MVP
・長年CIに取り組んでいる
・C、C++、C#が得意だが
JavaScript、TypeScriptもこなす
http://www.codeer.co.jp/AutoTest/Consulting
まとめ。
・テスト自動化は、テストフェーズだけでなく
開発全体を効率化するものである。
・テスタビリティは自分たちで上げる。
・Codeerのテスト自動化支援サービスを利用する。

More Related Content

PPTX
FriendlyによるWindowsアプリテスト自動化手法 基礎技術編
PPTX
Friendlyを使ったwindowsアプリテスト自動化
PPTX
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
PPTX
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
PPTX
Bindingからframework elementを見つける
PPTX
価値あるシステムテスト自動化の実現By friendly
PDF
GUI Test is (not) necessary
PDF
XP祭り2013-LT-Codeer
FriendlyによるWindowsアプリテスト自動化手法 基礎技術編
Friendlyを使ったwindowsアプリテスト自動化
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
Bindingからframework elementを見つける
価値あるシステムテスト自動化の実現By friendly
GUI Test is (not) necessary
XP祭り2013-LT-Codeer

What's hot (20)

PDF
Windowsでの自動化の手段
PDF
テストの自動化を考える前に
PDF
Selenium boot campの紹介
PPT
自動テスト知識体系TABOKのご紹介
PDF
テスト自動化の様々な道具を使ってみた四方山話
PDF
ディープラーニングとAppiumでモバイルテスト自動化
PPTX
テストを書こう!!
PPTX
Windowsアプリテスト自動化 [Friendly+delphi]
PDF
20121019 jenkins勉強会lt資料
PPTX
Robotium を使った UI テストとレイアウト確認の効率化
PPT
テスト自動化ツール[Selenium]を検討してみて
PPTX
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
PPTX
Pythonを中心としたチーム開発
PPTX
SI-Toolkitでテスト自動化を実現する現場で遭遇したこと
PDF
ぼくのかんがえた iOSテスト戦略
PPTX
Sansan における Android アプリ自動テスト導入事例
PDF
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
PDF
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
PDF
20161218 selenium study4
PDF
海外のSeleniumカンファレンスではどんな発表がされているのか2014
Windowsでの自動化の手段
テストの自動化を考える前に
Selenium boot campの紹介
自動テスト知識体系TABOKのご紹介
テスト自動化の様々な道具を使ってみた四方山話
ディープラーニングとAppiumでモバイルテスト自動化
テストを書こう!!
Windowsアプリテスト自動化 [Friendly+delphi]
20121019 jenkins勉強会lt資料
Robotium を使った UI テストとレイアウト確認の効率化
テスト自動化ツール[Selenium]を検討してみて
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
Pythonを中心としたチーム開発
SI-Toolkitでテスト自動化を実現する現場で遭遇したこと
ぼくのかんがえた iOSテスト戦略
Sansan における Android アプリ自動テスト導入事例
事例 アジャイルと自動化 後半(ヤフオク!アプリでの自動テストの事例紹介) at Ques vol.7( #ques7 ) 11/20/2015
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
20161218 selenium study4
海外のSeleniumカンファレンスではどんな発表がされているのか2014
Ad

Viewers also liked (20)

PDF
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
KEY
Frank iOS Testing
PDF
ネットワークAPI のあれこれ (ENOG37)
PPTX
ASP.NET MVC プログラミング入門の入門
PPTX
Opendaylight SDN Controller
PPTX
Stac2014 石川
PPTX
Module 3: NETCONF and YANG Concepts
PPTX
Module 4: NETCONF Tutorial
PDF
ネットワーク運用自動化の実際〜現場で使われているツールを調査してみた〜
PDF
NETCONF Call Home
PDF
O/Rマッパーによるトラブルを未然に防ぐ
PDF
Prism.Formsについて
PDF
ストリーム処理を支えるキューイングシステムの選び方
PDF
10分でわかる無料になったXamarin
PDF
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
PDF
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
PDF
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
PPT
Distributed computing ).ppt him
PPTX
RuntimeUnitTestToolkit for Unity
PDF
NextGen Server/Client Architecture - gRPC + Unity + C#
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
Frank iOS Testing
ネットワークAPI のあれこれ (ENOG37)
ASP.NET MVC プログラミング入門の入門
Opendaylight SDN Controller
Stac2014 石川
Module 3: NETCONF and YANG Concepts
Module 4: NETCONF Tutorial
ネットワーク運用自動化の実際〜現場で使われているツールを調査してみた〜
NETCONF Call Home
O/Rマッパーによるトラブルを未然に防ぐ
Prism.Formsについて
ストリーム処理を支えるキューイングシステムの選び方
10分でわかる無料になったXamarin
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
Distributed computing ).ppt him
RuntimeUnitTestToolkit for Unity
NextGen Server/Client Architecture - gRPC + Unity + C#
Ad

Similar to .Netconf (20)

PPTX
20131201 テスト自動化カンファレンスLT「激しいUI変更との戦い」
PDF
Automation test.ssf alpha
PPTX
Infragistics Web Day 2017 - 継続的な開発を支える テスト自動化技術
PDF
Azureを使って手軽にブラウザテストの自動化をはじめよう
PDF
【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
PDF
OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
PPTX
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
PDF
Introduction to Visual Studio App Center
PDF
Jupyter勉強会 20160701 at NII
PPTX
FriendlyとTestAssistantProでテスト自動化やってみた
PPTX
【オンライン】.NET 6 移行祭り! C# Tokyo イベント
PPTX
Selenium WebDriver + python で E2Eテスト自動化
PDF
【JaSST'11 Tokyo】 テスト イノベーション
PPTX
Win7 * appium * androidで実機自動テストやってみた。
PPT
PDF
Et west テスト自動化_公開版
PDF
STYLY Studioのテストをブラウザ自動操作で効率化する
PDF
テスト駆動で行うネットワーク自動化のすすめ
PPTX
Stack2017 自動化困難な状況での活動方法
PDF
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア
20131201 テスト自動化カンファレンスLT「激しいUI変更との戦い」
Automation test.ssf alpha
Infragistics Web Day 2017 - 継続的な開発を支える テスト自動化技術
Azureを使って手軽にブラウザテストの自動化をはじめよう
【短縮版】OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
OSSのブラウザ自動テストツール「Selenium」を使った、開発・テストの効率化
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
Introduction to Visual Studio App Center
Jupyter勉強会 20160701 at NII
FriendlyとTestAssistantProでテスト自動化やってみた
【オンライン】.NET 6 移行祭り! C# Tokyo イベント
Selenium WebDriver + python で E2Eテスト自動化
【JaSST'11 Tokyo】 テスト イノベーション
Win7 * appium * androidで実機自動テストやってみた。
Et west テスト自動化_公開版
STYLY Studioのテストをブラウザ自動操作で効率化する
テスト駆動で行うネットワーク自動化のすすめ
Stack2017 自動化困難な状況での活動方法
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア

More from Tatsuya Ishikawa (14)

PPTX
burikaigi2025.pptx Burikaigi2025でつかった資料です。
PPTX
DotNetConf2024の資料 BlazorとLowCodeと生成AIの話です
PDF
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
PPTX
burikaigi2024.pptx
PPTX
burikaigi2023
PPTX
Test to net core 3
PPTX
Test automation strategy for .net core 3 transition
PDF
Developer summit codeer
PPTX
メタな感じのプログラミング(プロ生 + わんくま 071118)
PPTX
Dot netconf2017 - VS拡張
PPTX
boost - std - C#
PPTX
Ride on azure~アイデアソン編~
PPTX
私とC++ in 例外安全day
PPTX
他言語との連携(ネイティブから動的言語まで)
burikaigi2025.pptx Burikaigi2025でつかった資料です。
DotNetConf2024の資料 BlazorとLowCodeと生成AIの話です
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
burikaigi2024.pptx
burikaigi2023
Test to net core 3
Test automation strategy for .net core 3 transition
Developer summit codeer
メタな感じのプログラミング(プロ生 + わんくま 071118)
Dot netconf2017 - VS拡張
boost - std - C#
Ride on azure~アイデアソン編~
私とC++ in 例外安全day
他言語との連携(ネイティブから動的言語まで)

.Netconf