SlideShare une entreprise Scribd logo
1  sur  32
Dawn Huczek
自動化困難な状況での活動方法
自己紹介
・石川達也
・(株)Codeer 代表取締役
・Microsoft MVP
・ささいなことですが(ブログ)
・OSS
Friendly
Selenium拡張
LambdicSql
Visual Studio and Development Technologies
http://ishikawa-tatsuya.hatenablog.com/
https://www.nuget.org/profiles/ishikawa-tatsuya
趣味はギターとライブラリ作成
【Quick Shot】
メソッド単位で確認、デバッグできる
VisualStudio拡張
https://marketplace.visualstudio.com/items?itemName=ishikawa-
tatsuya.Quickshot
【LambdicSql】
SQLをC#で表現する
SqlBuilder
https://github.com/Codeer-Software/LambdicSql
今はこんなのも作ってます。
ご興味あれば、是非ご利用ください。
Windowsアプリを意のままに操作するためのライブラリ
弊社製品FriendlyはMicrosoft MVP Showcaseで2位になりました。
http://blogs.msdn.com/b/mvpawardprogram/archive/2014/11/04/mvp-showcase-winners.aspx
IPAの「先進的な設計・検証技術の適用事例報告書 2015年度版」に掲載。
http://www.ipa.go.jp/sec/reports/20151118.html
Friendly!
https://github.com/Codeer-Software/Friendly
Codeer Ltd.
こんなメンバーでやってます!
ソフトウェア開発でお悩みの方は、
いつでもご相談ください。
もちろんテスト自動化支援もやってます!
1.テスト自動化に関する関係者の理解
2.操作
3.期待値比較
どんな困難があるか?
テスト自動化に関する関係者の理解
人間は優秀。
人間と全く同じことは
2017/12/10時点では不可能。
ちょっと待って!
あれできるの?
これは?
そこはできないの?
その部分は人がやるのと違うよね?
じゃあ、やりません。
自動テストの可能不可能を最初に明確にする
【コラム】ちなみに、こんな話よくありますよね?
なりません。
無理っす。
↑最近よく言われる
AI使って何とかならないのですか?
ランダムに実行させて
問題のあるところ見つけてください。
キャプチャリプレイがあれば
全て解決するはずでしょう? 色々問題あります。
↑何故かみんな期待している
それでも十分効果があります!
全部は無理だし、
人間が実施するのとは違うし、
泥臭いことやらないとダメだけど
・同じ操作でパラメータを変える必要がある場合(機能確認)
・同じ操作を繰り返す必要がある場合(信頼性確認)
・正常系の操作/確認(回帰検査化するとさらに効果UP)
システムテスト自動化に向いている部分
自動化では困難/人しかできないこと
・複雑なマウス操作とそのレスポンス確認
・GUIコントロール自体の確認
・想定外の不具合の認識
・不具合傾向から怪しいところを発見する(探索的テスト)
理論的に技術的に説明
アプリを触りつつ、
「テスト設計のこの部分は自動化に向いてますよねー。」
「緑の部分は自動化で保障できますね。
だから、毎日実行できてお得ですよ。
その他は、人でやりましょう。」
エモいのはビジネスの場では引かれる・・・
アドリブで一つシナリオ動かせれば完璧。
どのタイミングで役に立つのか?
どのリスクを減らしているのか?
1 1 1
2
1
3
1
4
1
5
2 2
3
2
3
4
2
3
4
5
1
2
1
3
2
1
4
3
2
1
積みあがったテストが
毎日のリスクを軽減
+
・もちろん、リリース直前、緊急リリース対応時
・開発、デバッグフェーズで威力を発揮
リリース前は
人間のテストもやるけど
自動でできる部分もあって
楽になってるよね
裏技:過去の例から試算した値を出すと理解される場合もある
項目 工数(人日)
テスト実装工数 +800 + 120 + 90 = 1010
調査設計 -20×10×2 = -400
実装 -20×10×2 = -400
不具合修正 -20×20×2 = -800
テスト工数 -300×3×2 = -1800
その後の緊急リリース -24×5 = -120
合計 -2510
実装者 20人
テスト担当者 20人
期間 1年×2
【試算に使った条件】
・自動テストは1回目開始前に大量に作成。プロジェクト中にも追加、メンテは発生している。
・調査設計、実装工数は一人あたり10人日は削減できている。
・不具合修正はテストフェーズで見つかる不具合数とその後の
修正→周辺確認→場合によっては再修正の分を加味している。
・テストは手動ならリリースまでに全チェックは3回は実行していると考える。
自動化しているテストを手動でやるなら300人日は必要。
削減工数 : 試算上は2510人日削減
(バージョンアップリリース二回分で試算)
使った工数(実際の値)
操作
エミュレート方式とAPI方式がある
人間の操作に近いこと
キーマウスをドライバレベルで
エミュレート
Application Programming Interface
プログラムから使われることを
目的としている。
確実、高速な動作。
テスト自動化と相性が良い。
最近流行り?のRPAもこちらを推奨。
エミュレート方式
代表はドライバレベルのキーマウスエミュレート
問題は多いのだが、万能感がある。
ここが困難
タイミング
App OS Test
重い処理
テストとしては
複数個処理を投げ込んだけど、
どこまで進んでるかわからない
保守性の高い記述が難しい
例えば365個目まで
スクロールして
それをクリックとか
ほんのちょっとの変化で
使えなくなるよね?
しかし、
人はキーマウスエミュレートを求める
万能感!
同期可能なキー、マウスエミュレートを作ってみました。
App OS Test
重い処理
タイマが動くまで待つWait
キー、マウス送信
処理が終わったことが分かる
Friendly.Windows.KeyMouse
あれだけ、ディスっておきながら
var window = WindowControl.FromZTop(app);
var target = new WindowControl(window.Dynamic()._target);
//中央を左クリック
target.Click();
//ボタンと座標指定でクリック
target.Click(MouseButtonType.Middle, new Point(4, 5));
//ダブルクリック
target.DoubleClick();
target.DoubleClick(MouseButtonType.Middle, new Point(4, 5));
//Drag & Drop.
var dropTarget = new WindowControl(window.Dynamic()._dropTest);
target.MouseDown(MouseButtonType.Left, new Point(0, 0));
dropTarget.MouseUp(MouseButtonType.Left, new Point(2, 3));
//コンテキストメニューのクリックユーティリティ
PopupUtility.ExecuteContextMenu(target, new PopupTarget(5, 4), new PopupTarget(5, 4));
//キー送信
target.SendKeys("aBc");
//キーとマウス
app.KeyDown(Keys.Menu);
target.Click();
app.KeyUp(Keys.Menu);
書き味もいい感じ!
あくまで最終手段
<script type="text/javascript">
function ExecuteButton() {
//ここは待ってる
var start = new Date();
while (new Date().getTime() - start.getTime() < 5000);
//ダイアログは待たない
alert("1");
}
</script>
<input id="_button" type="button" value="Wait" onclick=“executeButton()" />
ちなみにSeleniumはAPI方式なのでいい感じに同期されます
var element = driver.FindElement(By.Id("_button"));
element.Click();
操作側
html
API方式
プログラムから扱いやすいインターフェイスを公開。
タイミング依存の問題が起こりにくいので、
運用コストを下げることができる。
反面、人間の操作とは完全には一致しない。
・Seleniumはブラウザというアプリの公開インターフェイスを操作
・FriendlyはWindowsアプリに内在するAPIを操作
自動化困難なケースでは
ピンを生やして対応
テスト用に使いやすいインターフェイスを追加で作る
(組み込み機器でテスト用にピンを使うところから命名)
・Webアプリ
→ JavaScript に仕込む(Seleniumから呼ぶ)
・.NetWindowsアプリ
→普通に実装(Friendlyから呼ぶ)
・Win32アプリ
→DLL公開関数(Friendlyから呼ぶ)
Win32アプリとかの場合は、
結構沢山ピンを出します。
ピンを出す場合、ピンの仕様を共有することが大事
意図を正しく伝えて、ピンを出してもらう。
(そのピンを使うことによって、
カバーできる部分とスルーされる分を確認。)
また、その後メンテも正しくできるようにする。
・テスト設計へフィードバック
スルーされる部分はあるけど、
ピンがないと、そもそもそこは自動化できなかったわけだし。
・開発チームとの連携
自動化開発中に、ピンを生やすことになった場合は
テスト設計へフィードバックし
手動テストで確認する部分をつけ足す
【コラム】 操作困難 Win32アプリ
APIとしては昔ながらのWin32APIやSendMessageが使える。
が、普通にやると問題が起きることがある。
Friendlyは、PostMessageを応用した割り込みなので、処理中は割り込まない。
DLL公開関数(ユーザー作成も含めて)も安全に使えるので
テスト用にピンを出すことも可能。
App Test
割り込み強烈!
SendMessage
特定のAPIを使えば
メッセージループが
回らなくても割り込まれる
App Test
それなら安心
ここで実行
Friendlyで実行
Friendlyを使おう!
【コラム】 操作困難を乗り越える! Selenium-IEDriver
何が言いたいかというと、
テスト自動化は自動操作力!
これに限らず、困難に遭遇しても
解決方法を考えることが重要。
ピンを生やすのもその一つ。
テスタビリティは自分で上げる。
でも、ダメなときはサクッと撤退することも重要。
(初期調査重要
http://ishikawa-tatsuya.hatenablog.com/entry/2016/06/04/100121
Seleniumの仕事を前にやってIE対応でハマりました。
IEDriverServer.exeが落ちるというもの。
絶望しましたが、その処理だけ
COMを直接叩いて回避したり
WinFormsのSendKeysでキーエミュレートしたり
で回避しました。
期待値比較
人間と同じ確認はできません。
通常は画面に現れた文字列データで確認する
もちろんAPI経由で。
OCRとかは通常はやらない。
※対象とする箇所以外に異常があってもそれは気づけない。
仮にこんなの
出てもそれはスルー。
出る可能性のあるコードなら
事前にそこも対象箇所に
加えておく必要がある。
ここを確認
そういうのもあって、
システムテストは
自動テストのチェッキングの他に
人のテスティングも通常は必要。
画像データになってしまう場合。
可能なら、その元となるデータを
テキストにダンプして、それを比較する
(ピンを出す)
パラメタライズな部分は、それでさばいて
数個人間の目でも確認とかにする
ちょっと待って
どうしても画像比較になるなら
(画像自体のテストなど)
でも、その場合、絶対に画像が完全一致する条件を開発時に決めておく
(最低限、マシンごとに一致すること)
画像のテストなので
似ているからOKは判断が難しすぎる
→不具合でゴミピクセルが1dot混ざることとかありえるしね。
【コラム】内部状態をダンプ
本来は、外に見える情報(もしくはその元となる情報)
を期待値として検証するのが望ましいですが、
私の経験的にはスタンドアロンのアプリは超絶ステートフル。
特に歴史が長く、内部データの構造が比較的安定しているものなら
それをダンプして検証するのもアリと思ってやってます。
こういうケースは自動テストの方が向いています。
ダンプもバイナリではなく
テキストにして人間も
見れるようにしておくと効率が良い。
まとめ
・自動テストで、できることとできないことを説明し
その上で効果が出る方法を考え、理解してもらう
・自動操作技術がキモ
テスタビリティは自分たちで上げていく
・自動テストで重要なのは何より正確さ
キーマウスエミュレート、
画像比較を使う場合はそれが保たれるように設計する
テスト自動化はCodeerに依頼する!

Contenu connexe

Tendances

Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Koji Hasegawa
 

Tendances (20)

20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料
 
"今" 押さえておきたい! Web アプリ開発の技術トレンドとツールの進化
"今" 押さえておきたい! Web アプリ開発の技術トレンドとツールの進化"今" 押さえておきたい! Web アプリ開発の技術トレンドとツールの進化
"今" 押さえておきたい! Web アプリ開発の技術トレンドとツールの進化
 
XP祭り2013-LT-Codeer
XP祭り2013-LT-CodeerXP祭り2013-LT-Codeer
XP祭り2013-LT-Codeer
 
SI-Toolkit for Web Testing ハンズオン勉強会
SI-Toolkit for Web Testing ハンズオン勉強会SI-Toolkit for Web Testing ハンズオン勉強会
SI-Toolkit for Web Testing ハンズオン勉強会
 
Win7 * appium * androidで実機自動テストやってみた。
Win7 * appium * androidで実機自動テストやってみた。Win7 * appium * androidで実機自動テストやってみた。
Win7 * appium * androidで実機自動テストやってみた。
 
脱・独自改造! GebでWebDriverをもっとシンプルに
脱・独自改造! GebでWebDriverをもっとシンプルに脱・独自改造! GebでWebDriverをもっとシンプルに
脱・独自改造! GebでWebDriverをもっとシンプルに
 
Mackerelではじめる お手軽サーバー監視
Mackerelではじめる お手軽サーバー監視Mackerelではじめる お手軽サーバー監視
Mackerelではじめる お手軽サーバー監視
 
20141018 selenium appium_cookpad
20141018 selenium appium_cookpad20141018 selenium appium_cookpad
20141018 selenium appium_cookpad
 
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
 
SeleniumE2Eテストフレームワークを使用したテスト自動化事例 #Seleniumjp
SeleniumE2Eテストフレームワークを使用したテスト自動化事例 #SeleniumjpSeleniumE2Eテストフレームワークを使用したテスト自動化事例 #Seleniumjp
SeleniumE2Eテストフレームワークを使用したテスト自動化事例 #Seleniumjp
 
プログラムで映像をつくるとは?? ~超入門編~
プログラムで映像をつくるとは?? ~超入門編~プログラムで映像をつくるとは?? ~超入門編~
プログラムで映像をつくるとは?? ~超入門編~
 
アプリケーションエンジニアがMackerelで楽しく監視構成している事例
アプリケーションエンジニアがMackerelで楽しく監視構成している事例アプリケーションエンジニアがMackerelで楽しく監視構成している事例
アプリケーションエンジニアがMackerelで楽しく監視構成している事例
 
SeleniumConf16 UK参加報告
SeleniumConf16 UK参加報告SeleniumConf16 UK参加報告
SeleniumConf16 UK参加報告
 
「UI自動テストツールとAI」〜AIを使った自動テストの「今」と「未来」〜
「UI自動テストツールとAI」〜AIを使った自動テストの「今」と「未来」〜「UI自動テストツールとAI」〜AIを使った自動テストの「今」と「未来」〜
「UI自動テストツールとAI」〜AIを使った自動テストの「今」と「未来」〜
 
Unity(再)入門
Unity(再)入門Unity(再)入門
Unity(再)入門
 
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
 
Windowsでの自動化の手段
Windowsでの自動化の手段Windowsでの自動化の手段
Windowsでの自動化の手段
 
詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasst詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasst
 
第9回Jenkins勉強会 超簡単Pipeline講座
第9回Jenkins勉強会 超簡単Pipeline講座第9回Jenkins勉強会 超簡単Pipeline講座
第9回Jenkins勉強会 超簡単Pipeline講座
 
テストの自動化を考える前に
テストの自動化を考える前にテストの自動化を考える前に
テストの自動化を考える前に
 

Similaire à Stack2017 自動化困難な状況での活動方法

20110924 shizuoka azure-forsharing
20110924 shizuoka azure-forsharing20110924 shizuoka azure-forsharing
20110924 shizuoka azure-forsharing
Kazuki Aranami
 
Lt 3 jsls15-lt-xdinc-shibata
Lt 3 jsls15-lt-xdinc-shibataLt 3 jsls15-lt-xdinc-shibata
Lt 3 jsls15-lt-xdinc-shibata
chenree3
 

Similaire à Stack2017 自動化困難な状況での活動方法 (20)

Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
 
Ms build 触ってみよう
Ms build 触ってみようMs build 触ってみよう
Ms build 触ってみよう
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
 
Editorlt
EditorltEditorlt
Editorlt
 
Visual Studio ~ 過去、現在、そして未来
Visual Studio ~ 過去、現在、そして未来Visual Studio ~ 過去、現在、そして未来
Visual Studio ~ 過去、現在、そして未来
 
新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ新しい Visual Studio & .NET と新時代のアーキテクチャ
新しい Visual Studio & .NET と新時代のアーキテクチャ
 
開発チーム管理で役立ったVSCode拡張機能
開発チーム管理で役立ったVSCode拡張機能開発チーム管理で役立ったVSCode拡張機能
開発チーム管理で役立ったVSCode拡張機能
 
LightSwitchで遊んでみた
LightSwitchで遊んでみたLightSwitchで遊んでみた
LightSwitchで遊んでみた
 
Vscodemeetup6
Vscodemeetup6Vscodemeetup6
Vscodemeetup6
 
運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み
運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み
運用管理者のための「開発者からみたDevOps」 - Visual Studio 2015 新機能から考える開発者の取り組み
 
HTML5 & The Web Platform
HTML5 & The Web PlatformHTML5 & The Web Platform
HTML5 & The Web Platform
 
Macアプリのインストーラ作成ツールSwift版
Macアプリのインストーラ作成ツールSwift版Macアプリのインストーラ作成ツールSwift版
Macアプリのインストーラ作成ツールSwift版
 
SB TechNight #5 ~AVD構築のアレコレ~
SB TechNight #5 ~AVD構築のアレコレ~SB TechNight #5 ~AVD構築のアレコレ~
SB TechNight #5 ~AVD構築のアレコレ~
 
TypeScript and Visual Studio Code
TypeScript and Visual Studio Code TypeScript and Visual Studio Code
TypeScript and Visual Studio Code
 
CloudWatchツールの監視目的別使い分けの例
CloudWatchツールの監視目的別使い分けの例CloudWatchツールの監視目的別使い分けの例
CloudWatchツールの監視目的別使い分けの例
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
 
ドメイン『駆動』『開発』
ドメイン『駆動』『開発』ドメイン『駆動』『開発』
ドメイン『駆動』『開発』
 
LightSwitchでWebアプリ開発
LightSwitchでWebアプリ開発LightSwitchでWebアプリ開発
LightSwitchでWebアプリ開発
 
20110924 shizuoka azure-forsharing
20110924 shizuoka azure-forsharing20110924 shizuoka azure-forsharing
20110924 shizuoka azure-forsharing
 
Lt 3 jsls15-lt-xdinc-shibata
Lt 3 jsls15-lt-xdinc-shibataLt 3 jsls15-lt-xdinc-shibata
Lt 3 jsls15-lt-xdinc-shibata
 

Plus de 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 例外安全day
Tatsuya Ishikawa
 
他言語との連携(ネイティブから動的言語まで)
他言語との連携(ネイティブから動的言語まで)他言語との連携(ネイティブから動的言語まで)
他言語との連携(ネイティブから動的言語まで)
Tatsuya Ishikawa
 
Friendlyを使ったwindowsアプリテスト自動化
Friendlyを使ったwindowsアプリテスト自動化Friendlyを使ったwindowsアプリテスト自動化
Friendlyを使ったwindowsアプリテスト自動化
Tatsuya Ishikawa
 

Plus de Tatsuya Ishikawa (18)

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
 
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
 
Developer summit codeer
Developer summit codeerDeveloper summit codeer
Developer summit codeer
 
メタな感じのプログラミング(プロ生 + わんくま 071118)
メタな感じのプログラミング(プロ生 + わんくま 071118)メタな感じのプログラミング(プロ生 + わんくま 071118)
メタな感じのプログラミング(プロ生 + わんくま 071118)
 
.Netconf
.Netconf.Netconf
.Netconf
 
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向上
 
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
Friendlyで始めるwindowsアプリシステムテスト自動化+内部使用技術解説
 
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
 
他言語との連携(ネイティブから動的言語まで)
他言語との連携(ネイティブから動的言語まで)他言語との連携(ネイティブから動的言語まで)
他言語との連携(ネイティブから動的言語まで)
 
Friendlyを使ったwindowsアプリテスト自動化
Friendlyを使ったwindowsアプリテスト自動化Friendlyを使ったwindowsアプリテスト自動化
Friendlyを使ったwindowsアプリテスト自動化
 

Stack2017 自動化困難な状況での活動方法