[iOS]What’s new Testingを見た

What’s new Testingを見た。

https://developer.apple.com/videos/play/wwdc2017/409/

見ている途中でいくつかメモしたので、その記録として…


  • multiple appのテスト、URLを引数で与えることできるのね

20170612035154_img20170612-17-2kk0z7_480

  • Accessibility Dataのところで説明しているsnapshot、WebDriverAgentが使っているやつぽいな
  • おー。いちいちsnapshot取得する必要がなくなるのか。実行時間改善しそう

20170612035308_img20170612-16-1ng7xs0_720

20170612035501_img20170612-14-zvr8i3_720

  • 要素の検索で全捜査でなくて最初にマッチしたものだけさっと返すようにした、という話だけれど、ようやくという感じ。

20170612035637_img20170612-14-nebl01_480

  • ここら辺は元からそうなのでそうよねという感じだ。
  • ここはどこまで厳密に書くかはどれだけ内部実装と結合を強くするかの問題ですね。Espressoでも同じ問題をもつ。

20170612040244_img20170612-19-18xc35w_720

  • 地味に嬉しい

  • Activity styleの書き方、Cucmberとかイメージすると良さそう。stepsにいろんな処理を入れて、シナリオはstepsを並べて記述するような感じが使い方として近そうだ。

  • 非同期の奴も良さそう。XCTestなので、XCUITestでも使えるし。
  • snapshotのところはほんといろんな3rd partyも恩恵受けるだろうし、良いことづくしな気がする。けれど、これはXcode8でないと使えないOSテストするときは恩恵受けられないので、完全に恩恵を教授できるのは数年後かな…

Xcode9のいくつかの機能、Xcode9以前でも使えると恩恵大きくて良いな…

[ReactNative][Test]Detox instead of Appium

2017/06/08現在

過去、ReactNativeに対するUITestに関して書いていたのですが、今の段階ではAppiumよりはDetoxを使うほうが、JSを経由したテストツールとしては良さそう

EarlGreyも参考にしている所とかあり、より安定したUIテストを実施するには現実的な気がします。
Androidのサポートも計画されているので、必要に応じてコミットしたいですね。

参考: [ReactNative][Appium]testIDの振られ方

Netflixの複雑なマイクロサービスに対するテスト自動化

とても面白い。

Netflixの、マイクロサービス環境下におけるテストの複雑さを解決しようと取り組んでいたことの内容と、その1年の成果が書かれている。

here

読んでいてもとても面白く、テストエンジニアという立場からすると純粋にとても挑戦的に面白い内容だと思った。

また、社内の利用をより簡単に、利用者に負担をかけない取り組みも良いですね。
カッコ良い。

[iOS][EarlGrey]Run tests quickly

Small, small tips to enhance conducting speed for EarlGrey.
In many cases, iOS can’t handle animation speed such as Android even UI Test cases.

EarlGrey available changing animation speed except for UIScrollView. here

// Swift
let kMaxAnimationInterval: CFTimeInterval = 5.0
GREYConfiguration.sharedInstance().setValue(kMaxAnimationInterval, forConfigKey: kGREYConfigKeyCALayerMaxAnimationDuration)

// Swift
GREYTestHelper.enableFastAnimation()

https://github.com/google/EarlGrey/blob/master/docs/faq.md

In XCUITest case:

# swift
UIApplication.sharedApplication.keyWindow.layer.speed = 100

Watch “Test-Driven Development on Android with the Android Testing Support Library”

pick and past some key images to the following.

  • A famous test pyramid

20170519024718_img20170519-17-x25i39_720

  • Development Lifecycle for UI Component

20170519025016_img20170519-11-107pbac_720

  • Development Lifecycle for non-UI, especially unit level, Component

20170519025038_img20170519-17-1lny2qd_480

  • Robolectric

20170519030006_img20170519-14-1lgebza_720

  • Espresso’s lifecycle

20170519031440_img20170519-17-wz5rvd_480

  • Boundaries between M level and L level

20170519031901_img20170519-17-hireh1_720

Previously, I’ve published blog for test strategy for mobile.
This video is similar to the article 🙂

[iOS]Input multibyte strings with EarlGrey

Usually, we use grey_typeText to input words into text fields.
On the other hand, we can’t input multibyte strings such as Japanese with the method.

In this case, we can use grey_replaceText instead.

https://github.com/google/EarlGrey/issues/31

[automation]try Katalon

https://www.katalon.com/

これを少し触ってみた。

感想としては、これは

https://docs.katalon.com/display/KD/Installation+and+Setup

以下の結果を参考にすると良さそう。

このツールの目的は、Selenium/Appiumを使ったテストを記述/管理する労力を減らそうというものぽい。特に、コードを自分で書かなくて良い状態で。
なので、以下の比較を見るとわかるのだけれど、例えば専属の自動化エンジニアを抱えるところとか、そういうところはターゲットではないように見える。

https://www.katalon.com/blog/comparison-automated-testing-tools/

Emerging solution with a small community.
Feature set is still evolving.
Lack of choices for scripting languages: only Java/Groovy is supported.