Written in collaboration with Efrat Wurzel
The basic premise of QA is that developers – being human – make mistakes; but too many testers think that developer mistakes are limited to the code they write. The truth is that developers can misunderstand the spec, forget a part of it, never notice that a spec is updated and so on. Some didn’t actually make a mistake – they were simply never shown a spec; they developed a feature based on what they were told, by someone who was told it by someone else, and so on.
All of this means that between the idea for the feature and the programming of the feature, too many people have had chances to drop too many balls. If you don’t want to join them (and you don’t), don’t test based on what the developer tells you the feature does; you have to find out what it was actually meant to do.
The lesson here: always go at least one step beyond the developer; the spec, if it’s written, or a project manager, or whoever came up with the idea for the feature. That’s the only way to find the information that never made it to the developer’s code.