Jetpack Compose has popularized a declarative approach to Android UI development, fundamentally changing how we build apps. Yet when we turn to the realm of UI testing, long-standing pain points that pre-date Compose—subtle gaps between preview and on-device behavior, wide-ranging ripple effects from refactors, and bugs emerging from countless state permutations and unexpected input patterns—continue to plague developers. Trying to achieve comprehensive coverage with conventional example-based tests and manual verification alone is notoriously difficult and inefficient in many teams. This session explains how Property-Based Testing (PBT) can tackle these challenges. PBT defines “properties” that must always hold for every input, then automatically searches for counter-examples. While traditionally used for algorithms and business logic, we will show how its principles extend to the UI layer. After reviewing PBT basics in Kotlin (Kotest / jqwik), we discuss how to view not only ViewModel logic but also UI components themselves as subjects that must satisfy well-formed properties. We present concrete techniques for discovering and encoding those properties, demonstrate managing specs in Markdown/YAML, and explore a future workflow where LLMs generate property definitions to surface edge cases swiftly. Attendees will gain new perspectives and practical hints for improving Android app quality through PBT. We plan to cover topics such as: - Re-examining the unique challenges of UI testing - Fundamentals of Property-Based Testing and its applicability to UI - Strategies for discovering and formulating UI “properties” - Managing specs in Markdown/YAML and auto-generating properties with LLMs - Practical limits of PBT in UI testing and complementary mitigation strategies - Debugging workflows and root-cause analysis when PBT uncovers failures (Translated by the DroidKaigi Committee)
Tetta Noguchi LINEヤフー株式会社
- Anyone interested in Property-Based Testing - Android developers from beginner to advanced levels - Professionals promoting UI test automation for Android apps