In my test automation practice I always use a gui mapping strategy that reduces a maintenance effort.
So for example, if I need to identify the "Google Search" button (www.google.com), its XPAth will be
//input[@name='q']
rather than/html/body/center/form/table/tbody/tr/td[2]/input[3]
It's clear that in the second case
a little change in a page structure could break my test.
But maybe I'm missing something? Maybe if a document structure changes I should know about this and some of my tests should fail?
What do you think? What best-practice you will recommend?