Jetpack Composeは、AndroidのUI開発に宣言的なアプローチを広く浸透させ、開発スタイルに大きな変化をもたらしました。しかし、UIテストの領域に目を向けると、Compose登場以前から存在する多くの根深い課題——プレビュー環境と実機動作間の微妙な差異、リファクタリング時の広範な影響範囲、そして無数の状態組み合わせや予期せぬ入力パターンから生じるエッジケースの不具合など——は依然として開発者を悩ませ続けています。 これらの網羅的な検証を、従来型の具体例ベースのテストや手動確認のみで効率的かつ効果的に行うことの難しさは、多くの開発現場で認識されていることかと思います。 本セッションでは、この課題に対して「プロパティベーステスト(PBT)」をどのように活かせるか解説します。 PBTは「どのような入力に対しても、常に満たすべき性質(プロパティ)」を定義し、予期せぬケースを自動で探し出す手法であり、元来アルゴリズムやビジネスロジックの検証でその力を発揮するものでした。 KotlinでのPBT実践(Kotest / jqwik)の基本を押さえつつ、ViewModel内のロジックはもちろん、UIコンポーネント自体が持つべき「あるべき姿」をプロパティとして捉え、テストするためのアプローチやアイデアをお話します。 UIレイヤー特有の課題にPBTの原則をどう適用し挑むか、そしてLLMを活用した将来的なプロパティ定義の可能性についても実現可能性を探ります。 PBTを通じてAndroidアプリの品質向上を目指すための新たな視点やヒントを提供することを目指します。 具体的には以下のようなトピックを紹介する予定です。 - UIテストにおける課題の再認識 - プロパティベーステスト(PBT)の基本とUIテストへの応用可能性 - UIにおける「性質(プロパティ)」の見つけ方、定義の勘所 - マークダウン/ YAML形式による仕様書の管理とLLMを活用したプロパティ定義の自動生成 - PBTのUIテストへの適用における限界と、その対策・補完戦略 - PBTが失敗ケースを発見した際のデバッグ戦略と根本原因の特定
Tetta Noguchi LINEヤフー株式会社
- プロパティベーステストに興味がある方 - 初級から上級のAndroid開発者 - Android アプリのUIテスト自動化を推進している方