- 追加された行はこの色です。
- 削除された行はこの色です。
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。
-[[戻る>その他、開発の色々]]
-戻る
--[[テスト]] > [[テスト自動化]]
--[[その他、開発の色々]]
--[[Windows OSの基礎的トピック]]
* 目次 [#a6c1bacf]
#contents
*概要 [#pa9c83fa]
以下で使用されている。
-テスト自動化(レグレッション(回帰)テスト系)
-CRMシステムのマッシュアップ
-RPA(ロボットによる業務自動化)
UIの自動化を行う技術。
*詳細 [#l0ea0992]
*基礎 [#gc8ab814]
**技術 [#se46fe96]
[[コチラ>ウィンドウ・システム#d5dfeb5c]]を参照。
**プロバイダ [#l890bc0b]
提供されるUIオートメーション・プロバイダを使用すれば比較的楽に実装が可能。
**課題 [#nb28779d]
UIサブシステムによってオブジェクトの取得方法が異なる。
-[[Windows Forms]](GDI)
***[[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ブラウザ
-
-各種 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開発]], [[:その他、開発の色々]]
Tags: [[:テスト]], [[:デバッグ]], [[.NET開発]], [[:ツール類]], [[:その他、開発の色々]]