Property‑Based UI Testing: Catching Edge Cases with Property Definitions Generated by LLMs
summary
Explains applying property-based testing (PBT) to Android UI testing with Jetpack Compose by defining invariant “properties” for ViewModel logic and UI components and using Kotlin PBT tools (Kotest / jqwik). Covers how to find and write UI properties, managing specs in Markdown/YAML, using LLMs to generate property definitions, practical limits of PBT for UI, and debugging strategies when PBT finds failures.
AI-written summary · about
chapters (19)
- 0:00Introduction
- 1:04UI testing challenges
- 3:31Property-based testing basics
- 6:44Complementary testing approaches
- 8:52Motivation for PBT in UI
- 9:56Test setup and framework
- 11:22Stateless PBT in UI
- 15:00Writing and running PBT
- 18:55Property patterns and effectiveness
- 19:39Case study: Timer PBT
- 24:12Validating product and property correctness
- 25:40Stateful PBT concepts
- 27:49Stateful PBT implementation
- 30:18Command generation and UI checks
- 33:52Stateful PBT pros and cons
- 35:38LLM-assisted PBT
- 37:26LLM for property generation
- 38:49Debugging with shrinking
- 39:30Summary
related talks
30mTesting Jetpack Compose UI
34mOverview of UI testing in Compose
57mProperty Testing in Java
36mTesting Jetpack Compose UI
46mProperty-based testing:You won't look at your tests the same way ever again
46mEfficient Android UI Testing
58mProperty Based Testing: Concepts and Examples
01h 24mIntroduction to Property Based Testing
