SlideShare a Scribd company logo
Friendlyを使った
Windowsアプリテスト自動化
ところで、
Windowsアプリ開発者の皆さん
Windowsアプリ開発者の皆さん
テスト自動化してますか?
やってません!
大きくは二種類に分かれる
部品をテスト
アプリをテスト
部品をテスト
いわゆる単体テスト、コンポーネントテスト。
クラス、メソッド、コンポーネントなど
プログラムの一部を切り出してテストを実施する。
テスタビリティーが高い設計でないと、実施不可能。
ウチのレガシーコードに
単体テスト付けれるもんなら、
付けてみろ!
部品をテスト
対応策 → TDDBCへGO!
コード品質の改善への近道。
でも、レガシーコードにテスト付けるのは限界があるけどね・・・。
難しい話なので、今日はパス。
今日はこっちの話
部品をテスト
アプリをテスト
アプリをテスト
統合テスト、システムテスト、受け入れテスト等。
おなじみの普通にアプリ起動して、テスト項目をこなすテスト。
外部仕様を元に作れる。
これを自動化するということは、手動テストの置き換えにつながる!
繰り返し実施できるので、デグレ防止にピッタリ。
アプリをテスト
じゃあ、なんでやらないの?
・どうやっていいかわからない。
・ツール高そうだしね。
・キャプチャリプレイツールって良い噂きかないし・・・。
・一回やったけど、作成、メンテコストかかりすぎ。
と、とにかく、難しいんだよ!
なんで難しいの?
作成が難しい
このタイプのテスト自動化は
・他プロセスを操作する
・プログラム
の作成である。
作成が難しい
プロダクトプロセス テストプロセス
この二つは別プロセス、
つまり別スレッドで動作する。
つまり、マルチスレッドプログラム。
これを忘れてはならない!
ここに、不安定さを生じさせる隙がある!
命令
終わったかな?次の命令
あっと、まだやった。
タイミング依存で失敗。
作成が難しい
同期制御が難しい。
あ、不安定さは
容認しちゃダメ
よ。
作成が難しい
インターフェイスが限られている
マウス、キーは、
プログラムから操作するには相性が悪い。
タイミング依存はどうしても避けられない。
UIオートメーション
WindowsApi
選択肢として十分あり。
ただ、ちょっと難しい。
操作できないコントロールもある。
作成が難しい
ユニットテストの場合のテスト対象は、プログラム。
あくまで上位のプログラムから使わるために存在する。
そのため、テスト自動化と相性が良い。
そもそも、GUIアプリって、基本は人が使うもの。
プログラムから操作するには相性が悪い。
対応・・・
作成が難しい
Friendlyを使う
http://www.codeer.co.jp/
作成は難しい。
Friendlyは
「アプリをテスト」する
テストプログラム実装用のライブラリで
す。
テストはVisualStudioで作成でき、
MSTestやNunitで実行できます。
無料です。
でも、なめたらダメです。
一部上場企業様でも、既に導入されていま
す。
まるで、
自分のプロセスのプログラムを操作するように
簡単に実装できます。
しかも、
操作方法は皆さん既に知っているのです。
他プロセス操作の簡易化
実際に使ってみよう!
以下のページに書かれている内容をデモしました。
http://www.codeer.co.jp/AutoTest/friendly-basic-dynamic
・プロセス間の同期制御
・操作用インターフェイス
大量の既知のインターフェイス。
内部メモリも取得可能。
しかも拡張可能。
さっきの問題は全て解決!
もっと贅沢言っていい?
膨大なインターフェイスが使えるようになったのは分かった。
でも、多すぎて、どれ使っていいか分かんないのよね。
インテリセンス効かないしさ。
なんとかなんない?
分かりました!
やっぱり、
操作するメインはGUIコントロールですよ
ね。
なので、
よく使うコントロールに対する操作は、
Friendlyの基本機能を使って、
実装しておきました!
インストーラとインストールされる機能
Codeer.Friendly
Codeer.Friendly.dll
Codeer.Friendly.Windows.dll
Codeer.Friendly.Windows.Grasp.dll
Codeer.Friendly.Dynamic
Codeer.Friendly.Dynamic.dll
Codeer.Friendly.Windows.NativeStandardControls.dll
Codeer.Friendly.Windows.NativeStandardControls.dll
Ong.Friendly.FormsStandardControls
Ong.Friendly.FormsStandardControls.dll
TestAssistant
ツール関連
Friendlyの機能を使って実装されてたGUI操作に特化したライブラリ
Codeer.Friendly.Windows.Grasp.dll
Codeer.Friendly.Windows.NativeStandardControls.dll
Ong.Friendly.FormsStandardControls.dll
Windowの取得。
ネイティブウィンドウラッパー
.Netのフォームアプリコントロールラッパ
Friendlyの機能を使って実装されてたGUI操作に特化したライブラリ
Codeer.Friendly.Windows.Grasp.dll
WindowControl → Windowの取得と汎用操作。
Codeer.Friendly.Windows.NativeStandardControls.dll
NativeXXX (NativeButton, NativeEdit, etc)
→ネイティブの基本的なコントロールの操作クラス群
Ong.Friendly.FormsStandardControls.dll
FormsXXX (FormsButton, FormsTextBpx, etc)
→System.Windows.Formsに定義されている
基本的なクラスの操作クラス群
実際に使ってみよう!
以下からダウンロードできるサンプルの
TestProject/Test1.csをデモしました。
http://www.codeer.co.jp/AutoTest/test-refactoring-sample
オマケ!
テスト作成補助ツール
・画面解析
・クラス解析
・変数動的参照
・メッセージ参照
・GUI操作によるコード生成
・C#コード簡易実行
実際に使ってみよう!
http://www.codeer.co.jp/AutoTest/testassistant-codegenerate
「操作からのコード生成」機能に関してデモしました。
以下のページに使い方が載っています。
実践編
アプリの操作方法はできるようになったものの・・・。
まだ、問題は残っている。
・テストシナリオも可読性を保つ必要がある。
・プロダクトプロセスの変更に追従する必要がある。
・プログラムなのでメンテが必要
保守が難しい
可読性、メンテナンス性を上げる必要がある!
でなければ、
費用対効果が悪くて、作った意味がない!
保守が難しい
そのためには、アプリ操作に特化した設計が必要!
保守が難しい
アプリケーションドライバ
←参照元。
保守が難しい
アプリケーションドライバ
プロダクトプロセ
ス テストシナリオ
ア
プ
リ
ケ
ー
シ
ョ
ン
ド
ラ
イ
バ
アプリケーションドライバはプロダクトプロセスを
操作するためのインターフェイスを提供する。
アプリケーションドライバ
先ほど作ったコードの中には、
内部仕様に基づく情報がテストシナリオの中に存在する。
これは、メンテ性が非常に悪い。
例えば、この画面を使うテストシナリオが複数あると、
コントロール取得コードが散らばってしまう。
そもそも、内部仕様なので、開発者でなければわからない。
それに、開発側が勝手に変えてしまう場合がある。
なんで必要?
アプリケーションドライバ
・内部仕様に関する情報の隠蔽。
・外部仕様を元に理解でき、
簡単に使えるインターフェイスの提
供。
+テスト用の仕様としてFix。
目的
外部仕様を元に理解できるインターフェイスってなに?
アプリケーションドライバ
・GUIマップ
・ドメインの言葉にしたメソッド、プロパティー
・ショートカット
以降の内容は、次からダウンロードできるサンプルの
TestProject/Test1.cs、Test2.csで参照できます。
http://www.codeer.co.jp/AutoTest/test-refactoring-sample
アプリケーションドライバ
GUIマップ
public class EntryForm
{
public WindowControl Form { get; private set; }
public FormsTextBox TextBoxName { get; private set; }
public FormsNumericUpDown NumericUpDownAge { get; private set; }
public FormsComboBox ComboBoxSkill { get; private set; }
public FormsButton ButtonOK { get; private set; }
public EntryForm(WindowControl entryForm)
{
//内部仕様の情報を使ってマッピング ここで隠蔽され、テストシナリオには表れない。
Form = entryForm;
dynamic entryFormCore = entryForm.AppVar.Dynamic();
TextBoxName = new FormsTextBox(entryForm.App, entryFormCore._textBoxName);
NumericUpDownAge = new FormsNumericUpDown
(entryForm.App, entryFormCore._numericUpDownAge);
ComboBoxSkill = new FormsComboBox
(entryForm.App, entryFormCore._comboBoxSkill);
ButtonOK = new FormsButton(entryForm.App, entryFormCore._buttonOK);
}
}
GUIを外部仕様としてとらえる。
GUIを特定する変数名称は内部仕様なので、ここで隠蔽する。
これを公開
注)継続的デリバーを素直に読むと、ウィンドウの種類を外に出すべきではないとも読み取れます。
しかし、GUIの種別も外部仕様と考えることができるので、私は、プロジェクトによっては、
これも許容範囲と考えています。
アプリケーションドライバ
ドメインの言葉にしたメソッド、プロパティー
public class Main
{
MainForm _form;
public Main(WindowControl form)
{
//マッピング処理等・・・
}
public void Entry(string name, int age, EmployeeManagement.Skill skill)
{
//ボタンクリック
Async asyncEntry = new Async();
_form.ButtonEntry.EmulateClick(asyncEntry);
//次の画面処理
EntryForm entryForm = new EntryForm(_form.Form.WaitForNextModal());
entryForm.TextBoxName.EmulateChangeText(name);
entryForm.NumericUpDownAge.EmulateChangeValue(age);
entryForm.ComboBoxSkill.EmulateChangeSelect((int)skill);
entryForm.ButtonOK.EmulateClick();
}
}
GUI情報隠蔽
公開
GUI操作ではなく、
登録というフィーチャをテストしたい。
メリット
・シナリオはさらにシンプルに。
・GUIが変わっても、メンテはここだ
け。
デメリット
・GUIの詳細のテストとは合わない。
アプリケーションドライバ
ショートカット
目的の状態(画面)まで移動する。
目的の画面の操作は詳細に書きたいとして、
そこにたどり着くまでの画面の操作は、その関心の対象外。
そのため、できたら関数一発で、そこにたどり着きたい。
public Main GetMain()
{
//…特定の状態へ遷移する処理
}
注)継続的デリバーには、このようなアドバイスはありません。
私の経験から有効な方法なので、ここでまとめて紹介しています。
テストシナリオ
ア
プ
リ
ケ
ー
シ
ョ
ン
ド
ラ
イ
バ
アプリを簡単に操作する
手段を提供するよ。
私の仕事はアプリ操作。
内部仕様も知ってるよ。
でも、それは秘密だけどね。
ていうか、アプリのことは気にしない
で。
私のことをアプリだと思って話して。
外部仕様に沿って、
テストシナリオを簡潔に記述するよ。
私の仕事は品質保証。
難しい内部仕様なんて知りたくもないし。
アプリケーションドライバ
あれ?
アプリケーションドライバ
ア
プ
リ
ケ
ー
シ
ョ
ン
ド
ラ
イ
バ
てことは、アプリケーションドライバって
開発者が作ればいいんじゃない?
内部仕様知ってるし。
アプリケーションドライバが使っている内部仕様は
規約として守りやすいしね。
アプリケーションドライバ
テストシナリオ
てことは、テストシナリオは
検証チームが書いたらいいじゃないかな?
外部仕様だけで、使えるインターフェイスを
提供してくれるんでしょ?
アプリケーションドライバ
そういう仕事分担もありです。
アプリケーションドライバ
まあ、しかし検証チームの本業は検証だし、トラブルが発生したら
開発側がサポートしたり、プログラムの分からないところを教えた
り、
それは当然必要。
チームとして自動化を成功させるという認識が重要。
アプリケーションドライバ
明日からでも導入しよう!
Friendlyとテスト自動化!
ご清聴ありがとうご
ざいました。

More Related Content

What's hot

Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステムAndroid向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
KLab Inc. / Tech
 
Unityは神,Unrealは現実
Unityは神,Unrealは現実Unityは神,Unrealは現実
Unityは神,Unrealは現実
Linea319
 
Riderはいいぞ!
Riderはいいぞ!Riderはいいぞ!
Riderはいいぞ!
UnityTechnologiesJapan002
 
新人研修資料 向き合うエンジニア
新人研修資料 向き合うエンジニア新人研修資料 向き合うエンジニア
新人研修資料 向き合うエンジニア
akira6592
 
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
Unity Technologies Japan K.K.
 
Appium を使って iOS / Android の UI テストを共通化
Appium を使って iOS / Android の UI テストを共通化Appium を使って iOS / Android の UI テストを共通化
Appium を使って iOS / Android の UI テストを共通化
健一 辰濱
 
【Unite Tokyo 2019】ゼロから始めるアラビア語レンダリング
【Unite Tokyo 2019】ゼロから始めるアラビア語レンダリング【Unite Tokyo 2019】ゼロから始めるアラビア語レンダリング
【Unite Tokyo 2019】ゼロから始めるアラビア語レンダリング
UnityTechnologiesJapan002
 
かずきのUWP入門
かずきのUWP入門かずきのUWP入門
かずきのUWP入門
一希 大田
 
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはがんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
Jun-ichi Sakamoto
 
楽しいゲーム開発管理
楽しいゲーム開発管理楽しいゲーム開発管理
楽しいゲーム開発管理
Maki Koiwa
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
 
テスト分析入門 -「ゆもつよメソッド」を例に- #wacate
テスト分析入門 -「ゆもつよメソッド」を例に- #wacateテスト分析入門 -「ゆもつよメソッド」を例に- #wacate
テスト分析入門 -「ゆもつよメソッド」を例に- #wacateKinji Akemine
 
事例からわかる!テスト自動化導入パターン
事例からわかる!テスト自動化導入パターン事例からわかる!テスト自動化導入パターン
事例からわかる!テスト自動化導入パターン
友隆 浅黄
 
Web開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor AppWeb開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor App
TomomitsuKusaba
 
Android カスタムROMの作り方
Android カスタムROMの作り方Android カスタムROMの作り方
Android カスタムROMの作り方
Masahiro Hidaka
 
AppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころAppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころ
Masayuki Wakizaka
 
Web automation using selenium.ppt
Web automation using selenium.pptWeb automation using selenium.ppt
Web automation using selenium.ppt
Ana Sarbescu
 
ソースコードレビューのススメ
ソースコードレビューのススメソースコードレビューのススメ
ソースコードレビューのススメ
KLab Inc. / Tech
 
探索的テスト入門
探索的テスト入門探索的テスト入門
探索的テスト入門H Iseri
 
第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ
hakoika-itwg
 

What's hot (20)

Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステムAndroid向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
 
Unityは神,Unrealは現実
Unityは神,Unrealは現実Unityは神,Unrealは現実
Unityは神,Unrealは現実
 
Riderはいいぞ!
Riderはいいぞ!Riderはいいぞ!
Riderはいいぞ!
 
新人研修資料 向き合うエンジニア
新人研修資料 向き合うエンジニア新人研修資料 向き合うエンジニア
新人研修資料 向き合うエンジニア
 
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
 
Appium を使って iOS / Android の UI テストを共通化
Appium を使って iOS / Android の UI テストを共通化Appium を使って iOS / Android の UI テストを共通化
Appium を使って iOS / Android の UI テストを共通化
 
【Unite Tokyo 2019】ゼロから始めるアラビア語レンダリング
【Unite Tokyo 2019】ゼロから始めるアラビア語レンダリング【Unite Tokyo 2019】ゼロから始めるアラビア語レンダリング
【Unite Tokyo 2019】ゼロから始めるアラビア語レンダリング
 
かずきのUWP入門
かずきのUWP入門かずきのUWP入門
かずきのUWP入門
 
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはがんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
 
楽しいゲーム開発管理
楽しいゲーム開発管理楽しいゲーム開発管理
楽しいゲーム開発管理
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
 
テスト分析入門 -「ゆもつよメソッド」を例に- #wacate
テスト分析入門 -「ゆもつよメソッド」を例に- #wacateテスト分析入門 -「ゆもつよメソッド」を例に- #wacate
テスト分析入門 -「ゆもつよメソッド」を例に- #wacate
 
事例からわかる!テスト自動化導入パターン
事例からわかる!テスト自動化導入パターン事例からわかる!テスト自動化導入パターン
事例からわかる!テスト自動化導入パターン
 
Web開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor AppWeb開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor App
 
Android カスタムROMの作り方
Android カスタムROMの作り方Android カスタムROMの作り方
Android カスタムROMの作り方
 
AppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころAppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころ
 
Web automation using selenium.ppt
Web automation using selenium.pptWeb automation using selenium.ppt
Web automation using selenium.ppt
 
ソースコードレビューのススメ
ソースコードレビューのススメソースコードレビューのススメ
ソースコードレビューのススメ
 
探索的テスト入門
探索的テスト入門探索的テスト入門
探索的テスト入門
 
第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ
 

Similar to Friendlyを使ったwindowsアプリテスト自動化

開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
慎一 古賀
 
テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門Satoshi Watanabe
 
テストを書こう!!
テストを書こう!!テストを書こう!!
テストを書こう!!
拓 小林
 
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
Tatsuya Ishikawa
 
はてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテストはてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテスト
Yu Nobuoka
 
ソフトウェアテスト入門
ソフトウェアテスト入門ソフトウェアテスト入門
ソフトウェアテスト入門
iKenji
 
アジャイル×テスト開発を考える
アジャイル×テスト開発を考えるアジャイル×テスト開発を考える
アジャイル×テスト開発を考えるyasuohosotani
 
コードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Androidコードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Android
Toshiyuki Hirata
 
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテストJUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
Shuji Watanabe
 
テストコードのリファクタリング
テストコードのリファクタリングテストコードのリファクタリング
テストコードのリファクタリング
Shuji Watanabe
 
はこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テストはこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テスト
Seiji KOMATSU
 
Test automation strategy for .net core 3 transition
Test automation strategy for .net core 3 transitionTest automation strategy for .net core 3 transition
Test automation strategy for .net core 3 transition
Tatsuya Ishikawa
 
単体テストをやってみた~既存サービスに単体テストを追加するチャレンジ~
単体テストをやってみた~既存サービスに単体テストを追加するチャレンジ~単体テストをやってみた~既存サービスに単体テストを追加するチャレンジ~
単体テストをやってみた~既存サービスに単体テストを追加するチャレンジ~
ceres-inc
 
自動テストの誤解とアンチパターン in 楽天 Tech Talk
自動テストの誤解とアンチパターン in 楽天 Tech Talk自動テストの誤解とアンチパターン in 楽天 Tech Talk
自動テストの誤解とアンチパターン in 楽天 Tech Talk
kyon mm
 
Web制作者視点で理解するソフトェアテスト
Web制作者視点で理解するソフトェアテストWeb制作者視点で理解するソフトェアテスト
Web制作者視点で理解するソフトェアテスト
祐磨 堀
 
テストの視点を活用した TDD アプローチの検討とその検証
テストの視点を活用した TDD アプローチの検討とその検証テストの視点を活用した TDD アプローチの検討とその検証
テストの視点を活用した TDD アプローチの検討とその検証
Akira Ikeda
 
自動テスト知識体系TABOKのご紹介
自動テスト知識体系TABOKのご紹介自動テスト知識体系TABOKのご紹介
自動テスト知識体系TABOKのご紹介
Shinsuke Matsuki
 
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
Toshiyuki Hirata
 
後期講座07
後期講座07後期講座07
後期講座07
Takenori Nakagawa
 
STFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テストSTFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テスト
Toshiyuki Hirata
 

Similar to Friendlyを使ったwindowsアプリテスト自動化 (20)

開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
 
テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門
 
テストを書こう!!
テストを書こう!!テストを書こう!!
テストを書こう!!
 
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
 
はてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテストはてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテスト
 
ソフトウェアテスト入門
ソフトウェアテスト入門ソフトウェアテスト入門
ソフトウェアテスト入門
 
アジャイル×テスト開発を考える
アジャイル×テスト開発を考えるアジャイル×テスト開発を考える
アジャイル×テスト開発を考える
 
コードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Androidコードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Android
 
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテストJUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
 
テストコードのリファクタリング
テストコードのリファクタリングテストコードのリファクタリング
テストコードのリファクタリング
 
はこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テストはこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テスト
 
Test automation strategy for .net core 3 transition
Test automation strategy for .net core 3 transitionTest automation strategy for .net core 3 transition
Test automation strategy for .net core 3 transition
 
単体テストをやってみた~既存サービスに単体テストを追加するチャレンジ~
単体テストをやってみた~既存サービスに単体テストを追加するチャレンジ~単体テストをやってみた~既存サービスに単体テストを追加するチャレンジ~
単体テストをやってみた~既存サービスに単体テストを追加するチャレンジ~
 
自動テストの誤解とアンチパターン in 楽天 Tech Talk
自動テストの誤解とアンチパターン in 楽天 Tech Talk自動テストの誤解とアンチパターン in 楽天 Tech Talk
自動テストの誤解とアンチパターン in 楽天 Tech Talk
 
Web制作者視点で理解するソフトェアテスト
Web制作者視点で理解するソフトェアテストWeb制作者視点で理解するソフトェアテスト
Web制作者視点で理解するソフトェアテスト
 
テストの視点を活用した TDD アプローチの検討とその検証
テストの視点を活用した TDD アプローチの検討とその検証テストの視点を活用した TDD アプローチの検討とその検証
テストの視点を活用した TDD アプローチの検討とその検証
 
自動テスト知識体系TABOKのご紹介
自動テスト知識体系TABOKのご紹介自動テスト知識体系TABOKのご紹介
自動テスト知識体系TABOKのご紹介
 
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
 
後期講座07
後期講座07後期講座07
後期講座07
 
STFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テストSTFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テスト
 

More from Tatsuya Ishikawa

burikaigi2024.pptx
burikaigi2024.pptxburikaigi2024.pptx
burikaigi2024.pptx
Tatsuya Ishikawa
 
【オンライン】.NET 6 移行祭り! C# Tokyo イベント
【オンライン】.NET 6 移行祭り! C# Tokyo イベント【オンライン】.NET 6 移行祭り! C# Tokyo イベント
【オンライン】.NET 6 移行祭り! C# Tokyo イベント
Tatsuya Ishikawa
 
burikaigi2023
burikaigi2023burikaigi2023
burikaigi2023
Tatsuya Ishikawa
 
Test to net core 3
Test to net core 3Test to net core 3
Test to net core 3
Tatsuya Ishikawa
 
Developer summit codeer
Developer summit codeerDeveloper summit codeer
Developer summit codeer
Tatsuya Ishikawa
 
Infragistics Web Day 2017 - 継続的な開発を支える テスト自動化技術
Infragistics Web Day 2017 - 継続的な開発を支える テスト自動化技術Infragistics Web Day 2017 - 継続的な開発を支える テスト自動化技術
Infragistics Web Day 2017 - 継続的な開発を支える テスト自動化技術
Tatsuya Ishikawa
 
Stack2017 自動化困難な状況での活動方法
Stack2017 自動化困難な状況での活動方法Stack2017 自動化困難な状況での活動方法
Stack2017 自動化困難な状況での活動方法
Tatsuya Ishikawa
 
メタな感じのプログラミング(プロ生 + わんくま 071118)
メタな感じのプログラミング(プロ生 + わんくま 071118)メタな感じのプログラミング(プロ生 + わんくま 071118)
メタな感じのプログラミング(プロ生 + わんくま 071118)
Tatsuya Ishikawa
 
Dot netconf2017 - VS拡張
Dot netconf2017 - VS拡張Dot netconf2017 - VS拡張
Dot netconf2017 - VS拡張
Tatsuya Ishikawa
 
.Netconf
.Netconf.Netconf
価値あるシステムテスト自動化の実現By friendly
価値あるシステムテスト自動化の実現By friendly価値あるシステムテスト自動化の実現By friendly
価値あるシステムテスト自動化の実現By friendlyTatsuya Ishikawa
 
Stac2014 石川
Stac2014 石川Stac2014 石川
Stac2014 石川
Tatsuya Ishikawa
 
Bindingからframework elementを見つける
Bindingからframework elementを見つけるBindingからframework elementを見つける
Bindingからframework elementを見つける
Tatsuya Ishikawa
 
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
Tatsuya Ishikawa
 
Windowsアプリテスト自動化 [Friendly+delphi]
Windowsアプリテスト自動化 [Friendly+delphi]Windowsアプリテスト自動化 [Friendly+delphi]
Windowsアプリテスト自動化 [Friendly+delphi]
Tatsuya Ishikawa
 
Ride on azure~アイデアソン編~
Ride on azure~アイデアソン編~Ride on azure~アイデアソン編~
Ride on azure~アイデアソン編~Tatsuya Ishikawa
 
私とC++ in 例外安全day
私とC++ in 例外安全day私とC++ in 例外安全day
私とC++ in 例外安全dayTatsuya Ishikawa
 
他言語との連携(ネイティブから動的言語まで)
他言語との連携(ネイティブから動的言語まで)他言語との連携(ネイティブから動的言語まで)
他言語との連携(ネイティブから動的言語まで)Tatsuya Ishikawa
 

More from Tatsuya Ishikawa (20)

burikaigi2024.pptx
burikaigi2024.pptxburikaigi2024.pptx
burikaigi2024.pptx
 
【オンライン】.NET 6 移行祭り! C# Tokyo イベント
【オンライン】.NET 6 移行祭り! C# Tokyo イベント【オンライン】.NET 6 移行祭り! C# Tokyo イベント
【オンライン】.NET 6 移行祭り! C# Tokyo イベント
 
burikaigi2023
burikaigi2023burikaigi2023
burikaigi2023
 
Test to net core 3
Test to net core 3Test to net core 3
Test to net core 3
 
Developer summit codeer
Developer summit codeerDeveloper summit codeer
Developer summit codeer
 
Infragistics Web Day 2017 - 継続的な開発を支える テスト自動化技術
Infragistics Web Day 2017 - 継続的な開発を支える テスト自動化技術Infragistics Web Day 2017 - 継続的な開発を支える テスト自動化技術
Infragistics Web Day 2017 - 継続的な開発を支える テスト自動化技術
 
Stack2017 自動化困難な状況での活動方法
Stack2017 自動化困難な状況での活動方法Stack2017 自動化困難な状況での活動方法
Stack2017 自動化困難な状況での活動方法
 
メタな感じのプログラミング(プロ生 + わんくま 071118)
メタな感じのプログラミング(プロ生 + わんくま 071118)メタな感じのプログラミング(プロ生 + わんくま 071118)
メタな感じのプログラミング(プロ生 + わんくま 071118)
 
Dot netconf2017 - VS拡張
Dot netconf2017 - VS拡張Dot netconf2017 - VS拡張
Dot netconf2017 - VS拡張
 
.Netconf
.Netconf.Netconf
.Netconf
 
価値あるシステムテスト自動化の実現By friendly
価値あるシステムテスト自動化の実現By friendly価値あるシステムテスト自動化の実現By friendly
価値あるシステムテスト自動化の実現By friendly
 
Stac2014 石川
Stac2014 石川Stac2014 石川
Stac2014 石川
 
Bindingからframework elementを見つける
Bindingからframework elementを見つけるBindingからframework elementを見つける
Bindingからframework elementを見つける
 
boost - std - C#
boost - std - C#boost - std - C#
boost - std - C#
 
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
 
Windowsアプリテスト自動化 [Friendly+delphi]
Windowsアプリテスト自動化 [Friendly+delphi]Windowsアプリテスト自動化 [Friendly+delphi]
Windowsアプリテスト自動化 [Friendly+delphi]
 
Ride on azure~アイデアソン編~
Ride on azure~アイデアソン編~Ride on azure~アイデアソン編~
Ride on azure~アイデアソン編~
 
私とC++ in 例外安全day
私とC++ in 例外安全day私とC++ in 例外安全day
私とC++ in 例外安全day
 
他言語との連携(ネイティブから動的言語まで)
他言語との連携(ネイティブから動的言語まで)他言語との連携(ネイティブから動的言語まで)
他言語との連携(ネイティブから動的言語まで)
 
XP祭り2013-LT-Codeer
XP祭り2013-LT-CodeerXP祭り2013-LT-Codeer
XP祭り2013-LT-Codeer
 

Friendlyを使ったwindowsアプリテスト自動化