「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-戻る
--[[テスト]] > [[テスト自動化]]
--[[その他、開発の色々]]
--[[Windows OSの基礎的トピック]]

* 目次 [#a6c1bacf]
#contents

*概要 [#pa9c83fa]
UIの自動化を行う技術。

*基礎 [#gc8ab814]

**プロバイダ [#l890bc0b]
提供されるUIオートメーション・プロバイダを使用すれば比較的楽に実装が可能。

***[[Officeオートメーション>Visual Basic for Applications (VBA)#g810ca4c]] [#rfbd6b21]
Officeの場合は、[[Officeオートメーション>Visual Basic for Applications (VBA)#g810ca4c]]を使用する。

***WWWブラウザのオートメーション [#be9d715b]
各種WWWブラウザでは、各種UIオートメーションのプロバイダが提供されている。

-IEの場合は、ProgID = InternetExplorer.Application の [[COM]]を使う。
-モダンブラウザの場合は、WebDriver(W3Cの勧告)が提供される。

-調べたら、
--IEにもWebDriverが提供されている([[COM]]はVBAから利用)。
--SeleniumBasicを使用すれば、VBAからSelenium → WebDriverが利用可能。

***System.Windows.Automation [#p0b1c02d]
-[[WPF]]には、System.Windows.Automationというプロバイダが提供されている。~
このUIオートメーションを利用することで、以下のアプリケーションのUIを操作できる。
--Win32
---Windowsアプリケーション
--.NET
---[[Windows Forms]]アプリケーション
---[[WPF]]アプリケーション

-参考
--UIオートメーションによる自動UIテストの実践 - @IT~
http://www.atmarkit.co.jp/fdotnet/special/uiautomation/uiautomation_01.html

**独自実装 [#nb28779d]
UIオートメーションのライブラリを自作する場合。

-仕組みとしては、[[ウィンドウ・システムのDLL注入とAPIフックを仕様>ウィンドウ・システム#d5dfeb5c]]による。

-UIサブシステムによって値の取得・設定を行うUIオブジェクトの取得方法が異なる。

***GDI [#ncb8500f]
-[[Win32]]
-[[Windows Forms]]

***独自描画 [#k8ab5101]
-[[WPF]]
-各種 WWWブラウザ

**ツール類 [#nd6874d9]

***[[Selenium>#j963ec75]] [#bdb369cf]
上記の各種、UIオートメーション・プロバイダをラップした~
ドライバを使用してテスト・スクリプトを組む[[Selenium>#j963ec75]]というツールがある。

-昔は、各種WWWブラウザを対象としていた。

-[[Selenium IDE>#j6cb8cf7]]というツールで、容易に、~
テスト・シナリオを開発できるようになっている。

-Window10から[[Selenium>#j963ec75]]から利用可能な~
[[Windows Application Driver>#ice53aad]]が提供され、~
[[Selenium>#j963ec75]]でテスト・スクリプトを組むことができるようになっている。

***[[Windows Application Driver>#p3762b0b]] [#ice53aad]
-UI テストの自動化を可能にするオープン スタンダード ベースのツール。

-Windows 10 上であらゆるアプリケーションの UI テストを自動で実施できる。

-オープン スタンダードをサポートしているため、~
Appium や Selenium などの既存の UI テスト自動化ツールや好みの言語~
を使用してWindows アプリケーション用のテストを記述できる。

*応用 [#a7f45370]
以下で使用されている。

**テスト [#p2950b60]
基本的には「レグレッション(回帰)テスト系」に応用されることが多い。

***Coded UI Test [#q320311e]

-また、Visual Studio 同梱の機能に
>コード化された UI テスト(Coded UI Test)

>がある。

-参考
--wpf - Microsoft UI Automation Library Vs Coded UI Test - Stack Overflow~
http://stackoverflow.com/questions/4909206/microsoft-ui-automation-library-vs-coded-ui-test

-こちらを参照すると、

--コード化された UI テスト(Coded UI Test)は、~
UI Automation Libraryをランタイムとして使用する機能であることが解る。

--エントリ系の自動化に特化した用途であれば、有用である可能性がある。~
#UIテスト自動化の導入方針の「使い捨て前提で適用シーンを絞り込んで利用」に合致。

-参考
--コード化された UI テストと操作の記録でサポートされている構成とプラットフォーム~
http://msdn.microsoft.com/ja-jp/library/vstudio/dd380742.aspx
---要件:Visual Studio Ultimate, Visual Studio Premium

***, etc. [#l1d0c110]

**スクレイピング [#y716734b]
次いで、スクレイピング技術が主要な応用先となっている。

***Octoparse [#i792082d]
-コードを書くことなくウェブサイトからデータを抽出できるスクレイピングツール
-出したデータは、Octoparseのクラウドサーバーに保存され、
-Excel、JSON、CSV、HTML、データベースなどの構造化形式のファイルでエクスポートできる。

-参考
--Octoparse - Wikipedia~
https://ja.wikipedia.org/wiki/Octoparse

***, etc. [#edca012b]

**UIマッシュアップ [#j09dfa7c]
[[スクレイピング>#y716734b]]技術を応用したものと言える。

***Unified Service Desk [#mc8e5052]
Dynamics CRMのコールセンター・システムのUIマッシュアップ機能

***, etc. [#gefcb726]

**[[RPA>RPA (Robotic Process Automation)]] [#ac7dfb9e]
画面[[スクレイピング>#y716734b]]技術の大幅な技術的進化と言われている。

***[[WinActor>RPA (Robotic Process Automation)#odc87a65]] [#h8065a49]
***[[UiPath>RPA (Robotic Process Automation)#a79d1fcb]] [#l78bca2c]
***[[Automation Anywhere>RPA (Robotic Process Automation)#qbf981f4]] [#h935cced]
***[[Power Automate>RPA (Robotic Process Automation)#d46b14d1]] [#g9cb537b]

*参考 [#qcd8c64d]
-UIオートメーションによる自動UIテストの実践(1/3) - @IT~
http://www.atmarkit.co.jp/fdotnet/special/uiautomation/uiautomation_01.html

**Microsoft Docs [#v770727b]
-UI オートメーションの基礎~
https://docs.microsoft.com/ja-jp/dotnet/framework/ui-automation/ui-automation-fundamentals
--UI オートメーションの概要~
https://docs.microsoft.com/ja-jp/dotnet/framework/ui-automation/ui-automation-overview
--UI オートメーションによる自動テスト~
https://docs.microsoft.com/ja-jp/dotnet/framework/ui-automation/using-ui-automation-for-automated-testing

**Selenium [#j963ec75]
-WebのUIテスト自動化 - Seleniumを使ってみる~
https://qiita.com/edo_m18/items/ba7d8a95818e9c0552d9

-オープンソースの自動テストツール/Seleniumとは~
https://www.ossnews.jp/oss_info/Selenium

***Selenium IDE [#j6cb8cf7]
-ブラウザ拡張Selenium IDEでユーザー操作を記録・再現できる!~
UIテストの自動化に活用しよう - ICS MEDIA~
https://ics.media/entry/17626

-[2018年時点] SeleniumIDE についてまとめてみた~
https://qiita.com/gluelan2013/items/0513c5331b6a67086308

-Selenium IDEで「はじめよう自動化」~
https://qiita.com/takeya0x86/items/486e91ae3cb272372ced

**Windows Application Driver [#p3762b0b]
-【C#】WinAppDriverの使い方 | 思い立ったが吉日~
https://miko.info/?p=1600

-Windows Application Driver を正式にリリース - Windows Blog for Japan~
https://blogs.windows.com/japan/2017/11/09/windows-application-driver-no-longer-beta/

-Windows Application DriverでWindowsアプリケーションのテストを自動化しよう~
https://qiita.com/ootaken/items/33099fcbd730e775e4db

--Windows Application Driver (WinAppDriver) を利用してウインドウズアプリを操作する~
https://qiita.com/kobanyan/items/0cd806cc29bae936836c

----
Tags: [[:テスト]], [[:デバッグ]], [[.NET開発]], [[:ツール類]], [[:その他、開発の色々]]



トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS