読者です 読者をやめる 読者になる 読者になる

ささいなことですが。

Windowsアプリテスト自動化ライブラリFriendly開発者の日記です。

Friendlyハンズオンを東京で開催しました!

9/19(土)にFrienlyハンズオンを東京で開催しました。madoguchi100.connpass.comシルバーウィーク初日にも拘わらず、大勢の方のご参加ありがとうございました! 会場提供はSHIFT様。 ありがとうございました! オシャレですねー。東京タワー見えてるし。 な…

Friendly、ラムダ送れるってよ

いや、ちょっとタイトルは正確さに欠けますが、ご容赦を。今日は、驚きの発見がありました。 FriendlyユーザーのITO(仮名)さんと話しているとITO「こんな感じでテスト書いたらいいと思うんですよね。」 石「でもこのコード、ラムダ使ってますよ。プロセス…

Friedlyハンズオン開催 - 東京9/19(土) - 大阪9/24(木)

Friendlyのハンズオンを開催します。 しかも、東京と大阪両方で!東京会場はSHIFT様(9/19)「じどうかの窓口。」特別編 Windowsアプリテスト自動化勉強会-Friendlyハンズオン (2015/09/19 13:00〜)madoguchi100.connpass.com大阪会場はベリサーブ様(9/24)…

VisualStudio2015を外部から操作する

前回からの流れですね。 インプロセスで動くCOMを使っているアプリであれば、Friendlyを使ってまるでアウトプロセスCOMのように簡単に外から操作できるという話でした。で、VisualStudioには外部仕様として公開されているCOMがあるのです。あ、この内容はめ…

Friendly.PinInterface.1.3.1をリリースしました。

Friendly.PinInterface.1.2.01.3.1*1をリリースしました。 内容は、対象のオブジェクトがSystem.__ComObjectだった場合の対応です。 前回の話はこの前振りでした。 Friendly.PinInterfaceって何? Friendlyの操作に型を与え、実装時にインテリセンスが使える…

OperationTypeInfoとSystem.__ComObject

Friendlyのマニアックな機能にOperationTypeInfoというものがあります。 僕以外に知っている人は、世界に10人いないでしょうねw OperationTypeInfo - 株式会社Codeer (コーディア)例えば、こんなクラスを操作するとして、 class Parent { int data; } class …

Infragistics社、GrapeCity社のコントロール操作ライブラリの作成を始めました。

Friendlyの便利なところは、通常のAPIをRPCでプロセス越しに呼び出せること、DLLインジェクションでテスト時だけ対象プロセスにコードを注入できることです。 この機能を使えば、サードパーティー製のコントロールも簡単に操作できます。 と言うわけで、Infa…

Friendly.WPFStandardControls.1.4.0を公開しました。

NuGet Gallery | Friendly.WPFStandardControls 1.6.0 今回は機能追加です。 ボタン検索 前回のバージョンアップでは、DependencyObjectに対して、バインディングとタイプで検索する機能を追加しました。 Friendly.WPFStandardControls.1.3.0をリリースしま…

Friendly.WPFStandardControls.1.3.0をリリースしました。

WPF系の機能追加です。 x:Name以外でのコントロールの特定 x:Nameを付けるのは、なんら恥じることはありません。テスタビリティーを向上させるという大義名分があります。付けても使わないようにしたらいいだけです。だいたい、x:Name付けなくてもコードビハ…

Friendly.Windows.2.6.0をリリースしました。

タイトルの通りです。 それに伴ってFriendly.Windowsを参照しているdllも更新しています。 Friendly.Windows.Grasp.2.5.1 Friendly.Windows.NativeStandardControls.2.2.3 Friendly.FormsStandardControls.2.3.2 Friendly.WPFStandardControls.1.1.5内容は不…

Friendly ハンズオン 14-2 テストシナリオ実装

今回はテストシナリオ実装やってみます。(やっと これを元に作っていきます。 Ishikawa-Tatsuya/HandsOn14-2 · GitHubテストシナリオはテストチームの方が書くことを前提としています。若干のプログラム知識とトレーニングで書ける(はず)です。 追加画面の…

Friendly ハンズオン 14 -準備- テストシナリオ共通部分抽出

お久しぶりです・・・ だいぶ空いてしまいました。 ブログって一回書かなくなるとダメですね。 気を取り直してテストシナリオの共通部分の抽出行きましょう。 あれ?シナリオ書くって言ってなかった? はい。 Friendly ハンズオン 13 アプリケーションドライ…

Friendly2.5.0とFriendly.Windows2.5.1をリリースしました。

久しぶりのリリースです。 NuGet Gallery | Packages matching codeerまあ、表題のもの以外も参照バージョンが変わるので全部更新しているのですがw ちょっと解説します。 解説用のコードはこちらからダウンロードできます。何ができるようになったかと言う…

Friendly ハンズオン 13 アプリケーションドライバ -その5-

前回の続きです。 あと、ひと手間かけてやりましょう。それは対象プロセスのデバッグです。 デグレ検出→調査したい 自動検査でデグレを検出しました!作った甲斐がありましたね! では調査しましょう。もちろん対象プロセスはデバッガから起動したもので調査…

Friendly ハンズオン 13 アプリケーションドライバ -その4-

前回の続きです。 今回は対象アプリのライフサイクルの管理に関してやります。 あれ?でも今までも起動と終了を管理してましたよね。 それだけではダメなんでしょうか?もちろん、今までのでもOKです。 一つのテストごとにexeを起動しなおすと、前回のテスト…

Friendly ハンズオン 13 アプリケーションドライバ -その3-

前回までで、通常操作に関しての実装は完了して、思い通りにアプリを操作できるところまで行きました。 で、今回はテスト自動化で困りがちな点の対応を考えていきます。これもアプリケーションドライバ層で吸収すれば良いと思います。ここから先はAppDriver…

Friendly ハンズオン 13 アプリケーションドライバ -その2-

前回の続きです。読んでない方は、そちらを先に読んでください。 前回作ったアプリケーションドライバでは「内部仕様」と「操作技術」の隠蔽度が不十分ってことでしたね。 では改善してみます。 内部仕様の隠蔽 _app.MainForm.ListBoxEmployee.Dynamic().Ite…

Friendly ハンズオン 13 アプリケーションドライバ -その1-

今回はアプリケーションドライバの話です。 Frienldyは内部APIを使って効率的に自動化を実現するためのライブラリです。でも、内部APIは文字通り内部仕様にあたるので、テストシナリオにそのまま出てきては、テストのメンテ、作成効率が落ちます。外部仕様が…

Friendly ハンズオン 12 TestAssistant(キャプチャリプレイもできますw)

今回はTestAssistantというツールを使ってみます。 タイトルは若干釣りです。 キャプチャリプレイ好きな人もいるのでw TestAssistantとは Friendlyとその上位ライブラリを使ったテストの作成の効率を上げるためのツールです。 何ができるの? 意外と多機能な…

Friendly ハンズオン 11 WPF用上位ライブラリ

今回はWPFのGUIコントロールの操作です。 これは、めとべやさんと協力して作っています。ソースコードはこちらです。 Roommetro/Friendly.WPFStandardControls · GitHub現在以下のものに対応しています。 WPF用は近いうちに機能追加していこうと思っています…

Friendly ハンズオン 10 .Netアプリで出てくるネイティブウィンドウ対応

前回はWin32用の上位ライブラリのNativeStandardControlsを使う練習でした。 今回は、さらに実践的に.Netで出てくるWin32のWindowに対応してみます。 先にネタをバラしておきます。 操作方法は書きますが、最終的にはメッセージボックス以外は操作しない方が…

Friendlyハンズオン9 Win32用上位ライブラリ

今回はWin32の話です。 プロダクトによっては、過去の資産を持っていて、一部ネイティブで作っているものもありますよね。 そうでなくて完全な.Netのアプリでも、実はネイティブの画面は出てくるのです。 と言うことで、ネイティブの画面も操作できるように…

Friendly ハンズオン8 Friendly.Windows.Grasp - .Netアプリ操作でよく使う機能 -

前回でFriendly.Window.Graspがどのようなものか概略を説明しました。 まだちょっとボヤっとしてますよねw? ここでは、実際に使ってみてもう少し理解を深めてもらおうと思います。 ハンズオンの練習用プロジェクト 練習用のプロジェクトはこちらからダウン…

Friendly.Windows.Graspとは

Friendly.Windows.Graspに関してです。 ハンズオンをやろうかなーと思ったのですが、ちょっと特殊なライブラリなので、先に少し解説します。まあここは「なんとなく分かった」ぐらいでいいかなーと。次回のハンズオンで手を動かすと問題なく理解できるはずで…

Friendly ハンズオン7 WinForms用上位ライブラリ

久しぶりのハンズオンです。 今回はWinForms用のラッパーライブラリであるFriendly.FormsStandasrdControlsに関して練習してみます。 Friendly.FormsStandasrdControlsはONIGIRI-SOFT(Windows&iPhoneアプリ開発)さんと協力して作りました。 対応表 System.Wi…

世界が驚いた!Friendlyマジック - 種明かし編

これは「Friendly Advent Calendar 2014 - Qiita」の記事です。 昨日は森理麟さんの自動化の話をしようじゃないか - 森理 麟(moririring)のプログラマブログでした。今日は最終日ですねー。 なので、お楽しみ的なことをやってみようかなーと。世界が驚いたVi…

Frienldy いまさら概要と学習計画

これは「Friendly Advent Calendar 2014 - Qiita」の記事です。いまさらですが、概要と学習計画を書こうかなーと思いました。 きっかけは、@fuku518さんのエントリーですね。 Codeer Friendlyなら何でもできる! - C#でプログラミングあれこれ あと、そろそ…

Friendly GUI操作用上位ライブラリの必要性と思想

これは「Friendly Advent Calendar 2014 - Qiita」の記事です。昨日は、GUI操作は生でやるとひどい目に遭うってとこまでやりました。理由は インテリセンスが効かない そもそも、操作が複雑なものもある 特にネイティブは・・・ 通常時にプログラムで使って…

Friendly ハンズオン6 GUI操作・・・あれ?

これは「Friendly Advent Calendar 2014 - Qiita」の記事です。はい、今日からはいよいよ、GUIを操作していきましょう。 なのですが・・・ 明日の分も絶対読んでね! 途中で「そっとじ」されると困るので、先に書いておきますが、多分ひきますw。 まあ今日は…

STAC2014で登壇してきました。

これは「Friendly Advent Calendar 2014 - Qiita」の記事です。 昨日は、ONIGIRI-SOFTさんの UIの不具合要因が簡単に見つけられます! :: おにぎりブログ|yaplog!(ヤプログ!)byGMO でした。 システムテスト自動化カンファレンス2014 実は一昨日は「シス…

Friendly - Windowsアプリのシステムテスト自動化

はじめに これはソフトウェアテストあどべんとかれんだー2014 - connpassの12/12の記事です。 12/9は@PoohSunnyさんのtesting - 地味だけどGebをgroovyにしている5Tips #SWTestAdvent - Qiitaでした。Friendlyの紹介記事です。 自分のライブラリの宣伝ですみ…

Friendlyハンズオン 5.DLLインジェクション

これは「Friendly Advent Calendar 2014 - Qiita」の記事です。引き続き、詳細なドキュメントは公式ページも参照しながらでお願いします。 テスト自動化 Friendly - 株式会社Codeer (コーディア)はい、昨日までで、内部API呼び出しは全部やったと思います。…

Friendlyハンズオン 4.操作対象プロセスに内部APIを実行させる - 続き

これは「Friendly Advent Calendar 2014 - Qiita」の記事です。引き続き、詳細なドキュメントは公式ページも参照しながらでお願いします。 テスト自動化 Friendly - 株式会社Codeer (コーディア) それから、以前に書いたこの記事も参考になります。 Friendly…

Friendlyハンズオン 3.操作対象プロセスに内部APIを実行させる

これは「Friendly Advent Calendar 2014 - Qiita」の記事です。引き続き、詳細なドキュメントは公式ページも参照しながらでお願いします。 テスト自動化 Friendly - 株式会社Codeer (コーディア) それから、以前に書いたこの記事も参考になります。 Friendly…

Friendlyハンズオン 2.アタッチ

これは「Friendly Advent Calendar 2014 - Qiita」の記事です。昨日は操作対象プロセスをテストフレームワークから起動して終了するところまでやりました。 今日はアタッチするところまで行ってみようと思います。 引き続き、詳細なドキュメントは公式ページ…

Friendlyハンズオン 1.用意

これは「Friendly Advent Calendar 2014 - Qiita」の記事です。今日からは連載形式でハンズオンやってみようかなーって思います。 詳細なドキュメントは公式ページも参照しながらでお願いします。 テスト自動化 Friendly - 株式会社Codeer (コーディア) 今日…

Friendly 操作対象プロセス内のインスタンス

これは「Friendly Advent Calendar 2014 - Qiita」の記事です。今日は操作対象プロセス内のインスタンスについて考えます。 当たり前ですけど、普通はそんなものを直接操作するなんてできません。 しかし! それができるのが魔法のライブラリFriendlyなので…

Friendly なんで別プロセス操作できるの?

これは「Friendly Advent Calendar 2014 - Qiita」の記事です。Frienldyが対象プロセスを操作するときのスレッドの処理に関して説明しました。今日は、そもそも何で別プロセス操作できるの?って話をします。 内部的なこともちょっと知っておくと、理解が深…

Friendlyの処理実行~プロセス、スレッド、同期、非同期~ その2

これは「Friendly Advent Calendar 2014 - Qiita」の記事です。昨日は、テストでは同期処理で安定した操作をすることが重要なんだ! でも・・・ ってとこまで書きました。 非同期の必要性 → モーダルダイアログのみ はい、Friendlyの操作は基本同期で実行さ…

Friendlyの処理実行~プロセス、スレッド、同期、非同期~ その1

これは「Friendly Advent Calendar 2014 - Qiita」の記事です。 昨日は、Frienldyの誕生まで話ましたー。Friendlyはこんな感じで簡単に、別プロセスのAPIを実行させることができます。 使えるのは .Netならフィールド、プロパティー、メソッド。 public、pro…

Friendly誕生!

これは「Friendly Advent Calendar 2014 - Qiita」の記事です。昨日は、「俺々フレームワーク作って結構役に立ったけど、問題もあるよなー」ってとこまで書きました。 メリットと問題 色々書きましたが、俺々フレームワークのメリットって何に起因していたか…

Friendlyを作った理由 その2

これは「Friendly Advent Calendar 2014」の記事です。 昨日の続きです。 デグレの恐怖を克服したい!ってとこまで書きましたね。 キャプチャリプレイ そして、若き日の僕は、システムテストを自動化し始めました。やっぱり、最初はキャプチャリプレイもやり…

Friendlyを作った理由 その1

これは「Friendly Advent Calendar 2014」の記事です。 なぜFriendlyを作ったかを書きます。 実は私はWindowsアプリ自動化歴長いんです。9年くらいはやっているかなー。 と言っても、そればっかりやってるわけではなくて、普通にWindowsアプリ作る仕事をして…