“There are known knowns; there are things we know we know. We also know there are known unknowns; that is to say we know there are some things we do not know. But there are also unknown unknowns – there are things we do not know we don't know. ” The Johari Window - quote from Donald Rumsfeld
This is the point of user acceptance tests - it doesn't matter if the code does 100% what it was designed to do. If the users can't make it work, it's no good.
Nice analysis from Codecademy.