Appiumで行う対話的テスト
iOS Test Night #6で発表して来ました。
2017/12/5に開催された「iOS Test Night #6」で「Appiumで行う対話的テスト」について発表して来ました。以下はその発表スライドです。
もともと一年ほど前のXcode8の時代にFBSimulatorControlなどを使ってSimulatorの多重起動が出来るのを知った際に、今回のようなテストが出来ないものかと思っていました。FBSimulatorControlをAppiumがサポートする?という噂も見た気がして、しばらく保留する事にしていました。
そしてXcode9、シミュレータが多重起動のサポートをしたおかげで私がしたかった事は大分楽に実現させることが出来るようになりました。(方法については資料をご参照ください)😍
今回の発表ではiPhone x iPadを例としてdemoを行いましたが、AndroidやWebなどを含めたパターンで今後発展させて行こうと思っています。
また、発表では省きましたがテストのsetup時にsimctlによる録画開始とteardownによる録画終了、そして出来上がったiPhone/iPadの実行動画をffmpegを使ってサイドバイサイドの1つの動画にしたりしていました。これに関しては、どこまでその動画によるチェックが行われるかなど実行時の負荷や撮りためていく上でのストレージなどについては、まだ考えてなかったりします😎単にやってみたかったんやぁ🤓
あとは気をつけた点としては序盤にテストピラミッドの話をしましたが、やはり単体テストとのROIやXCUITestと比較しコストは高くなるということが予想されるため、もし導入してみたいと思った方がいた時にはじめに認識しておいて欲しかったという点がありました。XCUITestで出来る事についてはそちらでやったほうが良いと思いますし、Appiumの特徴であるマルチプラットフォーム対応でiOS/Androidでテストをまとめたいという気持ちもあるかと思います(実際にはそれぞれのプラットフォームでUIが違ったりするので思ったより楽じゃなかったというケースも多いのでは?と思っていたりします)。ちょっと難しいかもしれないですが、より価値の高い選択はどういう方法なのかという点はチームできちんと議論しておく必要があると思います。
まぁ、私は根本的には趣味で触ってるだけなんですけどね😉