When applications evolve, test automation code starts failing. If tests are not fixed quickly, automation code becomes stale and the whole suite becomes unusable. Changes to applications follow specific patterns. Knowing these patterns helps create automation frameworks which can handle them easily. The talk covered examples on how web applications evolve, how they break automation code, and how we can structure the automation code such that there is minimal change required to accommodate changes.