The ability to tell someone they are wrong without them realizing it. You likely will have to do this in all phases and to most of the people involved on the project on a regular basis.
Being able to thoroughly explain your position while telling someone they are wrong. This encompasses both verbal and written.
Being able to see that someone is wrong before they show you that they are wrong. This is important with requirements and test planning. Being able to predict where the requirements are wrong and where the developers have weaknesses will help you.
Ability to analyze a situation
Sometimes you need to know how badly they were wrong. There is varying levels of being wrong, and we get to tell them how wrong they were.
Finding new ways to find flaws quicker, faster, better. Also the ability to do some of the things that end users do is well, amazing. But that's how you find where people were wrong so, it's a part of the job.
Ability to adapt
Being able to overcome obstacles and blockers is huge. A good QA will not stop testing because someone was wrong with one part, instead they will adapt and try to find other places where someone was wrong. And sadly, the more you find where people were wrong the more likely you are to be moved around.
Slightly psychotic/mentally unstable
Because our end users likely are. This one is kind of a joke but I do consider it to be a great quality in QA. Having QA that are able to assume the role of your users is beneficial. The stages for me are as follows.
- Normal User
Normal user is happy path, Child operates randomly, Grandparent is going to click on everything and Criminal is going to try and see what they can get out of it. If those 4 users works well chances are your users will be happy.
The terminology used is in fun. I do not consider people to be wrong because they made a mistake. I like to have fun at my job and part of it is talking about how horrible of a person I am for always searching for and pointing out my friends (developers) flaws.