発表・イベントリポートこんにちは。SWETグループの外山(@sumio_tym)です。先日、社内のAndroidエンジニア向けにUIテストのハンズオンを開催しました。本記事では、ハンズオンを開催するに至った経緯と、その内容を紹介します。UIテストハンズオン開催の経緯SWETでは、社内のエンジニアに自動テストのナレッジを普及させるための取り組みを継続しています。2019年4月に開催したAndroidユニットテストのハンズオンもその一環でした。当時のAndroidユニットテストのハンズオン参加者を対象としたアンケートで「次に開催してほしいハンズオン」について尋ねていました。UIテスト1のハンズオンを開催することにしました。ところで、Androidの公式ドキュメントで紹介されているテストピラミッドによると、UIテストの推奨割合はテスト全体の10%程度とされています。本記事の読者の中には、10%のUIテストのためにハンズオンを開催する価値があるのか疑問に思う方もいらっしゃるかも知れません。UIテストの特徴や使い方の理解は避けて通れないと考えています。それらが理解できてはじめて、テストをどのアプローチで自動化するか判断できるようになるからです。手動でテストした方が良いのではないか?このような判断ができるようになることも念頭に置いて、UIテストハンズオンのカリキュラムを検討しました。UIテストハンズオンの用途にはぴったりです。いえ、出版されてからの1年間でAndroidのテストを取り巻く状況も変化してきています。Androidのテストを取り巻く最新トレンドを踏まえて、次の内容も盛り込むことにしました。UIテストのナレッジを常にアップデートしてきました。そのため、より現在のAndroid開発に適したものとなるよう、柔軟にカリキュラムをアレンジできました。「Androidテスト全書」のUIテスト部分は4章から6章で構成されていますが、今回は次のような理由により4・5章のみをベースにしています。ユニットテスト・UIテストのどちらで実装するかを含めた判断をするためには、UIテストの特徴や導入前の検討事項がまとまっている4章「UIテスト(概要編)」の理解が不可欠であるAndroidエンジニアがテストを書くケースを考えると、Appium(6章)よりもEspresso(5章)の方が取り組みやすいこれらの内容を「基礎編」と「応用編」に分け、それぞれ2時間(合計4時間)で実施することにしました。「基礎編」のカリキュラム基礎編のカリキュラムは次の通りで、外山と田熊(@fgfgtkm)が作成しました。前半の1時間が座学で、後半の1時間がハンズオンです。座学はほぼAndroidテスト全書の4章に沿った内容です。基礎編では思い切って、EspressoのAPI説明を全て割愛することにしました。Recorderを使えば簡単に実現できるからです。Objectデザインパターンを適用できること」であると考えました。その考えを元に、ハンズオン部分はEspressoのAPIを知らなくても進められるような構成にしています。UIテスト未経験のAndroidエンジニアでも保守性の高いUIテストの書き方を習得できる内容になりました。Codelab形式で作成しました。Codelab形式で作成することにより、今回参加できなかった方も独学でハンズオンを進められるようにしました。「応用編」のカリキュラム応用編のカリキュラムは次の通りで、田熊と鈴木穂高(@hoddy3190)が作成しました。Codelab形式で作成しました。2019アプリのCoroutinePlugin.kt応用編では、受講者が次の2点を習得できるようにカリキュラムを検討しました。ActivityやFragment単体をテストできる仕組みです。FragmentScenarioはFragment単体を起動してテストできる点が画期的です。ともカリキュラムに組み込みたいと考えました。ほとんどのアプリで必要になる次の2点を重点的に学ぶ内容にしました。実践的な内容になっています。UIテスト実装時に直面しがちな問題への対処法を学べるカリキュラムを実現できました。「応用編」が平均4.71と良いフィードバックをいただくことができました(5段階評価で5が良い・1が悪い)。参加者を中心に各プロジェクトが自律的に自動テストを書くようになって、はじめてこの取り組みは成功したと言えます。SWETでは、これからも各プロジェクトが自律的にテストを書けるようになるための取り組みを継続していきます。最後に、SWETでは一緒に自動テストの普及に取り組んでくれるエンジニアを募集しています。Test)ここではアプリのUIを操作が発生するテスト全般のことを指しています。UI操作を伴うものであればend-to-endテストに限りません。UIテストハンズオンを実施しましたTweet関連記事2019-07-19SWETの2名が執筆した「iOSアプリ開発自動テストの教科書」が発売されましたこんにちは、SWETの細沼(@tobi462)です。JUnit5でUIテストを書こうこんにちは。SWETチームの@zhailujiaです。J...2019-04-26テストの社内普及のための取り組みとして、Androidテストハンズオンを実施しましたこんにちは、SWETグループの田熊です。2019にSWETから3名が登壇してきましたこんにちは。2/7(木)、2/8(金)に開催され...2018-11-05本日(11/5)販売開始:書籍「Androidテスト全書」のUIテスト部分を執筆しましたこんにちは。SWETの外山(@sumio_tym)です。(1)リンクプライバシーポリシースターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。