仕組みから理解する!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に組込みたい方 ・ダークモード、フォントサイズ拡大、タブレット対応などのレイアウト確認で疲弊している方