Whenever I tell someone what I do for a living, everyone asks “What's that?” It is not hard to explain what I do, it is easily explained as: “I tell other people that something isn't working as expected”. That's the world that we live in as QA People; we are the seekers of perfection, or at least the seekers of the best possible quality that can be available for the world.
The next thing that people tells me, is: “That sounds easy to do, what do you need to know to do that?”, and I reply: “Nothing” and everyone laughs, that I think that less about my career or my job, but the thing is that, being QA is simple as you talk about it, but there are a lot of things that you have to know and after you know them, you have to be able to apply them on a daily basis so you can be a good QA Engineer.
But what does it take to be an outstanding QA Engineer. A lot of people are good at being fair QA Engineers, but there are some others that want to go that extra mile to be great. I think that there are some soft skills that make you a great QA:
Be a perfectionist. There's never too many defects, no matter what developers or any other people in the project say, anything that you think may be better from the way it is, is something worth saying out loud. Never keep to yourself things that in your mind could be better, because that's how the little things turn into big defects.
Never stop asking questions. A great QA is always asking questions about how things are working, or are supposed to be working, and even when we get the answer, we still have to ask ourselves how that could be improved.
Be nice with Developers. You may think for what other people have told you that the QA and Dev people are enemies, but they aren't. In fact if you get along really good with them, the project will be as good as it can be. Good communication between the whole team will make things smoother.
Always follow the process. There will be moments in the project when the easiest and fastest way to handle a situation is too avoid the process, that's a trap! Never skip the process you should be following, because processes are there for a reason.
Always have proof of everything. Everyone in the project after you say something will ask you for proof of that. For example defects you’ve encountered or some decision or talk in the past that could change the perspective of the project or a functionality in it, always have proof of that so you can demonstrate to anyone that there's a reason for that.
Common sense. I think this last one is one of the most important, if not the most. At the end of the day, everything that you test or assure the quality of, will be used by someone, so always act like you are the final user, and that's how you will have a bigger chance of finding the greater quantity of defects in the tested software.
I think that with all those things in mind, anyone can be a great QA Engineer, if that doesn't work, try just to be smart, people say it works.