仕組みから理解する!Composeプレビューを様々なバリエーションでスクリーンショットテストしよう

Jetpack Composeのプレビュー関数[1]を使ったVisual Regression Test (VRT)が徐々に広まってきています。 Robolectric [2]・Showkase [3]・Roborazzi [4]が登場したお陰でその実現はとても簡単になったものの、いざ運用を開始してアプリ開発を進めて行くと、次のような思いが出てくるのではないでしょうか。 ・ナイトモード(ダークモード)の色指定ミスを発見したい ・タブレット端末でのレイアウトも確認したい ・様々な言語(ロケール)でレイアウトが崩れていないか確認したい このようなバリエーションのスクリーンショットをVRTに組み込むためには、 各ツールががどのように連携してスクリーンショットを撮っているのか、より深い理解が必要になります。 本セッションでは、次のようなトピックの紹介を通じて、前述したような様々なバリエーションのスクリーンショットを撮る方法を説明します。また、Google I/O 2024で紹介されたCompose Preview Screenshot Testing [5]を使った実現方法も合わせて紹介し、Robolectric + Showkase + Roborazziを組み合わせて使う場合との違いを明らかにします。 ・各ライブラリが提供する機能 ・Robolectric ・Showkase ・Roborazzi ・Robolectric + Showkase + Roborazziを使ったプレビュー関数のスクリーンショット実現の仕組み ・Robolectric + Showkase + Roborazziで様々なバリエーションのスクリーンショットを撮る ・ComposeTestRuleの機能を使って実現方法 ・Robolectricの機能を使った実現方法 ・Jetpack Composeの機能を使った実現方法 ・Compose Preview Screenshot Testingを使う場合の実現方法 ・Robolectric + Showkase + RoborazziとCompose Preview Screenshot Testingの違いと使い所 ※CIの構築や運用については触れません 各ライブラリの仕組みや機能が分かれば、本セッションで紹介する以外のバリエーションに対応することも容易です。 皆さんも本セッションを聴いて、ついつい確認を後回しにしがちな、特定のバリエーションにおけるUIのバグ発見はVRTに任せてしまいましょう! [1] `@Preview`アノテーションが付いたComposable関数。レンダリング結果をAndroid Studioでプレビューできる [2] https://github.com/robolectric/robolectric [3] https://github.com/airbnb/Showkase [4] https://github.com/takahirom/roborazzi [5] https://developer.android.com/studio/preview/compose-screenshot-testing

  • Sumio Toyama (sumio_tym) テスト自動化が好きなAndroidエンジニア

発表資料を見る

概要

  • 日時 2024.09.12 / 16:20 ~ 17:00 (40min)
  • 場所 Hedgehog
  • 言語 日本語 (英語通訳あり)

対象者

・プレビュー関数を使ったVRT(Visual Regression Test)に興味があるが、一歩踏み出せていない方 ・より様々なバリエーションのスクリーンショットをVRTに組込みたい方 ・ダークモード、フォントサイズ拡大、タブレット対応などのレイアウト確認で疲弊している方

Android is a trademark of Google LLC. The Android robot is reproduced or modified from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License. Android、Google Play、Google Play ロゴは、Google Inc. の商標です。
これまでのDroidKaigi

© 2014- DroidKaigi 実行委員会