The document summarizes the author's experience with test automation over the past 15+ years, from 1999 to present. It describes the evolution of test automation from (1) record and playback tools, which had maintenance issues, to (2) data-driven test automation and reuse of generic functions to reduce maintenance, but challenges remained. The author then developed (3) a generic, technology-independent test automation framework at a large insurance company project to further improve maintenance and reuse across systems.