Submit Search
Upload
FriendlyによるWindowsアプリテスト自動化手法 基礎技術編
•
Download as PPTX, PDF
•
9 likes
•
7,317 views
Kenji Fukumoto
Follow
Asian Automation Alliance ~自動化を語り合おう!(2014/06/28) でデモを交えながら話した元ネタです。(20分)
Read less
Read more
Software
Report
Share
Report
Share
1 of 30
Download now
Recommended
Friendlyを使ったwindowsアプリテスト自動化
Friendlyを使ったwindowsアプリテスト自動化
Tatsuya Ishikawa
[기본과정] 코드 테스트와 커버리지 기본 교육(개념)
[기본과정] 코드 테스트와 커버리지 기본 교육(개념)
SangIn Choung
PHP でも活用できる Makefile
PHP でも活用できる Makefile
Shohei Okada
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
Unity Technologies Japan K.K.
これから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーション
土岐 孝平
API_Testing_with_Postman
API_Testing_with_Postman
Mithilesh Singh
Spring bootでweb ユニットテスト編
Spring bootでweb ユニットテスト編
なべ
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
SEGADevTech
Recommended
Friendlyを使ったwindowsアプリテスト自動化
Friendlyを使ったwindowsアプリテスト自動化
Tatsuya Ishikawa
[기본과정] 코드 테스트와 커버리지 기본 교육(개념)
[기본과정] 코드 테스트와 커버리지 기본 교육(개념)
SangIn Choung
PHP でも活用できる Makefile
PHP でも活用できる Makefile
Shohei Okada
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
Unity Technologies Japan K.K.
これから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーション
土岐 孝平
API_Testing_with_Postman
API_Testing_with_Postman
Mithilesh Singh
Spring bootでweb ユニットテスト編
Spring bootでweb ユニットテスト編
なべ
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
SEGADevTech
iOSアプリ UIテスト自動化入門
iOSアプリ UIテスト自動化入門
Shingo Tamaki
Spring Boot & Actuators
Spring Boot & Actuators
VMware Tanzu
Steam ゲーム内購入 サーバーサイド実装について
Steam ゲーム内購入 サーバーサイド実装について
KLab Inc. / Tech
JenkinsとjMeterで負荷テストの自動化
JenkinsとjMeterで負荷テストの自動化
Satoshi Akama
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
SEGADevTech
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
SEGADevTech
짝 테스트(Pair Testing) 소개와 사례
짝 테스트(Pair Testing) 소개와 사례
SangIn Choung
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드
SangIn Choung
今さら聞けないDiとspring
今さら聞けないDiとspring
土岐 孝平
継続使用と新規追加したRedmine Plugin
継続使用と新規追加したRedmine Plugin
Mei Nakamura
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
Robot framework 을 이용한 기능 테스트 자동화
Robot framework 을 이용한 기능 테스트 자동화
Jaehoon Oh
コールバックと戦う話
コールバックと戦う話
torisoup
UE4 MultiPlayer Online Deep Dive 実践編2 (ソレイユ株式会社様ご講演) #UE4DD
UE4 MultiPlayer Online Deep Dive 実践編2 (ソレイユ株式会社様ご講演) #UE4DD
エピック・ゲームズ・ジャパン Epic Games Japan
C++からWebRTC (DataChannel)を利用する
C++からWebRTC (DataChannel)を利用する
祐司 伊藤
Postman: An Introduction for Testers
Postman: An Introduction for Testers
Postman
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
モノビット エンジン
第9回Jenkins勉強会 超簡単Pipeline講座
第9回Jenkins勉強会 超簡単Pipeline講座
Hiroko Tamagawa
three.jsを「遅い」と思わせないデータの扱い方
three.jsを「遅い」と思わせないデータの扱い方
jey en
はじめてのUnreal Engine 4
はじめてのUnreal Engine 4
Shun Sasaki
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
Tatsuya Ishikawa
価値あるシステムテスト自動化の実現By friendly
価値あるシステムテスト自動化の実現By friendly
Tatsuya Ishikawa
More Related Content
What's hot
iOSアプリ UIテスト自動化入門
iOSアプリ UIテスト自動化入門
Shingo Tamaki
Spring Boot & Actuators
Spring Boot & Actuators
VMware Tanzu
Steam ゲーム内購入 サーバーサイド実装について
Steam ゲーム内購入 サーバーサイド実装について
KLab Inc. / Tech
JenkinsとjMeterで負荷テストの自動化
JenkinsとjMeterで負荷テストの自動化
Satoshi Akama
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
SEGADevTech
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
SEGADevTech
짝 테스트(Pair Testing) 소개와 사례
짝 테스트(Pair Testing) 소개와 사례
SangIn Choung
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드
SangIn Choung
今さら聞けないDiとspring
今さら聞けないDiとspring
土岐 孝平
継続使用と新規追加したRedmine Plugin
継続使用と新規追加したRedmine Plugin
Mei Nakamura
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
Robot framework 을 이용한 기능 테스트 자동화
Robot framework 을 이용한 기능 테스트 자동화
Jaehoon Oh
コールバックと戦う話
コールバックと戦う話
torisoup
UE4 MultiPlayer Online Deep Dive 実践編2 (ソレイユ株式会社様ご講演) #UE4DD
UE4 MultiPlayer Online Deep Dive 実践編2 (ソレイユ株式会社様ご講演) #UE4DD
エピック・ゲームズ・ジャパン Epic Games Japan
C++からWebRTC (DataChannel)を利用する
C++からWebRTC (DataChannel)を利用する
祐司 伊藤
Postman: An Introduction for Testers
Postman: An Introduction for Testers
Postman
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
モノビット エンジン
第9回Jenkins勉強会 超簡単Pipeline講座
第9回Jenkins勉強会 超簡単Pipeline講座
Hiroko Tamagawa
three.jsを「遅い」と思わせないデータの扱い方
three.jsを「遅い」と思わせないデータの扱い方
jey en
はじめてのUnreal Engine 4
はじめてのUnreal Engine 4
Shun Sasaki
What's hot
(20)
iOSアプリ UIテスト自動化入門
iOSアプリ UIテスト自動化入門
Spring Boot & Actuators
Spring Boot & Actuators
Steam ゲーム内購入 サーバーサイド実装について
Steam ゲーム内購入 サーバーサイド実装について
JenkinsとjMeterで負荷テストの自動化
JenkinsとjMeterで負荷テストの自動化
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如くスタジオ」のQAエンジニアリング技術を結集した全自動バグ取りシステム
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
「龍が如く7 光と闇の行方」の自動テスト活用事例とテスト自動化チーム(仮)による若手育成の取り組みについて
짝 테스트(Pair Testing) 소개와 사례
짝 테스트(Pair Testing) 소개와 사례
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드
Postman과 Newman을 이용한 RestAPI 테스트 자동화 가이드
今さら聞けないDiとspring
今さら聞けないDiとspring
継続使用と新規追加したRedmine Plugin
継続使用と新規追加したRedmine Plugin
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Robot framework 을 이용한 기능 테스트 자동화
Robot framework 을 이용한 기능 테스트 자동화
コールバックと戦う話
コールバックと戦う話
UE4 MultiPlayer Online Deep Dive 実践編2 (ソレイユ株式会社様ご講演) #UE4DD
UE4 MultiPlayer Online Deep Dive 実践編2 (ソレイユ株式会社様ご講演) #UE4DD
C++からWebRTC (DataChannel)を利用する
C++からWebRTC (DataChannel)を利用する
Postman: An Introduction for Testers
Postman: An Introduction for Testers
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
第9回Jenkins勉強会 超簡単Pipeline講座
第9回Jenkins勉強会 超簡単Pipeline講座
three.jsを「遅い」と思わせないデータの扱い方
three.jsを「遅い」と思わせないデータの扱い方
はじめてのUnreal Engine 4
はじめてのUnreal Engine 4
Viewers also liked
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
Tatsuya Ishikawa
価値あるシステムテスト自動化の実現By friendly
価値あるシステムテスト自動化の実現By friendly
Tatsuya Ishikawa
Stac2014 石川
Stac2014 石川
Tatsuya Ishikawa
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
Tatsuya Ishikawa
Gui自動入力ツール
Gui自動入力ツール
yanoojapan
GUI Test is (not) necessary
GUI Test is (not) necessary
Hiroshi Maekawa
テスト自動化のパターンと実践
テスト自動化のパターンと実践
Hiroshi Maekawa
第1回キーワード駆動テスト勉強会
第1回キーワード駆動テスト勉強会
Kinji Akemine
テストの種類とBDD #33testing
テストの種類とBDD #33testing
Koji Hasegawa
Windowsでの自動化の手段
Windowsでの自動化の手段
Hidari Ikw
第6回 itil講義資料
第6回 itil講義資料
Mugen Fujii
テスト自動化に対するAtlassian製品の有効活用法
テスト自動化に対するAtlassian製品の有効活用法
Mugen Fujii
【14-D-4】デベロッパー戦国時代!ストーリーをつなぐ開発環境と3つの秘訣
【14-D-4】デベロッパー戦国時代!ストーリーをつなぐ開発環境と3つの秘訣
智治 長沢
Appium を使って iOS / Android の UI テストを共通化
Appium を使って iOS / Android の UI テストを共通化
健一 辰濱
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
kyon mm
GUI自動テストの保守性を高めるには
GUI自動テストの保守性を高めるには
Nozomi Ito
質問応答システム
質問応答システム
エンジニア勉強会 エスキュービズム
入門自然言語処理入門
入門自然言語処理入門
Hiromu Shioya
1時間で分かるSTA (Software Test Automation) #stac2014
1時間で分かるSTA (Software Test Automation) #stac2014
Kazuhiro Suzuki
テストファースト、自動テストを導入するという事について(@社内勉強会)
テストファースト、自動テストを導入するという事について(@社内勉強会)
kyon mm
Viewers also liked
(20)
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
価値あるシステムテスト自動化の実現By friendly
価値あるシステムテスト自動化の実現By friendly
Stac2014 石川
Stac2014 石川
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
Gui自動入力ツール
Gui自動入力ツール
GUI Test is (not) necessary
GUI Test is (not) necessary
テスト自動化のパターンと実践
テスト自動化のパターンと実践
第1回キーワード駆動テスト勉強会
第1回キーワード駆動テスト勉強会
テストの種類とBDD #33testing
テストの種類とBDD #33testing
Windowsでの自動化の手段
Windowsでの自動化の手段
第6回 itil講義資料
第6回 itil講義資料
テスト自動化に対するAtlassian製品の有効活用法
テスト自動化に対するAtlassian製品の有効活用法
【14-D-4】デベロッパー戦国時代!ストーリーをつなぐ開発環境と3つの秘訣
【14-D-4】デベロッパー戦国時代!ストーリーをつなぐ開発環境と3つの秘訣
Appium を使って iOS / Android の UI テストを共通化
Appium を使って iOS / Android の UI テストを共通化
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
GUI自動テストの保守性を高めるには
GUI自動テストの保守性を高めるには
質問応答システム
質問応答システム
入門自然言語処理入門
入門自然言語処理入門
1時間で分かるSTA (Software Test Automation) #stac2014
1時間で分かるSTA (Software Test Automation) #stac2014
テストファースト、自動テストを導入するという事について(@社内勉強会)
テストファースト、自動テストを導入するという事について(@社内勉強会)
Similar to FriendlyによるWindowsアプリテスト自動化手法 基礎技術編
【オンライン】.NET 6 移行祭り! C# Tokyo イベント
【オンライン】.NET 6 移行祭り! C# Tokyo イベント
Tatsuya Ishikawa
Androidリリース作業の効率化(2)
Androidリリース作業の効率化(2)
Kenichi Kambara
はてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテスト
Yu Nobuoka
無料環境でWindows Mobileアプリ開発
無料環境でWindows Mobileアプリ開発
7shi
Jenkins導入ライブ
Jenkins導入ライブ
Hiasyoshi Suehiro
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
慎一 古賀
Jenkinsを使おうよ
Jenkinsを使おうよ
Yohei Oda
Web制作者視点で理解するソフトェアテスト
Web制作者視点で理解するソフトェアテスト
祐磨 堀
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
Toshiyuki Hirata
Windowsアプリテスト自動化 [Friendly+delphi]
Windowsアプリテスト自動化 [Friendly+delphi]
Tatsuya Ishikawa
Windows phoneの開発ツール
Windows phoneの開発ツール
Nobuaki Aoki
自動テストとJenkinsの活用 公開版
自動テストとJenkinsの活用 公開版
baroqueworksdev
FriendlyとTestAssistantProでテスト自動化やってみた
FriendlyとTestAssistantProでテスト自動化やってみた
NakaiYusaku
Visual Studio OnlineとUnityを使ったバージョン管理と継続的インテグレーション
Visual Studio OnlineとUnityを使ったバージョン管理と継続的インテグレーション
Kaoru NAKAMURA
Visual Studio OnlineとUnityを使った バージョン管理と 継続的インテグレーション
Visual Studio OnlineとUnityを使った バージョン管理と 継続的インテグレーション
Kaoru NAKAMURA
コードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Android
Toshiyuki Hirata
XP祭り2013-LT-Codeer
XP祭り2013-LT-Codeer
Tatsuya Ishikawa
Cod2012 デバッグ講座
Cod2012 デバッグ講座
Masuda Tomoaki
はじめてのWord pressプラグイン勉強会
はじめてのWord pressプラグイン勉強会
Takahiro Nakahata
Bindingからframework elementを見つける
Bindingからframework elementを見つける
Tatsuya Ishikawa
Similar to FriendlyによるWindowsアプリテスト自動化手法 基礎技術編
(20)
【オンライン】.NET 6 移行祭り! C# Tokyo イベント
【オンライン】.NET 6 移行祭り! C# Tokyo イベント
Androidリリース作業の効率化(2)
Androidリリース作業の効率化(2)
はてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテスト
無料環境でWindows Mobileアプリ開発
無料環境でWindows Mobileアプリ開発
Jenkins導入ライブ
Jenkins導入ライブ
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
Jenkinsを使おうよ
Jenkinsを使おうよ
Web制作者視点で理解するソフトェアテスト
Web制作者視点で理解するソフトェアテスト
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
Windowsアプリテスト自動化 [Friendly+delphi]
Windowsアプリテスト自動化 [Friendly+delphi]
Windows phoneの開発ツール
Windows phoneの開発ツール
自動テストとJenkinsの活用 公開版
自動テストとJenkinsの活用 公開版
FriendlyとTestAssistantProでテスト自動化やってみた
FriendlyとTestAssistantProでテスト自動化やってみた
Visual Studio OnlineとUnityを使ったバージョン管理と継続的インテグレーション
Visual Studio OnlineとUnityを使ったバージョン管理と継続的インテグレーション
Visual Studio OnlineとUnityを使った バージョン管理と 継続的インテグレーション
Visual Studio OnlineとUnityを使った バージョン管理と 継続的インテグレーション
コードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Android
XP祭り2013-LT-Codeer
XP祭り2013-LT-Codeer
Cod2012 デバッグ講座
Cod2012 デバッグ講座
はじめてのWord pressプラグイン勉強会
はじめてのWord pressプラグイン勉強会
Bindingからframework elementを見つける
Bindingからframework elementを見つける
FriendlyによるWindowsアプリテスト自動化手法 基礎技術編
1.
Friendlyによる Windowsアプリテスト自動化手法 基礎技術解説編
2.
自己紹介 福本健治 職業:プログラマー C#でWPFのデスクトップアプリケーション 開発をしています
3.
Windowsアプリテスト自動化 こんなことをやりたいんです。 →デモ
4.
テスト設計技術 アプリ操作技術 テスト自動化に必要な技術は大きくは二つ
5.
テスト設計技術 アプリ操作技術 今日はWindowsアプリ操作技術 に関して話します。
6.
Windowsアプリ操作プログラム 作成時に最も困ったこと。 それはインターフェイス。 ・足りない。 ・不安定。 ・調整困難 だって、GUIって 人間用じゃん・・・。
7.
GUI操作をエミュレートするライブラリは いくつか存在します。 まあ、それはそれで良いのですが、 テストを作りこんでいくと もう一手欲しかったりします。
8.
で、Friendly http://www.codeer.co.jp/AutoTest
9.
Codeer で検索 eが一個多い Nugetで無料で入手できます!
10.
Friendly 他のとは根本的に違います。 対象プロセスと、友達になって、 プログラムを直で触らせてもらうのです。 最強
11.
①君のものは僕のもの public partial class
MainForm : Form { ComboBox _comboBox; string MyFunc(int value) { return value.ToString(); } } public void YourThingIsMine() { var process= Process.GetProcessesByName("Target")[0]; //友達になると・・・ var app = new WindowsAppFriend(process); //別プロセスのオブジェクトを //自分のプロセスのもののように操作できる。 dynamic form = app.Type<Application>().OpenForms[0]; form._comboBox.SelectedIndex = 1; string ret = form.MyFunc(3); } そ、そんな・・・
12.
②僕のものは君のもの void MyThingIsYours() { var process=
Process.GetProcessesByName("Target")[0]; var app = new WindowsAppFriend(process); //自分のコードを動的にインジェクション! WindowsAppExpander.LoadAssembly(app, GetType().Assembly); //挿入したコードを相手プロセスで実行 app.Type(GetType()). ForTest(); } static void ForTest() { /*テスト用*/ } え!? 勝手に?
13.
信じられない? では、デモやります。
14.
実用例
15.
安定したGUI操作 //プログラム時に使う操作を直接呼び出しているんだから //確実に動作して当然だよね♪ form._comboBox.SelectedIndex = 2; form._checkBox.CheckState
= CheckState.Indeterminate; form._trackBar.Value = 100; *GUI操作は後で紹介する上位ライブラリを使うとさらに便利です。
16.
操作困難なGUI操作をスキップ void DragDrop(object sender,
DragEventArgs e) { DropCore( e.Data.GetData(DataFormats.FileDrop) as string[]); } void DropCore(string[] files) { //ここから先のロジックの方が不安なんだよね。 } //クリップボード使う処理は //不安定になりがちだし、 //自動テストではコア部分だけにしよっと♪ //もちろん、抜かしたことは //チームで共有するよ。 form.DropCore(new string[] { path1, path2, path3 });
17.
内部データを抜き出して検証 //リストアイテムに格納されているデータ [Serializable] class MyItem { string Name
{ get; set; } int Age { get; set; } string Address { get; set; } } //データ取れるから、検証も簡単♪ MyItem item = form._listBox.Items[3]; Assert.AreEqual(“石川", item.Name); Assert.AreEqual(37, item.Age); Assert.AreEqual(“大阪”, item.Address);
18.
複雑な処理、アトミックに実行したい処理はInjection void Test() { WindowsAppExpander.LoadAssembly(app, GetType().Assembly); //挿入したstatic関数を呼び出し。 app.Type(GetType()).
Change(form._grid, 1, 1, 2); } //割り込みなしで、確実に実行。 //実装も簡単。(^_^)v static void Change(DataGridView grid, int col, int row, int index) { grid.Focus(); grid.CurrentCell = grid[col, row]; grid.BeginEdit(false); ((ComboBox)grid.EditingControl).SelectedIndex = index; grid.EndEdit(); } 対象プロセス内で実行!
19.
void Test() { //インジェクション! WindowsAppExpander.LoadAssembly( app, GetType().Assembly); //DLL公開関数も呼び出せる! app.Type(GetType()).
MyNativeFunction(); } [DllImport("MFCApplication.exe")] static extern void MyNativeFunction(); extern "C" __declspec(dllexport) void __cdecl MyNativeFunction() { //みんな大好きMFC //処理内容 } レガシーなネイティブアプリを操作!
20.
使い方色々。 非常に応用が利くので、 工夫して使ってみてください。 この自由度の高さは テスト自動化のコストダウンの お役に立つと思います。
21.
さらに、上位ライブラリもあるのです。
22.
Friendlyは、インフラのみの提供です。 何でもできるのですが・・・。 何でも書く必要があります。 例えば・・・・。
23.
static void EmulateChangeCellText(DataGrid
grid, int itemIndex, int col, string text) { bool success = false; EventHandler<DataGridCellEditEndingEventArgs> hanlder = (s, e) => { TextBox textBox = e.EditingElement as TextBox; if (textBox != null) { textBox.Text = text; success = true; } }; grid.CellEditEnding += hanlder; EmulateChangeCurrentCell(grid, itemIndex, col); grid.BeginEdit(); grid.CommitEdit(DataGridEditingUnit.Row, true); grid.CellEditEnding -= hanlder; if (!success) { throw new NotSupportedException (ResourcesLocal4.Instance.DataGridErrorNotTextBoxCell); } } WPFのDataGridのテキスト変更処理 //これをインジェクションして実行させる。
24.
static void EmulateChangeCellText(DataGrid
grid, int itemIndex, int col, string text) { bool success = false; EventHandler<DataGridCellEditEndingEventArgs> hanlder = (s, e) => { TextBox textBox = e.EditingElement as TextBox; if (textBox != null) { textBox.Text = text; success = true; } }; grid.CellEditEnding += hanlder; EmulateChangeCurrentCell(grid, itemIndex, col); grid.BeginEdit(); grid.CommitEdit(DataGridEditingUnit.Row, true); grid.CellEditEnding -= hanlder; if (!success) { throw new NotSupportedException (ResourcesLocal4.Instance.DataGridErrorNotTextBoxCell); } } WPFのDataGridのテキスト変更処理 //これをインジェクションして実行させる。
25.
//実装しておきました!これ使ってください。 WPFDataGrid grid(core); grid.EmulateChangeCellText(0, 1,
“NewText”); WPFのDataGridのテキスト変更処理
26.
結局、GUI操作は、みんな使います。 多くの方、コミュニティーの協力により、 以下そろっておりますのでご利用ください。 ・ネイティブ用 ・WinForm用 ・WPF用 ・VSHTC.Friendly.PinInterface(特殊) http://www.codeer.co.jp/AutoTest/api-reference 全部無料!
27.
ちなみに、 GUI操作は、似たようなライブラリがありますが、 Friendly系のライブラリの特徴は・・・ ・シンプル。 ・タイミング依存なし。 ・高速。 ・足りなければ、中身を使って簡単に拡張可能。
28.
お知らせ
29.
Windowsアプリテスト自動化を希望している企業様がありま したら、株式会社Codeerがお手伝いします。 【メリット】 テスト自動化は立ち上げにコストがかかりますが、 無料ライブラリのFriendlyを使うことと、 テスト自動化経験豊富な担当者のノウハウを使うことにより、 無駄を省いた導入が可能となります。
30.
ご清聴ありがとうございました。
Editor's Notes
高速にWindowsアプリが動作している様子。見た目が派手なもの。ダイアログが出たり消えたりとか、画面遷移とか。グリッドとか。30秒ぐらいのもの。
インターフェイスで困ってるでしょ?思い通りに動かせないでしょ?作者は困った。っていう共感を得たい。(このスライドの時点では、カスタマイズしたインターフェイスの公開とかは普通思わない)
PrivateでもOK
通常はできないよー。凄いことなんだよアピール。
説明なし。長いってことだけ見せてさらっと。
結局中身はFriendlyのオブジェクトなので、簡単に拡張できる。
Download now