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.

.Netconf

2,970 views

Published on

DotNetConf関西で話た内容です。
http://connpass.com/event/38870/?utm_campaign=event_participate_cancel_to_owner&utm_source=notifications&utm_medium=email&utm_content=title_link

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

.Netconf

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

×