Recently as we did some QA hiring and it was really tough to find an good replacement for someone that had left the team so I started thinking on what it takes to be an AWESOME QA?
1) You should be a 'Know-How'
Not only you have to know the product inside and out you have to be a know how all around. Let me explain. As a QA person you are sort of positioned in between many teams such as product, marketing, development and other business owners. You are a company advocate as well as customer advocate. For you to be on top of the game you need to know what each of these people value and trying to achieve. Spend time with other teams to learn what they do and how they breathe. This will position you in a very good place. I've spend hours talking to developers about bugs and tried to find out what the issue is and what caused it and try to remember it all. Later I will explain more benefits of this. I spend hours talking to IXD people and they are super awesome. I've learned a lot from them as far as how things should look like and what customers would expect to see. I always take them in consideration when I test a product. Same goes for customer service people, analytics etc.. Spend time with them you will learn a lot and it will make a better QA I promise. Learn, Learn and Learn!
2) Know the application
I don't know how much time I spend learning the application that I work on. I get shocked when I find out that half of our development team don't know more that 30% of our application. I mean I really get it. A lot of times they are working on an isolated chunk of code and don't need to know how other parts of the site work. We QA can't afford that. I do end-to-end testing and for me to be able to do that I have to know our app inside and out. Again talk to developers and product managers get to know the application as much as you can and never stop learning. If you want to be a kick ass QA you will know how the app breaths. In time you want to be the subject matter so developers will go to you with questions and you will be well respected.
3) Hyper-Sensitivity to Little Things
QA have to be super sensitive and aware of potential bugs that might show symptoms. A lot of times I test the app and I just sense that something does not feel right but can't really figure out what. I will trust my hunch and it never lets me down and certainly after some time I will find that glory bug. A lot of times developers miss certain things that are not so obvious and QA has to be sensitive enough to notice all the little things that might be bugs or potential bugs like a sore throat before getting a cough. Anything at all out of the ordinary is worth pursuing.
4) Tolerance for Chaos
Working in a start up or big corporation there is Chaos. You guessed it! We in QA are stuck right in the middle of it. Love it or hate it but it happens in all the companies. Requirements changing all the time, priories are changing etc. A lot of times you start testing something then you get blocked or you fall into a waiting period. Move on to the next thing. Ask around, know what the priories are and start testing a new feature. The important thing is to have a sense of urgency and an urge for closure. If you log a bug make sure to follow through on it and don't just log it and forget it. Same goes for new features make sure to follow through on them and never leave them hanging unless it was specifically decided that way.
5) People skills
This is an area where developers and QA differ a lot. For a developer to be effective she can be anti social and hostile and even crazy sometimes. Yea, that won't work for QA. We have to be tactful, respectful and be a diplomat sort of. In my experience different developers take 'bugs' differently. Some understand that it is part of development cycle and it's normal but some think you are some sort of teacher finding all the typos in an essay and take it very personal. In that case you have to have your people skills kick in to make sure you don't offend anybody and people like you. This is very important. If you are plain rude and untactful you will not survive as tester/qa.
You have to make sure you take good notes and write them in a way that you will remember that you had that note in the first place. I see tester writing notes with pen and paper all the time and to me that's a major red flag. Most people say that everyone has a different style and habits. I believe not in this area. If you know you need to remember urls, commands, queries, tables etc. You would be more efficient if you just be able to search through your notes and copy/paste rather than trying to flip 30 pages of your notepad by hand. Big no no. I personally use evernote and google calendar they are my best friends. With evernote I can create bunch of notes, create labels and effectively search through them. I recommend this to all my peers. And no evernote did not sponsor me I just love their product:).
You should be skeptical but not hostile. You should not take things for granted and things should always be questioned.Only tangible evidence in documents, specifications, code, and test results matter. While they may patiently listen to the reassuring, comfortable words from the programmers ("Trust me. I know where the bugs are.") and do it with a smile-they ignore all such in-substantive assurances. I just heard that way too many times and found issues after those lovely reassuring words.
A lot of times especially staring out in a new work place you will probably not be loved by developers since you are the new guy that will find bugs in their code. There is hope with time when you prove yourself people will respect you in the way it almost feels like love but keep in mind, you are the person that assures quality meaning if you have to be tough and call things out like stopping a release because of a critical bug that might cause a loss you have to do it even if the business is waiting on that scheduled release. Remember to get all the facts in place first and know what business priorities are so you don't over react.
9) Technology Hungry
I am a technology addict. I read techcrunch on a daily basis and always sign up for beta of a new product. I love reading cnn tech section and I just love new gadgets and products. It keeps me stay up to date and tell others about this great new tool that can help them out in some way. You need to know what is mozilla up to, when is the next IE release, what kind of new cool features it has. How will it impact your site? Whats in the release notes of next beta version of iPhone? Ask me and I will tell you. I love being the engineering resource my coworkers appreciate that.
QA people are fundamentally honest and incorruptible. They'll compromise if they have to, but they'll righteously worry over it. This fundamental honesty extends to a brutally realistic understanding of their own limitations as a human being.So they apply the same kind of self-assessment procedures that good developers will. They'll do test inspections just like developers do code reviews. The greatest possible crime in a QA's eye is to fake test results.
Remember being honest as a QA person will pay off in the future, never lie about a build being 'good shape' when there are some possible issues. Your manager will appreciate it even if he won't like what he hears at first; it's better to be safe than sorry.
To recap: QA person should be honest, likable, tough, organized, smart, charming, tech-savvy, skeptical, tactful and just all around awesome person that people like in a company.