This document discusses the Page Object Model (POM) and Logical Functional Model (LFM) design patterns for automated user testing. POM creates classes to represent pages and abstracts away the testing framework. LFM sits above POM and further abstracts interacting with pages, increasing test code reuse and enabling less technical users to create tests. Both aim to improve test maintainability and reduce brittleness when elements change. The document provides examples of implementing POM and LFM with Selenium.