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.

Windowsアプリテスト自動化 [Friendly+delphi]

858 views

Published on

Delphiアプリのテストを自動化するライブラリの話です。

Published in: Software
  • Be the first to comment

Windowsアプリテスト自動化 [Friendly+delphi]

  1. 1. Friendly+Delphi Windowsアプリテスト自動化
  2. 2. 石川達也 Microsoft MVP for C# 株式会社Codeer代表取締役 C, C++, C#, Java, Delphi(1W) 自己紹介
  3. 3. Friendly とは?
  4. 4. Windowsアプリのテストを 自動化するためのライブラリです。 目的 どちらかというと、システムテスト
  5. 5. ①内部メソッドの呼び出し .Net Field、Property、Method Native DLL公開関数 ②DLLインジェクション 基本機能 Only One!
  6. 6. 基本 内部メソッド操作、DLLインジェクション Win32 (TXXにも使える) WinForms WPF GUI操作も簡単かつ確実にできる上位ライブラリも
  7. 7. Codeer で検索 eが一個多い Nugetで無料で入手できます!
  8. 8. デモやります。
  9. 9. うちDelphiなんだけど?
  10. 10. 話を聞くと、結構あります。 Windows系のDelphiアプリは、 歴史あるアプリが多いようです。 しかも、今もバージョンアップし続 けています。 それらにこそ、自動化された 回帰検査が必要! デグレ厳禁!
  11. 11. ・内部メソッドの呼び出し .Net Field、Property、Method Native DLL公開関数 ・DLLインジェクション Delphiアプリに使える機能 結構、いける!
  12. 12. でも・・・
  13. 13. Delphiの内部メソッドも呼び出せるかも? それができたら、超便利!
  14. 14. Type Target = class; public class function Instance : Target; static; function Func(value : string ) : Int32; end; //ここは普通 var app = new WindowsAppFriend(process); //拡張メソッドで実現。 //staticなメソッド呼び出し。 dynamic obj = app.Delphi("Target").Instance(); //インスタンスのメソッド呼び出し。 Int ret = obj.Func(“123”);
  15. 15. DLLインジェクション FriendlyDelphi.dll
  16. 16. function InvokeStatic(pInvokeInfo : InvokeInfo) : ReturnInfo ; stdcall ; begin //リフレクションを使って、指定のstaticメソッドを実行! end function InvokeInstance(obj : TObject, pInvokeInfo : InvokeInfo) : ReturnInfo ; stdcall ; begin //リフレクションを使って、対象のオブジェクトのメソッドを実行! end FriendlyDelphi.dll
  17. 17. DLL公開関数呼び出し FriendlyDelphi.dll 実行関数名、引数を渡す dynamic obj = app.Delphi("Target").Instance(); Int ret = obj.Func(“123”);
  18. 18. 内部でリフレクション実行! FriendlyDelphi.dll
  19. 19. 一緒に作ってくれる人募集中!
  20. 20. 実は、Friendlyを使ったライブラリは いくつか作ってもらっています! ・Codeer.Friendly. Windows.NativeStandardControls ・Ong.Friendly.FormsStandardControls ・RM.Friendly.WPFStandardControls ・VSHTC.Frienldy.PinInterface
  21. 21. join us ! ご清聴ありがとうございました。 よろしくお願いします。

×